]> git.proxmox.com Git - qemu.git/commitdiff
QemuOpts: allow new option groups be registered at runtime.
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 20 Aug 2010 11:52:00 +0000 (13:52 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Sun, 22 Aug 2010 22:11:06 +0000 (17:11 -0500)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qemu-config.c
qemu-config.h

index 730ffd9be3cd2bf92b86828c648ab2f40f721a04..e84e15e375cd0a39f3c13da5b9e26487e029789c 100644 (file)
@@ -340,7 +340,7 @@ QemuOptsList qemu_cpudef_opts = {
     },
 };
 
-static QemuOptsList *vm_config_groups[] = {
+static QemuOptsList *vm_config_groups[32] = {
     &qemu_drive_opts,
     &qemu_chardev_opts,
     &qemu_device_opts,
@@ -372,6 +372,22 @@ QemuOptsList *qemu_find_opts(const char *group)
     return find_list(vm_config_groups, group);
 }
 
+void qemu_add_opts(QemuOptsList *list)
+{
+    int entries, i;
+
+    entries = ARRAY_SIZE(vm_config_groups);
+    entries--; /* keep list NULL terminated */
+    for (i = 0; i < entries; i++) {
+        if (vm_config_groups[i] == NULL) {
+            vm_config_groups[i] = list;
+            return;
+        }
+    }
+    fprintf(stderr, "ran out of space in vm_config_groups");
+    abort();
+}
+
 int qemu_set_option(const char *str)
 {
     char group[64], id[64], arg[64];
index dca69d454b419dc20f26582b044041d43d08dc4a..bf9bcc2714ae5d1146b5dda180f2d7e6222df951 100644 (file)
@@ -16,6 +16,7 @@ extern QemuOptsList qemu_mon_opts;
 extern QemuOptsList qemu_cpudef_opts;
 
 QemuOptsList *qemu_find_opts(const char *group);
+void qemu_add_opts(QemuOptsList *list);
 int qemu_set_option(const char *str);
 int qemu_global_option(const char *str);
 void qemu_add_globals(void);