On Thu, Mar 12, 2020 at 06:54:27PM +0200, Liran Alon wrote: > Command currently returns that it is unimplemented by setting > the reserved-bit in it's return value. > > Following patches will return various useful vCPU information > to guest. > > Reviewed-by: Nikita Leshenko <nikita.leshche...@oracle.com> > Signed-off-by: Liran Alon <liran.a...@oracle.com> > --- > hw/i386/vmport.c | 14 ++++++++++++++ > include/hw/i386/vmport.h | 1 + > 2 files changed, 15 insertions(+) > > diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c > index 7e57eda4b526..2ce78aaf7b4c 100644 > --- a/hw/i386/vmport.c > +++ b/hw/i386/vmport.c > @@ -55,6 +55,13 @@ > #define VMPORT_COMPAT_CMDS_V2 \ > (1 << VMPORT_COMPAT_CMDS_V2_BIT) > > +/* vCPU features reported by CMD_GET_VCPU_INFO */ > +#define VCPU_INFO_SLC64_BIT 0 > +#define VCPU_INFO_SYNC_VTSCS_BIT 1 > +#define VCPU_INFO_HV_REPLAY_OK_BIT 2 > +#define VCPU_INFO_LEGACY_X2APIC_BIT 3 > +#define VCPU_INFO_RESERVED_BIT 31 > + > #define VMPORT(obj) OBJECT_CHECK(VMPortState, (obj), TYPE_VMPORT) > > typedef struct VMPortState {
Prefix with VMPORT_ please, and add comments. > @@ -199,6 +206,11 @@ static uint32_t vmport_cmd_time_full(void *opaque, > uint32_t addr) > return VMPORT_MAGIC; > } > > +static uint32_t vmport_cmd_get_vcpu_info(void *opaque, uint32_t addr) > +{ > + return 1 << VCPU_INFO_RESERVED_BIT; > +} > + > /* vmmouse helpers */ > void vmmouse_get_data(uint32_t *data) > { > @@ -247,6 +259,8 @@ static void vmport_realizefn(DeviceState *dev, Error > **errp) > vmport_register(VMPORT_CMD_GETBIOSUUID, vmport_cmd_get_bios_uuid, > NULL); > vmport_register(VMPORT_CMD_GETTIME, vmport_cmd_time, NULL); > vmport_register(VMPORT_CMD_GETTIMEFULL, vmport_cmd_time_full, NULL); > + vmport_register(VMPORT_CMD_GET_VCPU_INFO, vmport_cmd_get_vcpu_info, > + NULL); > } > } > > diff --git a/include/hw/i386/vmport.h b/include/hw/i386/vmport.h > index 5d19963ed417..34cc050b1ffa 100644 > --- a/include/hw/i386/vmport.h > +++ b/include/hw/i386/vmport.h > @@ -13,6 +13,7 @@ typedef enum { > VMPORT_CMD_VMMOUSE_STATUS = 40, > VMPORT_CMD_VMMOUSE_COMMAND = 41, > VMPORT_CMD_GETTIMEFULL = 46, > + VMPORT_CMD_GET_VCPU_INFO = 68, > VMPORT_ENTRIES > } VMPortCommand; > > -- > 2.20.1