diff options
-rw-r--r-- | include/sysemu/sysemu.h | 2 | ||||
-rw-r--r-- | vl.c | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 6578782fc3..43b961c0f6 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -181,6 +181,8 @@ void add_boot_device_path(int32_t bootindex, DeviceState *dev, const char *suffix); char *get_boot_devices_list(size_t *size); +DeviceState *get_boot_device(uint32_t position); + bool usb_enabled(bool default_usb); extern QemuOptsList qemu_drive_opts; @@ -1222,6 +1222,24 @@ void add_boot_device_path(int32_t bootindex, DeviceState *dev, QTAILQ_INSERT_TAIL(&fw_boot_order, node, link); } +DeviceState *get_boot_device(uint32_t position) +{ + uint32_t counter = 0; + FWBootEntry *i = NULL; + DeviceState *res = NULL; + + if (!QTAILQ_EMPTY(&fw_boot_order)) { + QTAILQ_FOREACH(i, &fw_boot_order, link) { + if (counter == position) { + res = i->dev; + break; + } + counter++; + } + } + return res; +} + /* * This function returns null terminated string that consist of new line * separated device paths. |