]> xenbits.xensource.com Git - qemu-xen-3.4-testing.git/commitdiff
New options for Xen invocation (Gerd Hoffman)
authorIan Jackson <ian.jackson@eu.citrix.com>
Fri, 16 Jan 2009 15:52:14 +0000 (15:52 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Fri, 16 Jan 2009 15:52:14 +0000 (15:52 +0000)
Description from Gerd's message:
    [PATCH] xen: groundwork for xen support
    - wind up new machine type.
    - a bunch of smaller tweaks.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(Applied as-is.)

hw/xen.h [new file with mode: 0644]
hw/xen_machine_pv.c
vl.c

diff --git a/hw/xen.h b/hw/xen.h
new file mode 100644 (file)
index 0000000..4bcc0f1
--- /dev/null
+++ b/hw/xen.h
@@ -0,0 +1,20 @@
+#ifndef QEMU_HW_XEN_H
+#define QEMU_HW_XEN_H 1
+/*
+ * public xen header
+ *   stuff needed outside xen-*.c, i.e. interfaces to qemu.
+ *   must not depend on any xen headers being present in
+ *   /usr/include/xen, so it can be included unconditionally.
+ */
+
+/* xen-machine.c */
+enum xen_mode {
+    XEN_EMULATE = 0,  // xen emulation, using xenner (default)
+    XEN_CREATE,       // create xen domain
+    XEN_ATTACH        // attach to xen domain created by xend
+};
+
+extern int xen_domid;
+extern enum xen_mode xen_mode;
+
+#endif /* QEMU_HW_XEN_H */
index 2255247ef27dd3f6c1eda10971aa6a474a653214..bdce94e97ec55962d691e7a2b275f98e36b34380 100644 (file)
 #include "xenfb.h"
 #include "sysemu.h"
 #include "boards.h"
+#include "xen.h"
+
+int xen_domid;
+enum xen_mode xen_mode = XEN_EMULATE;
 
 extern void init_blktap(void);
 
diff --git a/vl.c b/vl.c
index a2ad37da8cef0a271c354ef138f6bad9a8bf8e8c..dd5d155b318ba43e0d35aaa438ebbd72469f2a4b 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -31,6 +31,7 @@
 #include "hw/pci.h"
 #include "hw/baum.h"
 #include "hw/bt.h"
+#include "hw/xen.h"
 #include "net.h"
 #include "console.h"
 #include "sysemu.h"
@@ -8594,6 +8595,11 @@ enum {
     QEMU_OPTION_icount,
     QEMU_OPTION_uuid,
     QEMU_OPTION_incoming,
+#ifdef CONFIG_XEN
+    QEMU_OPTION_xen_domid,
+    QEMU_OPTION_xen_create,
+    QEMU_OPTION_xen_attach,
+#endif
 };
 
 typedef struct QEMUOption {
@@ -8695,6 +8701,11 @@ static const QEMUOption qemu_options[] = {
     { "curses", 0, QEMU_OPTION_curses },
 #endif
     { "uuid", HAS_ARG, QEMU_OPTION_uuid },
+#ifdef CONFIG_XEN
+    { "xen-domid", HAS_ARG, QEMU_OPTION_xen_domid },
+    { "xen-create", 0, QEMU_OPTION_xen_create },
+    { "xen-attach", 0, QEMU_OPTION_xen_attach },
+#endif
 
     /* temporary options */
     { "usb", 0, QEMU_OPTION_usb },
@@ -9400,8 +9411,9 @@ int main(int argc, char **argv)
                 nb_pci_emulation++;
                 break;
             }
-            case QEMU_OPTION_domid:
-                domid = atoi(optarg);
+            case QEMU_OPTION_domid: /* depricated, use -xen-* instead */
+                xen_domid = domid = atoi(optarg);
+                xen_mode  = XEN_ATTACH;
                 fprintf(logfile, "domid: %d\n", domid);
                 break;
             case QEMU_OPTION_d:
@@ -9626,12 +9638,11 @@ int main(int argc, char **argv)
             case QEMU_OPTION_semihosting:
                 semihosting_enabled = 1;
                 break;
-            case QEMU_OPTION_domainname:
-                snprintf(domain_name, sizeof(domain_name),
-                         "Xen-%s", optarg);
-                break;
+            case QEMU_OPTION_domainname: /* depricated, use -name instead */
             case QEMU_OPTION_name:
                 qemu_name = optarg;
+                snprintf(domain_name, sizeof(domain_name),
+                         "Xen-%s", optarg);
                 break;
 #ifdef TARGET_SPARC
             case QEMU_OPTION_prom_env:
@@ -9705,6 +9716,17 @@ int main(int argc, char **argv)
             case QEMU_OPTION_incoming:
                 incoming = optarg;
                 break;
+#ifdef CONFIG_XEN
+            case QEMU_OPTION_xen_domid:
+                xen_domid = domid = atoi(optarg);
+                break;
+            case QEMU_OPTION_xen_create:
+                xen_mode = XEN_CREATE;
+                break;
+            case QEMU_OPTION_xen_attach:
+                xen_mode = XEN_ATTACH;
+                break;
+#endif
             }
         }
     }