mshv: Add definitions for MSHV sleep state configuration
Add the definitions required to configure sleep states in mshv hypervsior. Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com> Co-developed-by: Anatol Belski <anbelski@linux.microsoft.com> Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com> Reviewed-by: Easwar Hariharan <easwar.hariharan@linux.microsoft.com> Reviewed-by: Nuno Das Neves <nunodasneves@linux.microsoft.com> Acked-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> Signed-off-by: Wei Liu <wei.liu@kernel.org>master
parent
b9a66cd5cc
commit
723c47a221
|
|
@ -465,12 +465,14 @@ union hv_vp_assist_msr_contents { /* HV_REGISTER_VP_ASSIST_PAGE */
|
|||
#define HVCALL_RESET_DEBUG_SESSION 0x006b
|
||||
#define HVCALL_MAP_STATS_PAGE 0x006c
|
||||
#define HVCALL_UNMAP_STATS_PAGE 0x006d
|
||||
#define HVCALL_SET_SYSTEM_PROPERTY 0x006f
|
||||
#define HVCALL_ADD_LOGICAL_PROCESSOR 0x0076
|
||||
#define HVCALL_GET_SYSTEM_PROPERTY 0x007b
|
||||
#define HVCALL_MAP_DEVICE_INTERRUPT 0x007c
|
||||
#define HVCALL_UNMAP_DEVICE_INTERRUPT 0x007d
|
||||
#define HVCALL_RETARGET_INTERRUPT 0x007e
|
||||
#define HVCALL_NOTIFY_PARTITION_EVENT 0x0087
|
||||
#define HVCALL_ENTER_SLEEP_STATE 0x0084
|
||||
#define HVCALL_NOTIFY_PORT_RING_EMPTY 0x008b
|
||||
#define HVCALL_REGISTER_INTERCEPT_RESULT 0x0091
|
||||
#define HVCALL_ASSERT_VIRTUAL_INTERRUPT 0x0094
|
||||
|
|
|
|||
|
|
@ -140,6 +140,7 @@ enum hv_snp_status {
|
|||
|
||||
enum hv_system_property {
|
||||
/* Add more values when needed */
|
||||
HV_SYSTEM_PROPERTY_SLEEP_STATE = 3,
|
||||
HV_SYSTEM_PROPERTY_SCHEDULER_TYPE = 15,
|
||||
HV_DYNAMIC_PROCESSOR_FEATURE_PROPERTY = 21,
|
||||
HV_SYSTEM_PROPERTY_CRASHDUMPAREA = 47,
|
||||
|
|
@ -155,6 +156,19 @@ union hv_pfn_range { /* HV_SPA_PAGE_RANGE */
|
|||
} __packed;
|
||||
};
|
||||
|
||||
enum hv_sleep_state {
|
||||
HV_SLEEP_STATE_S1 = 1,
|
||||
HV_SLEEP_STATE_S2 = 2,
|
||||
HV_SLEEP_STATE_S3 = 3,
|
||||
HV_SLEEP_STATE_S4 = 4,
|
||||
HV_SLEEP_STATE_S5 = 5,
|
||||
/*
|
||||
* After hypervisor has received this, any follow up sleep
|
||||
* state registration requests will be rejected.
|
||||
*/
|
||||
HV_SLEEP_STATE_LOCK = 6
|
||||
};
|
||||
|
||||
enum hv_dynamic_processor_feature_property {
|
||||
/* Add more values when needed */
|
||||
HV_X64_DYNAMIC_PROCESSOR_FEATURE_MAX_ENCRYPTED_PARTITIONS = 13,
|
||||
|
|
@ -184,6 +198,32 @@ struct hv_output_get_system_property {
|
|||
};
|
||||
} __packed;
|
||||
|
||||
struct hv_sleep_state_info {
|
||||
u32 sleep_state; /* enum hv_sleep_state */
|
||||
u8 pm1a_slp_typ;
|
||||
u8 pm1b_slp_typ;
|
||||
} __packed;
|
||||
|
||||
struct hv_input_set_system_property {
|
||||
u32 property_id; /* enum hv_system_property */
|
||||
u32 reserved;
|
||||
union {
|
||||
/* More fields to be filled in when needed */
|
||||
struct hv_sleep_state_info set_sleep_state_info;
|
||||
|
||||
/*
|
||||
* Add a reserved field to ensure the union is 8-byte aligned as
|
||||
* existing members may not be. This is a temporary measure
|
||||
* until all remaining members are added.
|
||||
*/
|
||||
u64 reserved0[8];
|
||||
};
|
||||
} __packed;
|
||||
|
||||
struct hv_input_enter_sleep_state { /* HV_INPUT_ENTER_SLEEP_STATE */
|
||||
u32 sleep_state; /* enum hv_sleep_state */
|
||||
} __packed;
|
||||
|
||||
struct hv_input_map_stats_page {
|
||||
u32 type; /* enum hv_stats_object_type */
|
||||
u32 padding;
|
||||
|
|
|
|||
Loading…
Reference in New Issue