qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 1/1] Allow machines to configure the QEMU_VERSION th


From: Crístian Viana
Subject: [Qemu-devel] [PATCH 1/1] Allow machines to configure the QEMU_VERSION that's exposed via hardware
Date: Thu, 5 Apr 2012 11:26:32 -0300

Based on the following conversation:

http://mid.gmane.org/address@hidden

> Which reminds me - qemu sticks the release version in
> guest visible places like CPU version.
> This is wrong and causes windows guests to print messages
> about driver updates when you switch.
> We should find all these places and stop doing this.

There is a new field on the struct QEmuMachine, hw_version, which may
contain the version that the specific machine should report. If that
field is set, then that machine will report that version to the virtual
machine.

Signed-off-by: Crístian Viana <address@hidden>
---
 bsd-user/main.c               |    3 ++-
 darwin-user/main.c            |    3 ++-
 hw/boards.h                   |    1 +
 hw/bt-sdp.c                   |    6 +++---
 hw/ide/core.c                 |    2 +-
 hw/nseries.c                  |    2 +-
 hw/pc_piix.c                  |   11 +++++++++--
 hw/scsi-bus.c                 |    2 +-
 hw/scsi-disk.c                |    2 +-
 hw/usb/dev-bluetooth.c        |    2 +-
 hw/usb/dev-hid.c              |    2 +-
 hw/usb/dev-hub.c              |    2 +-
 hw/usb/dev-serial.c           |    2 +-
 hw/usb/dev-smartcard-reader.c |    4 ++--
 hw/usb/dev-storage.c          |    2 +-
 hw/usb/dev-wacom.c            |    2 +-
 hw/usb/redirect.c             |    7 ++++---
 linux-user/main.c             |    4 ++--
 monitor.c                     |    2 +-
 osdep.c                       |   11 +++++++++++
 osdep.h                       |    3 +++
 qemu-img.c                    |    9 ++++-----
 qmp.c                         |    2 +-
 target-i386/cpuid.c           |   19 ++++++++++++++-----
 vl.c                          |    7 ++++++-
 25 files changed, 75 insertions(+), 37 deletions(-)

