Ryan Harper wrote:
> 2 files changed, 29 insertions(+), 1 deletion(-)
> smbios.c |   12 +++++++++++-
> vl.c     |   18 ++++++++++++++++++
>
>
> # HG changeset patch
> # User Ryan Harper <[EMAIL PROTECTED]>
> # Date 1197058922 21600
> # Node ID 5fe703a5a7bde701686fc333c17836b308c17b4f
> # Parent  3470dd05f46cc9f14c3fc9561d06031a4bc0ce7a
> Add -uuid command line flag
>
> This patch allows users to specify a uuid.  If no uuid is specified, then one 
> is
> generated.
>
> Signed-off-by: Ryan Harper <[EMAIL PROTECTED]>
>
> diff -r 3470dd05f46c -r 5fe703a5a7bd smbios.c
> --- a/smbios.c        Fri Dec 07 14:22:02 2007 -0600
> +++ b/smbios.c        Fri Dec 07 14:22:02 2007 -0600
> @@ -32,6 +32,7 @@
>  
>  #ifdef CONFIG_UUID
>  #include <uuid/uuid.h>
> +extern const char *qemu_uuid;
>  #endif
>   

Please move this to a header.

>  CPUState *first_cpu;
> @@ -497,7 +498,16 @@ load_smbios_tables(uint8_t *entry, uint8
>  #ifdef CONFIG_UUID
>      uuid_t uuid;
>  
> -    uuid_generate(uuid);
> +    /* parse user-specified uuid if present */
> +    if (qemu_uuid != NULL) {
> +        if (uuid_parse(qemu_uuid, uuid) < 0) {
> +            fprintf(stderr, "SMBIOS: Could not parse user UUID"
> +                            "string, check format.\n");
> +            return -1;
> +        }
> +    } else {
> +        uuid_generate(uuid);
> +    }
>  #else
>      uint8_t uuid[16] = "QEMUQEMUQEMUQEMU";
>   

I think it's worth writing a uuid_parse() for use in the absence of 
-luuid.  You can just use sscanf().  That will get rid of a lot of 
CONFIG_UUIDs too.

Regards,

Anthony Liguori

>  #endif
> diff -r 3470dd05f46c -r 5fe703a5a7bd vl.c
> --- a/vl.c    Fri Dec 07 14:22:02 2007 -0600
> +++ b/vl.c    Fri Dec 07 14:22:02 2007 -0600
> @@ -137,6 +137,9 @@ int inet_aton(const char *cp, struct in_
>  #define SMBD_COMMAND "/usr/sfw/sbin/smbd"
>  #else
>  #define SMBD_COMMAND "/usr/sbin/smbd"
> +#endif
> +#ifdef CONFIG_UUID
> +const char *qemu_uuid;
>  #endif
>  
>  //#define DEBUG_UNUSED_IOPORT
> @@ -7545,6 +7548,10 @@ static void help(int exitcode)
>             "-no-reboot      exit instead of rebooting\n"
>             "-loadvm file    start right away with a saved state (loadvm in 
> monitor)\n"
>          "-vnc display    start a VNC server on display\n"
> +#ifdef CONFIG_UUID
> +           "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"
> +           "                specify machine UUID\n"
> +#endif
>  #ifndef _WIN32
>          "-daemonize      daemonize QEMU after initializing\n"
>  #endif
> @@ -7647,6 +7654,9 @@ enum {
>      QEMU_OPTION_vnc,
>      QEMU_OPTION_no_acpi,
>      QEMU_OPTION_no_reboot,
> +#ifdef CONFIG_UUID
> +    QEMU_OPTION_uuid,
> +#endif
>      QEMU_OPTION_show_cursor,
>      QEMU_OPTION_daemonize,
>      QEMU_OPTION_option_rom,
> @@ -7742,6 +7752,9 @@ const QEMUOption qemu_options[] = {
>      { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice },
>      { "smp", HAS_ARG, QEMU_OPTION_smp },
>      { "vnc", HAS_ARG, QEMU_OPTION_vnc },
> +#ifdef CONFIG_UUID
> +    { "uuid", HAS_ARG, QEMU_OPTION_uuid },
> +#endif
>  
>      /* temporary options */
>      { "usb", 0, QEMU_OPTION_usb },
> @@ -8527,6 +8540,11 @@ int main(int argc, char **argv)
>           case QEMU_OPTION_daemonize:
>               daemonize = 1;
>               break;
> +#ifdef CONFIG_UUID
> +            case QEMU_OPTION_uuid:
> +                qemu_uuid = optarg;
> +                break;
> +#endif
>           case QEMU_OPTION_option_rom:
>               if (nb_option_roms >= MAX_OPTION_ROMS) {
>                   fprintf(stderr, "Too many option ROMs\n");
>
> -------------------------------------------------------------------------
> SF.Net email is sponsored by:
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> kvm-devel mailing list
> kvm-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/kvm-devel
>
>   


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to