[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v4 3/8] boot: extend get_boot_devices_list() to ignore
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-ppc] [PATCH v4 3/8] boot: extend get_boot_devices_list() to ignore suffixes |
Date: |
Wed, 11 Dec 2013 21:22:16 +1100 |
As suffixes do not make sense for sPAPR's device tree and
there is no way to filter them out on the BusState::get_fw_dev_path
level, let's add an ability for the external caller to specify
whether to apply suffixes or not.
We could handle suffixes in SLOF (ignore for now) but this would require
serious rework in the node opening code in SLOF which has no obvious
benefit for the currently emulated sPAPR machine.
Signed-off-by: Alexey Kardashevskiy <address@hidden>
---
Changes:
v4:
* changed commit message about not having plans in SLOF rework as it is scary :)
---
hw/nvram/fw_cfg.c | 2 +-
include/sysemu/sysemu.h | 2 +-
vl.c | 6 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
index f5dc3ea..4d0c76f 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -504,7 +504,7 @@ static void fw_cfg_machine_ready(struct Notifier *n, void
*data)
{
size_t len;
FWCfgState *s = container_of(n, FWCfgState, machine_ready);
- char *bootindex = get_boot_devices_list(&len);
+ char *bootindex = get_boot_devices_list(&len, false);
fw_cfg_add_file(s, "bootorder", (uint8_t*)bootindex, len);
}
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 495dae8..2b71a4a 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -185,7 +185,7 @@ void rtc_change_mon_event(struct tm *tm);
void add_boot_device_path(int32_t bootindex, DeviceState *dev,
const char *suffix);
-char *get_boot_devices_list(size_t *size);
+char *get_boot_devices_list(size_t *size, bool ignore_suffixes);
DeviceState *get_boot_device(uint32_t position);
diff --git a/vl.c b/vl.c
index b0399de..2cde6a1 100644
--- a/vl.c
+++ b/vl.c
@@ -1213,7 +1213,7 @@ DeviceState *get_boot_device(uint32_t position)
* memory pointed by "size" is assigned total length of the array in bytes
*
*/
-char *get_boot_devices_list(size_t *size)
+char *get_boot_devices_list(size_t *size, bool ignore_suffixes)
{
FWBootEntry *i;
size_t total = 0;
@@ -1228,7 +1228,7 @@ char *get_boot_devices_list(size_t *size)
assert(devpath);
}
- if (i->suffix && devpath) {
+ if (i->suffix && !ignore_suffixes && devpath) {
size_t bootpathlen = strlen(devpath) + strlen(i->suffix) + 1;
bootpath = g_malloc(bootpathlen);
@@ -1236,7 +1236,7 @@ char *get_boot_devices_list(size_t *size)
g_free(devpath);
} else if (devpath) {
bootpath = devpath;
- } else {
+ } else if (!ignore_suffixes) {
assert(i->suffix);
bootpath = g_strdup(i->suffix);
}
--
1.8.4.rc4
- [Qemu-ppc] [PATCH v4 0/8] spapr: bootindex support, Alexey Kardashevskiy, 2013/12/11
- [Qemu-ppc] [PATCH v4 1/8] qom: do not register interface "types" in the type table, Alexey Kardashevskiy, 2013/12/11
- [Qemu-ppc] [PATCH v4 2/8] qom: detect bad reentrance during object_class_foreach, Alexey Kardashevskiy, 2013/12/11
- [Qemu-ppc] [PATCH v4 6/8] qdev: introduce FWPathProvider interface, Alexey Kardashevskiy, 2013/12/11
- [Qemu-ppc] [PATCH v4 8/8] spapr: define interface to fix device pathname, Alexey Kardashevskiy, 2013/12/11
- [Qemu-ppc] [PATCH v4 3/8] boot: extend get_boot_devices_list() to ignore suffixes,
Alexey Kardashevskiy <=
- [Qemu-ppc] [PATCH v4 4/8] spapr-llan: add to boot device list, Alexey Kardashevskiy, 2013/12/11
- [Qemu-ppc] [PATCH v4 7/8] vl: allow customizing the class of /machine, Alexey Kardashevskiy, 2013/12/11
- [Qemu-ppc] [PATCH v4 5/8] spapr-vio: fix firmware names, Alexey Kardashevskiy, 2013/12/11
- Re: [Qemu-ppc] [PATCH v4 0/8] spapr: bootindex support, Paolo Bonzini, 2013/12/11
- Re: [Qemu-ppc] [PATCH v4 0/8] spapr: bootindex support, Michael S. Tsirkin, 2013/12/12