diff --git a/bsd-user/main.c b/bsd-user/main.c
index 48cb715..5bf7685 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -671,7 +671,7 @@ void cpu_loop(CPUSPARCState *env)
 
 static void usage(void)
 {
-    printf("qemu-" TARGET_ARCH " version " QEMU_VERSION ", Copyright (c) 
2003-2008 Fabrice Bellard\n"
+    printf("qemu-" TARGET_ARCH " version %s, Copyright (c) 2003-2008 Fabrice 
Bellard\n"
            "usage: qemu-" TARGET_ARCH " [options] program [arguments...]\n"
            "BSD CPU emulator (compiled for %s emulation)\n"
            "\n"
@@ -706,6 +706,7 @@ static void usage(void)
            "Note that if you provide several changes to single variable\n"
            "last change will stay in effect.\n"
            ,
+           qemu_get_version(),
            TARGET_ARCH,
            interp_prefix,
            x86_stack_size,
diff --git a/darwin-user/main.c b/darwin-user/main.c
index 544e219..2280b59 100644
--- a/darwin-user/main.c
+++ b/darwin-user/main.c
@@ -707,7 +707,7 @@ void cpu_loop(CPUX86State *env)
 
 static void usage(void)
 {
-    printf("qemu-" TARGET_ARCH " version " QEMU_VERSION ", Copyright (c) 
2003-2004 Fabrice Bellard\n"
+    printf("qemu-" TARGET_ARCH " version %s, Copyright (c) 2003-2004 Fabrice 
Bellard\n"
            "usage: qemu-" TARGET_ARCH " [-h] [-d opts] [-L path] [-s size] 
program [arguments...]\n"
            "Darwin CPU emulator (compiled for %s emulation)\n"
            "\n"
@@ -720,6 +720,7 @@ static void usage(void)
            "-g wait for gdb on port 1234\n"
            "-p pagesize  set the host page size to 'pagesize'\n",
            "-singlestep  always run in singlestep mode\n"
+           qemu_get_version(),
            TARGET_ARCH,
            TARGET_ARCH,
            interp_prefix,
diff --git a/hw/boards.h b/hw/boards.h
index 667177d..59c01d0 100644
--- a/hw/boards.h
+++ b/hw/boards.h
@@ -29,6 +29,7 @@ typedef struct QEMUMachine {
     const char *default_machine_opts;
     GlobalProperty *compat_props;
     struct QEMUMachine *next;
+    const char *hw_version;
 } QEMUMachine;
 
 int qemu_register_machine(QEMUMachine *m);
diff --git a/hw/bt-sdp.c b/hw/bt-sdp.c
index 3e390ab..c0431d1 100644
--- a/hw/bt-sdp.c
+++ b/hw/bt-sdp.c
@@ -834,7 +834,7 @@ SERVICE(hid,
     ATTRIBUTE(DOC_URL,         URL("http://bellard.org/qemu/user-doc.html";))
     ATTRIBUTE(SVCNAME_PRIMARY, STRING("QEMU Bluetooth HID"))
     ATTRIBUTE(SVCDESC_PRIMARY, STRING("QEMU Keyboard/Mouse"))
-    ATTRIBUTE(SVCPROV_PRIMARY, STRING("QEMU " QEMU_VERSION))
+    ATTRIBUTE(SVCPROV_PRIMARY, STRING("QEMU"))
 
     /* Profile specific */
     ATTRIBUTE(DEVICE_RELEASE_NUMBER,   UINT16(0x0091)) /* Deprecated, remove */
@@ -908,7 +908,7 @@ SERVICE(sdp,
         LIST(UUID128(SDP_SERVER_PROFILE_ID) UINT16(0x0100))
     ))
     ATTRIBUTE(DOC_URL,         URL("http://bellard.org/qemu/user-doc.html";))
-    ATTRIBUTE(SVCPROV_PRIMARY, STRING("QEMU " QEMU_VERSION))
+    ATTRIBUTE(SVCPROV_PRIMARY, STRING("QEMU"))
 
     /* Profile specific */
     ATTRIBUTE(VERSION_NUM_LIST, LIST(UINT16(0x0100)))
@@ -931,7 +931,7 @@ SERVICE(pnp,
         LIST(UUID128(PNP_INFO_PROFILE_ID) UINT16(0x0100))
     ))
     ATTRIBUTE(DOC_URL,         URL("http://bellard.org/qemu/user-doc.html";))
-    ATTRIBUTE(SVCPROV_PRIMARY, STRING("QEMU " QEMU_VERSION))
+    ATTRIBUTE(SVCPROV_PRIMARY, STRING("QEMU"))
 
     /* Profile specific */
     ATTRIBUTE(SPECIFICATION_ID, UINT16(0x0100))
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 4d568ac..dde0ad2 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1888,7 +1888,7 @@ int ide_init_drive(IDEState *s, BlockDriverState *bs, 
IDEDriveKind kind,
     if (version) {
         pstrcpy(s->version, sizeof(s->version), version);
     } else {
-        pstrcpy(s->version, sizeof(s->version), QEMU_VERSION);
+        pstrcpy(s->version, sizeof(s->version), qemu_get_version());
     }
 
     ide_reset(s);
diff --git a/hw/nseries.c b/hw/nseries.c
index a5cfa8c..9d07cb8 100644
--- a/hw/nseries.c
+++ b/hw/nseries.c
@@ -1247,7 +1247,7 @@ static int n8x0_atag_setup(void *p, int model)
     stw_raw(w ++, 24);                         /* u16 len */
     strcpy((void *) w, "hw-build");            /* char component[12] */
     w += 6;
-    strcpy((void *) w, "QEMU " QEMU_VERSION);  /* char version[12] */
+    sprintf((void *) w, "QEMU %s", qemu_get_version()); /* char version[12] */
     w += 6;
 
     tag = (model == 810) ? "1.1.10-qemu" : "1.1.6-qemu";
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index fadca4c..d6b5ff9 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -376,6 +376,7 @@ static QEMUMachine pc_machine_v1_0 = {
         },
         { /* end of list */ }
     },
+    .hw_version = "1.0",
 };
 
 static QEMUMachine pc_machine_v0_15 = {
@@ -395,6 +396,7 @@ static QEMUMachine pc_machine_v0_15 = {
         },
         { /* end of list */ }
     },
+    .hw_version = "0.15",
 };
 
 static QEMUMachine pc_machine_v0_14 = {
@@ -439,6 +441,7 @@ static QEMUMachine pc_machine_v0_14 = {
         },
         { /* end of list */ }
     },
+    .hw_version = "0.14",
 };
 
 static QEMUMachine pc_machine_v0_13 = {
@@ -495,6 +498,7 @@ static QEMUMachine pc_machine_v0_13 = {
         },
         { /* end of list */ }
     },
+    .hw_version = "0.13",
 };
 
 static QEMUMachine pc_machine_v0_12 = {
@@ -554,7 +558,8 @@ static QEMUMachine pc_machine_v0_12 = {
             .value    = stringify(1),
         },
         { /* end of list */ }
-    }
+    },
+    .hw_version = "0.12",
 };
 
 static QEMUMachine pc_machine_v0_11 = {
@@ -622,7 +627,8 @@ static QEMUMachine pc_machine_v0_11 = {
             .value    = stringify(1),
         },
         { /* end of list */ }
-    }
+    },
+    .hw_version = "0.11",
 };
 
 static QEMUMachine pc_machine_v0_10 = {
@@ -703,6 +709,7 @@ static QEMUMachine pc_machine_v0_10 = {
         },
         { /* end of list */ }
     },
