[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID |
Date: |
Tue, 10 Mar 2020 05:34:07 -0400 |
On Tue, Mar 10, 2020 at 01:54:04AM +0200, Liran Alon wrote:
> This is VMware documented functionallity that some guests rely on.
> Returns the BIOS UUID of the current virtual machine.
>
> Reviewed-by: Nikita Leshenko <address@hidden>
> Signed-off-by: Liran Alon <address@hidden>
So this at least seems guest-visible.
So I suspect you need to add properties to
disable this for old machine types, to avoid
breaking compatibility with live-migration.
> ---
> hw/i386/vmport.c | 14 ++++++++++++++
> include/hw/i386/pc.h | 1 +
> 2 files changed, 15 insertions(+)
>
> diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c
> index 2ae5afc42b50..7687f3368a55 100644
> --- a/hw/i386/vmport.c
> +++ b/hw/i386/vmport.c
> @@ -26,6 +26,7 @@
> #include "hw/i386/pc.h"
> #include "hw/input/i8042.h"
> #include "hw/qdev-properties.h"
> +#include "sysemu/sysemu.h"
> #include "sysemu/hw_accel.h"
> #include "qemu/log.h"
> #include "trace.h"
> @@ -121,6 +122,18 @@ static uint32_t vmport_cmd_get_version(void *opaque,
> uint32_t addr)
> return port_state->vmx_version;
> }
>
> +static uint32_t vmport_cmd_get_bios_uuid(void *opaque, uint32_t addr)
> +{
> + X86CPU *cpu = X86_CPU(current_cpu);
> + uint32_t *uuid_parts = (uint32_t*)(qemu_uuid.data);
> +
> + cpu->env.regs[R_EAX] = uuid_parts[0];
> + cpu->env.regs[R_EBX] = uuid_parts[1];
> + cpu->env.regs[R_ECX] = uuid_parts[2];
> + cpu->env.regs[R_EDX] = uuid_parts[3];
> + return cpu->env.regs[R_EAX];
> +}
> +
> static uint32_t vmport_cmd_ram_size(void *opaque, uint32_t addr)
> {
> X86CPU *cpu = X86_CPU(current_cpu);
> @@ -171,6 +184,7 @@ static void vmport_realizefn(DeviceState *dev, Error
> **errp)
> port_state = s;
> /* Register some generic port commands */
> vmport_register(VMPORT_CMD_GETVERSION, vmport_cmd_get_version, NULL);
> + vmport_register(VMPORT_CMD_GETBIOSUUID, vmport_cmd_get_bios_uuid, NULL);
> vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL);
> }
>
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 7f15a01137b1..ea87eb93511e 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -140,6 +140,7 @@ typedef uint32_t (VMPortReadFunc)(void *opaque, uint32_t
> address);
>
> typedef enum {
> VMPORT_CMD_GETVERSION = 10,
> + VMPORT_CMD_GETBIOSUUID = 19,
> VMPORT_CMD_GETRAMSIZE = 20,
> VMPORT_CMD_VMMOUSE_DATA = 39,
> VMPORT_CMD_VMMOUSE_STATUS = 40,
> --
> 2.20.1
- Re: [PATCH 06/14] hw/i386/vmport: Define enum for all commands, (continued)
[PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID, Liran Alon, 2020/03/09
Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID,
Michael S. Tsirkin <=
- Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID, Liran Alon, 2020/03/10
- Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID, Michael S. Tsirkin, 2020/03/10
- Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID, Liran Alon, 2020/03/10
- Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID, Liran Alon, 2020/03/10
- Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID, Michael S. Tsirkin, 2020/03/10
- Re: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID, Liran Alon, 2020/03/10
[PATCH 08/14] hw/i386/vmport: Add support for CMD_GETTIME, Liran Alon, 2020/03/09
Re: [PATCH 00/14]: hw/i386/vmport: Bug fixes and improvements, no-reply, 2020/03/09
Re: [PATCH 00/14]: hw/i386/vmport: Bug fixes and improvements, no-reply, 2020/03/09