Common: Add quick access to first boot device
Instead of manually parsing the boot_list as character stream, we can access the nth boot device, specified by the position in the boot order. Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
ba747cc8f3
commit
7dc5af5545
@ -181,6 +181,8 @@ void add_boot_device_path(int32_t bootindex, DeviceState *dev,
|
|||||||
const char *suffix);
|
const char *suffix);
|
||||||
char *get_boot_devices_list(size_t *size);
|
char *get_boot_devices_list(size_t *size);
|
||||||
|
|
||||||
|
DeviceState *get_boot_device(uint32_t position);
|
||||||
|
|
||||||
bool usb_enabled(bool default_usb);
|
bool usb_enabled(bool default_usb);
|
||||||
|
|
||||||
extern QemuOptsList qemu_drive_opts;
|
extern QemuOptsList qemu_drive_opts;
|
||||||
|
18
vl.c
18
vl.c
@ -1222,6 +1222,24 @@ void add_boot_device_path(int32_t bootindex, DeviceState *dev,
|
|||||||
QTAILQ_INSERT_TAIL(&fw_boot_order, node, link);
|
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
|
* This function returns null terminated string that consist of new line
|
||||||
* separated device paths.
|
* separated device paths.
|
||||||
|
Loading…
Reference in New Issue
Block a user