+    .hw_version = "0.10",
 };
 
 static QEMUMachine isapc_machine = {
diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
index 8e76c5d..1bdfa2d 100644
--- a/hw/scsi-bus.c
+++ b/hw/scsi-bus.c
@@ -402,7 +402,7 @@ static bool scsi_target_emulate_inquiry(SCSITargetReq *r)
         r->buf[7] = 0x10 | (r->req.bus->info->tcq ? 0x02 : 0); /* Sync, TCQ.  
*/
         memcpy(&r->buf[8], "QEMU    ", 8);
         memcpy(&r->buf[16], "QEMU TARGET     ", 16);
-        strncpy((char *) &r->buf[32], QEMU_VERSION, 4);
+        strncpy((char *) &r->buf[32], qemu_get_version(), 4);
     }
     return true;
 }
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index 9949786..3e6cecc 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -1611,7 +1611,7 @@ static int scsi_initfn(SCSIDevice *dev)
     }
 
     if (!s->version) {
-        s->version = g_strdup(QEMU_VERSION);
+        s->version = g_strdup(qemu_get_version());
     }
 
     if (bdrv_is_sg(s->qdev.conf.bs)) {
diff --git a/hw/usb/dev-bluetooth.c b/hw/usb/dev-bluetooth.c
index 195370c..f24b196 100644
--- a/hw/usb/dev-bluetooth.c
+++ b/hw/usb/dev-bluetooth.c
@@ -57,7 +57,7 @@ enum {
 };
 
 static const USBDescStrings desc_strings = {
-    [STR_MANUFACTURER]     = "QEMU " QEMU_VERSION,
+    [STR_MANUFACTURER]     = "QEMU",
     [STR_SERIALNUMBER]     = "1",
 };
 
diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
index f29544d..b3dcd23 100644
--- a/hw/usb/dev-hid.c
+++ b/hw/usb/dev-hid.c
@@ -60,7 +60,7 @@ enum {
 };
 
 static const USBDescStrings desc_strings = {
-    [STR_MANUFACTURER]     = "QEMU " QEMU_VERSION,
+    [STR_MANUFACTURER]     = "QEMU",
     [STR_PRODUCT_MOUSE]    = "QEMU USB Mouse",
     [STR_PRODUCT_TABLET]   = "QEMU USB Tablet",
     [STR_PRODUCT_KEYBOARD] = "QEMU USB Keyboard",
diff --git a/hw/usb/dev-hub.c b/hw/usb/dev-hub.c
index eb4e711..5c8ace6 100644
--- a/hw/usb/dev-hub.c
+++ b/hw/usb/dev-hub.c
@@ -91,7 +91,7 @@ enum {
 };
 
 static const USBDescStrings desc_strings = {
-    [STR_MANUFACTURER] = "QEMU " QEMU_VERSION,
+    [STR_MANUFACTURER] = "QEMU",
     [STR_PRODUCT]      = "QEMU USB Hub",
     [STR_SERIALNUMBER] = "314159",
 };
diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
index 8dcac8b..e405c01 100644
--- a/hw/usb/dev-serial.c
+++ b/hw/usb/dev-serial.c
@@ -111,7 +111,7 @@ enum {
 };
 
 static const USBDescStrings desc_strings = {
-    [STR_MANUFACTURER]    = "QEMU " QEMU_VERSION,
+    [STR_MANUFACTURER]    = "QEMU",
     [STR_PRODUCT_SERIAL]  = "QEMU USB SERIAL",
     [STR_PRODUCT_BRAILLE] = "QEMU USB BRAILLE",
     [STR_SERIALNUMBER]    = "1",
diff --git a/hw/usb/dev-smartcard-reader.c b/hw/usb/dev-smartcard-reader.c
index 8e66675..6fe9359 100644
--- a/hw/usb/dev-smartcard-reader.c
+++ b/hw/usb/dev-smartcard-reader.c
@@ -81,7 +81,7 @@ do { \
 #define CCID_CONTROL_GET_DATA_RATES         0x3
 
 #define CCID_PRODUCT_DESCRIPTION        "QEMU USB CCID"
-#define CCID_VENDOR_DESCRIPTION         "QEMU " QEMU_VERSION
+#define CCID_VENDOR_DESCRIPTION         "QEMU"
 #define CCID_INTERFACE_NAME             "CCID Interface"
 #define CCID_SERIAL_NUMBER_STRING       "1"
 /*
@@ -401,7 +401,7 @@ enum {
 };
 
 static const USBDescStrings desc_strings = {
-    [STR_MANUFACTURER]  = "QEMU " QEMU_VERSION,
+    [STR_MANUFACTURER]  = "QEMU",
     [STR_PRODUCT]       = "QEMU USB CCID",
     [STR_SERIALNUMBER]  = "1",
     [STR_INTERFACE]     = "CCID Interface",
diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
index bdbe7bd..97d3529 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -82,7 +82,7 @@ enum {
 };
 
 static const USBDescStrings desc_strings = {
-    [STR_MANUFACTURER] = "QEMU " QEMU_VERSION,
+    [STR_MANUFACTURER] = "QEMU",
     [STR_PRODUCT]      = "QEMU USB HARDDRIVE",
     [STR_SERIALNUMBER] = "1",
     [STR_CONFIG_FULL]  = "Full speed config (usb 1.1)",
diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
index c1cfd74..5380d17 100644
--- a/hw/usb/dev-wacom.c
+++ b/hw/usb/dev-wacom.c
@@ -62,7 +62,7 @@ enum {
 };
 
 static const USBDescStrings desc_strings = {
-    [STR_MANUFACTURER]     = "QEMU " QEMU_VERSION,
+    [STR_MANUFACTURER]     = "QEMU",
     [STR_PRODUCT]          = "Wacom PenPartner",
     [STR_SERIALNUMBER]     = "1",
 };
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 8e9f175..3980d96 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -141,8 +141,6 @@ static void usbredir_interrupt_packet(void *priv, uint32_t 
id,
 static int usbredir_handle_status(USBRedirDevice *dev,
                                        int status, int actual_len);
 
-#define VERSION "qemu usb-redir guest " QEMU_VERSION
-
 /*
  * Logging stuff
  */
@@ -792,6 +790,9 @@ static void usbredir_open_close_bh(void *opaque)
 {
     USBRedirDevice *dev = opaque;
     uint32_t caps[USB_REDIR_CAPS_SIZE] = { 0, };
+    char version[32];
+
+    snprintf(version, 32, "qemu usb-redir guest %s", qemu_get_version());
 
     usbredir_device_disconnect(dev);
 
@@ -826,7 +827,7 @@ static void usbredir_open_close_bh(void *opaque)
 
         usbredirparser_caps_set_cap(caps, 
usb_redir_cap_connect_device_version);
         usbredirparser_caps_set_cap(caps, usb_redir_cap_filter);
-        usbredirparser_init(dev->parser, VERSION, caps, USB_REDIR_CAPS_SIZE, 
0);
+        usbredirparser_init(dev->parser, version, caps, USB_REDIR_CAPS_SIZE, 
0);
         usbredirparser_do_write(dev->parser);
     }
 }
diff --git a/linux-user/main.c b/linux-user/main.c
index 962677e..f6005fd 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -3089,8 +3089,8 @@ static void handle_arg_strace(const char *arg)
 
 static void handle_arg_version(const char *arg)
 {
-    printf("qemu-" TARGET_ARCH " version " QEMU_VERSION QEMU_PKGVERSION
-           ", Copyright (c) 2003-2008 Fabrice Bellard\n");
+    printf("qemu-" TARGET_ARCH " version %s " QEMU_PKGVERSION
+           ", Copyright (c) 2003-2008 Fabrice Bellard\n", qemu_get_version());
     exit(0);
 }
 
diff --git a/monitor.c b/monitor.c
index 8946a10..08452ba 100644
--- a/monitor.c
+++ b/monitor.c
@@ -4535,7 +4535,7 @@ static void monitor_event(void *opaque, int event)
 
     case CHR_EVENT_OPENED:
         monitor_printf(mon, "QEMU %s monitor - type 'help' for more "
-                       "information\n", QEMU_VERSION);
+                       "information\n", qemu_get_version());
         if (!mon->mux_out) {
             readline_show_prompt(mon->rs);
         }
diff --git a/osdep.c b/osdep.c
index 3e6bada..03817f0 100644
--- a/osdep.c
+++ b/osdep.c
@@ -48,6 +48,8 @@ extern int madvise(caddr_t, size_t, int);
 #include "trace.h"
 #include "qemu_socket.h"
 
+static const char *qemu_version = QEMU_VERSION;
+
 int socket_set_cork(int fd, int v)
 {
 #if defined(SOL_TCP) && defined(TCP_CORK)
@@ -242,3 +244,12 @@ ssize_t qemu_recv_full(int fd, void *buf, size_t count, 
int flags)
     return total;
 }
 
+void qemu_set_version(const char *version)
+{
+    qemu_version = version;
+}
+
+const char *qemu_get_version(void)
+{
+    return qemu_version;
+}
diff --git a/osdep.h b/osdep.h
index 428285c..858c7f1 100644
--- a/osdep.h
+++ b/osdep.h
@@ -142,4 +142,7 @@ static inline void qemu_timersub(const struct timeval *val1,
 
 void qemu_set_cloexec(int fd);
 
+void qemu_set_version(const char *);
+const char *qemu_get_version(void);
+
 #endif
diff --git a/qemu-img.c b/qemu-img.c
index 0e48b35..619914b 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -50,8 +50,7 @@ static void format_print(void *opaque, const char *name)
 /* Please keep in synch with qemu-img.texi */
 static void help(void)
 {
-    const char *help_msg =
-           "qemu-img version " QEMU_VERSION ", Copyright (c) 2004-2008 Fabrice 
Bellard\n"
+    printf("qemu-img version %s, Copyright (c) 2004-2008 Fabrice Bellard\n"
            "usage: qemu-img command [command options]\n"
            "QEMU disk image utility\n"
            "\n"
@@ -90,9 +89,9 @@ static void help(void)
            "  '-a' applies a snapshot (revert disk to saved state)\n"
            "  '-c' creates a snapshot\n"
            "  '-d' deletes a snapshot\n"
-           "  '-l' lists all snapshots in the given image\n";
-
-    printf("%s\nSupported formats:", help_msg);
+           "  '-l' lists all snapshots in the given image\n"
+           "\n"
+           "Supported formats:", qemu_get_version());
     bdrv_iterate_format(format_print, NULL);
     printf("\n");
     exit(1);
diff --git a/qmp.c b/qmp.c
index a182b51..5a7ddb4 100644
--- a/qmp.c
+++ b/qmp.c
@@ -39,7 +39,7 @@ NameInfo *qmp_query_name(Error **errp)
 VersionInfo *qmp_query_version(Error **err)
 {
     VersionInfo *info = g_malloc0(sizeof(*info));
-    const char *version = QEMU_VERSION;
+    const char *version = qemu_get_version();
     char *tmp;
 
     info->qemu.major = strtol(version, &tmp, 10);
diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
index 465ea15..a8b6d54 100644
--- a/target-i386/cpuid.c
+++ b/target-i386/cpuid.c
@@ -301,7 +301,6 @@ static x86_def_t builtin_x86_defs[] = {
         .ext3_features = CPUID_EXT3_LAHF_LM | CPUID_EXT3_SVM |
             CPUID_EXT3_ABM | CPUID_EXT3_SSE4A,
         .xlevel = 0x8000000A,
-        .model_id = "QEMU Virtual CPU version " QEMU_VERSION,
     },
     {
         .name = "phenom",
@@ -384,7 +383,6 @@ static x86_def_t builtin_x86_defs[] = {
         .features = PPRO_FEATURES,
         .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_POPCNT,
         .xlevel = 0x80000004,
-        .model_id = "QEMU Virtual CPU version " QEMU_VERSION,
     },
     {
         .name = "kvm32",
@@ -463,8 +461,6 @@ static x86_def_t builtin_x86_defs[] = {
         .features = PPRO_FEATURES | CPUID_PSE36 | CPUID_VME | CPUID_MTRR | 
CPUID_MCA,
         .ext2_features = (PPRO_FEATURES & EXT2_FEATURE_MASK) | 
CPUID_EXT2_MMXEXT | CPUID_EXT2_3DNOW | CPUID_EXT2_3DNOWEXT,
         .xlevel = 0x80000008,
-        /* XXX: put another string ? */
-        .model_id = "QEMU Virtual CPU version " QEMU_VERSION,
     },
     {
         .name = "n270",
@@ -1068,11 +1064,24 @@ void cpu_clear_apic_feature(CPUX86State *env)
  */
 void x86_cpudef_setup(void)
 {
-    int i;
+    int i, j;
+    static const char *model_with_versions[] = { "qemu32", "qemu64", "athlon" 
};
 
     for (i = 0; i < ARRAY_SIZE(builtin_x86_defs); ++i) {
         builtin_x86_defs[i].next = x86_defs;
         builtin_x86_defs[i].flags = 1;
+
+        /* Look for specific "cpudef" models that */
+        /* have the QEmu version in .model_id */
+        for (j = 0; j < ARRAY_SIZE(model_with_versions); j++) {
+            if (strcmp(model_with_versions[j], builtin_x86_defs[i].name) == 0) 
{
+                snprintf(builtin_x86_defs[i].model_id,
+                         sizeof(builtin_x86_defs[i].model_id),
+                         "QEMU Virtual CPU version %s", qemu_get_version());
+                break;
+            }
+        }
+
         x86_defs = &builtin_x86_defs[i];
     }
 #if !defined(CONFIG_USER_ONLY)
diff --git a/vl.c b/vl.c
index ae91a8a..7fea263 100644
--- a/vl.c
+++ b/vl.c
@@ -1561,7 +1561,8 @@ static void main_loop(void)
 
 static void version(void)
 {
-    printf("QEMU emulator version " QEMU_VERSION QEMU_PKGVERSION ", Copyright 
(c) 2003-2008 Fabrice Bellard\n");
+    printf("QEMU emulator version %s" QEMU_PKGVERSION ", "
+           "Copyright (c) 2003-2008 Fabrice Bellard\n", qemu_get_version());
 }
 
 static void help(int exitcode)
@@ -3198,6 +3199,10 @@ int main(int argc, char **argv, char **envp)
     }
     loc_set_none();
 
+    if (machine->hw_version) {
+        qemu_set_version(machine->hw_version);
+    }
+
     /* Init CPU def lists, based on config
      * - Must be called after all the qemu_read_config_file() calls
      * - Must be called before list_cpus()
-- 
1.7.8.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]