summaryrefslogtreecommitdiff
path: root/vl.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2010-01-29 19:48:57 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2010-02-03 12:39:01 -0600
commitff952ba25deb927fea0b30b8a74e0059a47c1ef1 (patch)
tree3920f203e387d4911f1d83345bda8efb70918535 /vl.c
parent4a2594ddd35de7ae7c8cd9c6828cfe72245e6dc5 (diff)
downloadqemu-ff952ba25deb927fea0b30b8a74e0059a47c1ef1.tar.gz
qdev: Fix exit code for -device ?
Help was shoehorned into device creation, qdev_device_add(). Since help doesn't create a device, it returns NULL, which looks to callers just like failed device creation. Monitor handler do_device_add() doesn't care, but main() exits unsuccessfully. Move help out of device creation, into new qdev_device_help(). Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/vl.c b/vl.c
index 6f1e1ab71f..39833fc3b3 100644
--- a/vl.c
+++ b/vl.c
@@ -4459,6 +4459,11 @@ char *qemu_find_file(int type, const char *name)
return buf;
}
+static int device_help_func(QemuOpts *opts, void *opaque)
+{
+ return qdev_device_help(opts);
+}
+
static int device_init_func(QemuOpts *opts, void *opaque)
{
DeviceState *dev;
@@ -5828,6 +5833,9 @@ int main(int argc, char **argv, char **envp)
module_call_init(MODULE_INIT_DEVICE);
+ if (qemu_opts_foreach(&qemu_device_opts, device_help_func, NULL, 0) != 0)
+ exit(0);
+
if (watchdog) {
i = select_watchdog(watchdog);
if (i > 0)