From: Ian Jackson Date: Fri, 16 Jan 2009 15:52:14 +0000 (+0000) Subject: New options for Xen invocation (Gerd Hoffman) X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=70fdc97e456621cb612870b54a6998400723b70a;p=xenclient%2Fioemu.git New options for Xen invocation (Gerd Hoffman) 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 (Applied as-is.) --- diff --git a/hw/xen.h b/hw/xen.h new file mode 100644 index 00000000..4bcc0f13 --- /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 */ diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c index 2255247e..bdce94e9 100644 --- a/hw/xen_machine_pv.c +++ b/hw/xen_machine_pv.c @@ -28,6 +28,10 @@ #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 a2ad37da..dd5d155b 100644 --- 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 } } }