#include "stacks.h" // run_thread
#include "std/disk.h" // DISK_RET_SUCCESS
#include "string.h" // memset
-#include "util.h" // usleep
+#include "util.h" // usleep, bootprio_find_pci_device, is_bootprio_strict
#include "virtio-pci.h"
#include "virtio-ring.h"
#include "virtio-blk.h"
void
virtio_blk_setup(void)
{
+ u8 skip_nonbootable = is_bootprio_strict();
+
ASSERT32FLAT();
if (! CONFIG_VIRTIO_BLK)
return;
(pci->device != PCI_DEVICE_ID_VIRTIO_BLK_09 &&
pci->device != PCI_DEVICE_ID_VIRTIO_BLK_10))
continue;
+
+ if (skip_nonbootable && bootprio_find_pci_device(pci) < 0) {
+ dprintf(1, "skipping init of a non-bootable virtio-blk at %pP\n",
+ pci);
+ continue;
+ }
+
run_thread(init_virtio_blk, pci);
}
}
#include "stacks.h" // run_thread
#include "std/disk.h" // DISK_RET_SUCCESS
#include "string.h" // memset
-#include "util.h" // usleep
+#include "util.h" // usleep, bootprio_find_pci_device, is_bootprio_strict
#include "virtio-pci.h"
#include "virtio-ring.h"
#include "virtio-scsi.h"
void
virtio_scsi_setup(void)
{
+ u8 skip_nonbootable = is_bootprio_strict();
+
ASSERT32FLAT();
if (! CONFIG_VIRTIO_SCSI)
return;
(pci->device != PCI_DEVICE_ID_VIRTIO_SCSI_09 &&
pci->device != PCI_DEVICE_ID_VIRTIO_SCSI_10))
continue;
+
+ if (skip_nonbootable && bootprio_find_pci_device(pci) < 0) {
+ dprintf(1, "skipping init of a non-bootable virtio-scsi at %pP\n",
+ pci);
+ continue;
+ }
+
run_thread(init_virtio_scsi, pci);
}
}