vl.c: Error locations for options using add_device_config()
These are -bt, -serial, -virtcon, -parallel, -debugcon, -usbdevice. Improves messages emitted via proper error reporting interfaces. For instance: $ qemu-system-x86_64 -nodefaults -S -usb -usbdevice net:vlan=xxx qemu-system-x86_64: Parameter 'vlan' expects a number becomes: qemu-system-x86_64: -usbdevice net:vlan=xxx: Parameter 'vlan' expects a number Many more remain unimproved, because they're fprintf()ed. The next few commits will take care of that. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
d7378ee1c1
commit
d9a5954dbf
4
vl.c
4
vl.c
@ -1859,6 +1859,7 @@ struct device_config {
|
||||
DEV_DEBUGCON, /* -debugcon */
|
||||
} type;
|
||||
const char *cmdline;
|
||||
Location loc;
|
||||
QTAILQ_ENTRY(device_config) next;
|
||||
};
|
||||
QTAILQ_HEAD(, device_config) device_configs = QTAILQ_HEAD_INITIALIZER(device_configs);
|
||||
@ -1870,6 +1871,7 @@ static void add_device_config(int type, const char *cmdline)
|
||||
conf = g_malloc0(sizeof(*conf));
|
||||
conf->type = type;
|
||||
conf->cmdline = cmdline;
|
||||
loc_save(&conf->loc);
|
||||
QTAILQ_INSERT_TAIL(&device_configs, conf, next);
|
||||
}
|
||||
|
||||
@ -1881,7 +1883,9 @@ static int foreach_device_config(int type, int (*func)(const char *cmdline))
|
||||
QTAILQ_FOREACH(conf, &device_configs, next) {
|
||||
if (conf->type != type)
|
||||
continue;
|
||||
loc_push_restore(&conf->loc);
|
||||
rc = func(conf->cmdline);
|
||||
loc_pop(&conf->loc);
|
||||
if (0 != rc)
|
||||
return rc;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user