|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Ping: [PATCH 1/6] x86/Hyper-V: use standard C types in hyperv-tlfs.h
On 09.02.2023 11:38, Jan Beulich wrote:
> This is the only file left with a use of an __s<N> type coming from
> Linux. Since the file has been using an apparently random mix of all
> three classes of fixed-width types (__{s,u}<N>, {s,u}<N>, and
> {,u}int<N>_t), consolidate this to use exclusively standard types.
>
> No functional change intended.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Ping? (I'll wait a few more days, but I'm going to commit this eventually
with just Andrew's ack if no maintainer one arrives.)
Jan
> --- a/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
> +++ b/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
> @@ -283,11 +283,11 @@
> * Declare the MSR used to setup pages used to communicate with the
> hypervisor.
> */
> union hv_x64_msr_hypercall_contents {
> - u64 as_uint64;
> + uint64_t as_uint64;
> struct {
> - u64 enable:1;
> - u64 reserved:11;
> - u64 guest_physical_address:52;
> + uint64_t enable:1;
> + uint64_t reserved:11;
> + uint64_t guest_physical_address:52;
> };
> };
>
> @@ -295,11 +295,11 @@ union hv_x64_msr_hypercall_contents {
> * TSC page layout.
> */
> struct ms_hyperv_tsc_page {
> - volatile u32 tsc_sequence;
> - u32 reserved1;
> - volatile u64 tsc_scale;
> - volatile s64 tsc_offset;
> - u64 reserved2[509];
> + volatile uint32_t tsc_sequence;
> + uint32_t reserved1;
> + volatile uint64_t tsc_scale;
> + volatile int64_t tsc_offset;
> + uint64_t reserved2[509];
> };
>
> /*
> @@ -343,21 +343,21 @@ union hv_guest_os_id
> };
>
> struct hv_reenlightenment_control {
> - __u64 vector:8;
> - __u64 reserved1:8;
> - __u64 enabled:1;
> - __u64 reserved2:15;
> - __u64 target_vp:32;
> + uint64_t vector:8;
> + uint64_t reserved1:8;
> + uint64_t enabled:1;
> + uint64_t reserved2:15;
> + uint64_t target_vp:32;
> };
>
> struct hv_tsc_emulation_control {
> - __u64 enabled:1;
> - __u64 reserved:63;
> + uint64_t enabled:1;
> + uint64_t reserved:63;
> };
>
> struct hv_tsc_emulation_status {
> - __u64 inprogress:1;
> - __u64 reserved:63;
> + uint64_t inprogress:1;
> + uint64_t reserved:63;
> };
>
> #define HV_X64_MSR_HYPERCALL_ENABLE 0x00000001
> @@ -442,10 +442,10 @@ enum HV_GENERIC_SET_FORMAT {
> #define HV_CLOCK_HZ (NSEC_PER_SEC/100)
>
> typedef struct _HV_REFERENCE_TSC_PAGE {
> - __u32 tsc_sequence;
> - __u32 res1;
> - __u64 tsc_scale;
> - __s64 tsc_offset;
> + uint32_t tsc_sequence;
> + uint32_t res1;
> + uint64_t tsc_scale;
> + int64_t tsc_offset;
> } HV_REFERENCE_TSC_PAGE, *PHV_REFERENCE_TSC_PAGE;
>
> /* Define the number of synthetic interrupt sources. */
> @@ -499,30 +499,30 @@ enum hv_message_type {
>
> /* Define synthetic interrupt controller message flags. */
> union hv_message_flags {
> - __u8 asu8;
> + uint8_t asu8;
> struct {
> - __u8 msg_pending:1;
> - __u8 reserved:7;
> + uint8_t msg_pending:1;
> + uint8_t reserved:7;
> };
> };
>
> /* Define port identifier type. */
> union hv_port_id {
> - __u32 asu32;
> + uint32_t asu32;
> struct {
> - __u32 id:24;
> - __u32 reserved:8;
> + uint32_t id:24;
> + uint32_t reserved:8;
> } u;
> };
>
> /* Define synthetic interrupt controller message header. */
> struct hv_message_header {
> - __u32 message_type;
> - __u8 payload_size;
> + uint32_t message_type;
> + uint8_t payload_size;
> union hv_message_flags message_flags;
> - __u8 reserved[2];
> + uint8_t reserved[2];
> union {
> - __u64 sender;
> + uint64_t sender;
> union hv_port_id port;
> };
> };
> @@ -531,7 +531,7 @@ struct hv_message_header {
> struct hv_message {
> struct hv_message_header header;
> union {
> - __u64 payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT];
> + uint64_t payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT];
> } u;
> };
>
> @@ -542,19 +542,19 @@ struct hv_message_page {
>
> /* Define timer message payload structure. */
> struct hv_timer_message_payload {
> - __u32 timer_index;
> - __u32 reserved;
> - __u64 expiration_time; /* When the timer expired */
> - __u64 delivery_time; /* When the message was delivered */
> + uint32_t timer_index;
> + uint32_t reserved;
> + uint64_t expiration_time; /* When the timer expired */
> + uint64_t delivery_time; /* When the message was delivered */
> };
>
> struct hv_nested_enlightenments_control {
> struct {
> - __u32 directhypercall:1;
> - __u32 reserved:31;
> + uint32_t directhypercall:1;
> + uint32_t reserved:31;
> } features;
> struct {
> - __u32 reserved;
> + uint32_t reserved;
> } hypercallControls;
> };
>
> @@ -571,199 +571,199 @@ union hv_vp_assist_page_msr
>
> /* Define virtual processor assist page structure. */
> struct hv_vp_assist_page {
> - __u32 apic_assist;
> - __u32 reserved1;
> - __u64 vtl_control[3];
> + uint32_t apic_assist;
> + uint32_t reserved1;
> + uint64_t vtl_control[3];
> struct hv_nested_enlightenments_control nested_control;
> - __u8 enlighten_vmentry;
> - __u8 reserved2[7];
> - __u64 current_nested_vmcs;
> + uint8_t enlighten_vmentry;
> + uint8_t reserved2[7];
> + uint64_t current_nested_vmcs;
> };
>
> struct hv_enlightened_vmcs {
> - u32 revision_id;
> - u32 abort;
> + uint32_t revision_id;
> + uint32_t abort;
>
> - u16 host_es_selector;
> - u16 host_cs_selector;
> - u16 host_ss_selector;
> - u16 host_ds_selector;
> - u16 host_fs_selector;
> - u16 host_gs_selector;
> - u16 host_tr_selector;
> -
> - u16 padding16_1;
> -
> - u64 host_ia32_pat;
> - u64 host_ia32_efer;
> -
> - u64 host_cr0;
> - u64 host_cr3;
> - u64 host_cr4;
> -
> - u64 host_ia32_sysenter_esp;
> - u64 host_ia32_sysenter_eip;
> - u64 host_rip;
> - u32 host_ia32_sysenter_cs;
> -
> - u32 pin_based_vm_exec_control;
> - u32 vm_exit_controls;
> - u32 secondary_vm_exec_control;
> -
> - u64 io_bitmap_a;
> - u64 io_bitmap_b;
> - u64 msr_bitmap;
> -
> - u16 guest_es_selector;
> - u16 guest_cs_selector;
> - u16 guest_ss_selector;
> - u16 guest_ds_selector;
> - u16 guest_fs_selector;
> - u16 guest_gs_selector;
> - u16 guest_ldtr_selector;
> - u16 guest_tr_selector;
> -
> - u32 guest_es_limit;
> - u32 guest_cs_limit;
> - u32 guest_ss_limit;
> - u32 guest_ds_limit;
> - u32 guest_fs_limit;
> - u32 guest_gs_limit;
> - u32 guest_ldtr_limit;
> - u32 guest_tr_limit;
> - u32 guest_gdtr_limit;
> - u32 guest_idtr_limit;
> -
> - u32 guest_es_ar_bytes;
> - u32 guest_cs_ar_bytes;
> - u32 guest_ss_ar_bytes;
> - u32 guest_ds_ar_bytes;
> - u32 guest_fs_ar_bytes;
> - u32 guest_gs_ar_bytes;
> - u32 guest_ldtr_ar_bytes;
> - u32 guest_tr_ar_bytes;
> -
> - u64 guest_es_base;
> - u64 guest_cs_base;
> - u64 guest_ss_base;
> - u64 guest_ds_base;
> - u64 guest_fs_base;
> - u64 guest_gs_base;
> - u64 guest_ldtr_base;
> - u64 guest_tr_base;
> - u64 guest_gdtr_base;
> - u64 guest_idtr_base;
> -
> - u64 padding64_1[3];
> -
> - u64 vm_exit_msr_store_addr;
> - u64 vm_exit_msr_load_addr;
> - u64 vm_entry_msr_load_addr;
> -
> - u64 cr3_target_value0;
> - u64 cr3_target_value1;
> - u64 cr3_target_value2;
> - u64 cr3_target_value3;
> -
> - u32 page_fault_error_code_mask;
> - u32 page_fault_error_code_match;
> -
> - u32 cr3_target_count;
> - u32 vm_exit_msr_store_count;
> - u32 vm_exit_msr_load_count;
> - u32 vm_entry_msr_load_count;
> -
> - u64 tsc_offset;
> - u64 virtual_apic_page_addr;
> - u64 vmcs_link_pointer;
> -
> - u64 guest_ia32_debugctl;
> - u64 guest_ia32_pat;
> - u64 guest_ia32_efer;
> -
> - u64 guest_pdptr0;
> - u64 guest_pdptr1;
> - u64 guest_pdptr2;
> - u64 guest_pdptr3;
> -
> - u64 guest_pending_dbg_exceptions;
> - u64 guest_sysenter_esp;
> - u64 guest_sysenter_eip;
> -
> - u32 guest_activity_state;
> - u32 guest_sysenter_cs;
> -
> - u64 cr0_guest_host_mask;
> - u64 cr4_guest_host_mask;
> - u64 cr0_read_shadow;
> - u64 cr4_read_shadow;
> - u64 guest_cr0;
> - u64 guest_cr3;
> - u64 guest_cr4;
> - u64 guest_dr7;
> -
> - u64 host_fs_base;
> - u64 host_gs_base;
> - u64 host_tr_base;
> - u64 host_gdtr_base;
> - u64 host_idtr_base;
> - u64 host_rsp;
> -
> - u64 ept_pointer;
> -
> - u16 virtual_processor_id;
> - u16 padding16_2[3];
> -
> - u64 padding64_2[5];
> - u64 guest_physical_address;
> -
> - u32 vm_instruction_error;
> - u32 vm_exit_reason;
> - u32 vm_exit_intr_info;
> - u32 vm_exit_intr_error_code;
> - u32 idt_vectoring_info_field;
> - u32 idt_vectoring_error_code;
> - u32 vm_exit_instruction_len;
> - u32 vmx_instruction_info;
> -
> - u64 exit_qualification;
> - u64 exit_io_instruction_ecx;
> - u64 exit_io_instruction_esi;
> - u64 exit_io_instruction_edi;
> - u64 exit_io_instruction_eip;
> -
> - u64 guest_linear_address;
> - u64 guest_rsp;
> - u64 guest_rflags;
> -
> - u32 guest_interruptibility_info;
> - u32 cpu_based_vm_exec_control;
> - u32 exception_bitmap;
> - u32 vm_entry_controls;
> - u32 vm_entry_intr_info_field;
> - u32 vm_entry_exception_error_code;
> - u32 vm_entry_instruction_len;
> - u32 tpr_threshold;
> -
> - u64 guest_rip;
> -
> - u32 hv_clean_fields;
> - u32 hv_padding_32;
> - u32 hv_synthetic_controls;
> - struct {
> - u32 nested_flush_hypercall:1;
> - u32 msr_bitmap:1;
> - u32 reserved:30;
> + uint16_t host_es_selector;
> + uint16_t host_cs_selector;
> + uint16_t host_ss_selector;
> + uint16_t host_ds_selector;
> + uint16_t host_fs_selector;
> + uint16_t host_gs_selector;
> + uint16_t host_tr_selector;
> +
> + uint16_t padding16_1;
> +
> + uint64_t host_ia32_pat;
> + uint64_t host_ia32_efer;
> +
> + uint64_t host_cr0;
> + uint64_t host_cr3;
> + uint64_t host_cr4;
> +
> + uint64_t host_ia32_sysenter_esp;
> + uint64_t host_ia32_sysenter_eip;
> + uint64_t host_rip;
> + uint32_t host_ia32_sysenter_cs;
> +
> + uint32_t pin_based_vm_exec_control;
> + uint32_t vm_exit_controls;
> + uint32_t secondary_vm_exec_control;
> +
> + uint64_t io_bitmap_a;
> + uint64_t io_bitmap_b;
> + uint64_t msr_bitmap;
> +
> + uint16_t guest_es_selector;
> + uint16_t guest_cs_selector;
> + uint16_t guest_ss_selector;
> + uint16_t guest_ds_selector;
> + uint16_t guest_fs_selector;
> + uint16_t guest_gs_selector;
> + uint16_t guest_ldtr_selector;
> + uint16_t guest_tr_selector;
> +
> + uint32_t guest_es_limit;
> + uint32_t guest_cs_limit;
> + uint32_t guest_ss_limit;
> + uint32_t guest_ds_limit;
> + uint32_t guest_fs_limit;
> + uint32_t guest_gs_limit;
> + uint32_t guest_ldtr_limit;
> + uint32_t guest_tr_limit;
> + uint32_t guest_gdtr_limit;
> + uint32_t guest_idtr_limit;
> +
> + uint32_t guest_es_ar_bytes;
> + uint32_t guest_cs_ar_bytes;
> + uint32_t guest_ss_ar_bytes;
> + uint32_t guest_ds_ar_bytes;
> + uint32_t guest_fs_ar_bytes;
> + uint32_t guest_gs_ar_bytes;
> + uint32_t guest_ldtr_ar_bytes;
> + uint32_t guest_tr_ar_bytes;
> +
> + uint64_t guest_es_base;
> + uint64_t guest_cs_base;
> + uint64_t guest_ss_base;
> + uint64_t guest_ds_base;
> + uint64_t guest_fs_base;
> + uint64_t guest_gs_base;
> + uint64_t guest_ldtr_base;
> + uint64_t guest_tr_base;
> + uint64_t guest_gdtr_base;
> + uint64_t guest_idtr_base;
> +
> + uint64_t padding64_1[3];
> +
> + uint64_t vm_exit_msr_store_addr;
> + uint64_t vm_exit_msr_load_addr;
> + uint64_t vm_entry_msr_load_addr;
> +
> + uint64_t cr3_target_value0;
> + uint64_t cr3_target_value1;
> + uint64_t cr3_target_value2;
> + uint64_t cr3_target_value3;
> +
> + uint32_t page_fault_error_code_mask;
> + uint32_t page_fault_error_code_match;
> +
> + uint32_t cr3_target_count;
> + uint32_t vm_exit_msr_store_count;
> + uint32_t vm_exit_msr_load_count;
> + uint32_t vm_entry_msr_load_count;
> +
> + uint64_t tsc_offset;
> + uint64_t virtual_apic_page_addr;
> + uint64_t vmcs_link_pointer;
> +
> + uint64_t guest_ia32_debugctl;
> + uint64_t guest_ia32_pat;
> + uint64_t guest_ia32_efer;
> +
> + uint64_t guest_pdptr0;
> + uint64_t guest_pdptr1;
> + uint64_t guest_pdptr2;
> + uint64_t guest_pdptr3;
> +
> + uint64_t guest_pending_dbg_exceptions;
> + uint64_t guest_sysenter_esp;
> + uint64_t guest_sysenter_eip;
> +
> + uint32_t guest_activity_state;
> + uint32_t guest_sysenter_cs;
> +
> + uint64_t cr0_guest_host_mask;
> + uint64_t cr4_guest_host_mask;
> + uint64_t cr0_read_shadow;
> + uint64_t cr4_read_shadow;
> + uint64_t guest_cr0;
> + uint64_t guest_cr3;
> + uint64_t guest_cr4;
> + uint64_t guest_dr7;
> +
> + uint64_t host_fs_base;
> + uint64_t host_gs_base;
> + uint64_t host_tr_base;
> + uint64_t host_gdtr_base;
> + uint64_t host_idtr_base;
> + uint64_t host_rsp;
> +
> + uint64_t ept_pointer;
> +
> + uint16_t virtual_processor_id;
> + uint16_t padding16_2[3];
> +
> + uint64_t padding64_2[5];
> + uint64_t guest_physical_address;
> +
> + uint32_t vm_instruction_error;
> + uint32_t vm_exit_reason;
> + uint32_t vm_exit_intr_info;
> + uint32_t vm_exit_intr_error_code;
> + uint32_t idt_vectoring_info_field;
> + uint32_t idt_vectoring_error_code;
> + uint32_t vm_exit_instruction_len;
> + uint32_t vmx_instruction_info;
> +
> + uint64_t exit_qualification;
> + uint64_t exit_io_instruction_ecx;
> + uint64_t exit_io_instruction_esi;
> + uint64_t exit_io_instruction_edi;
> + uint64_t exit_io_instruction_eip;
> +
> + uint64_t guest_linear_address;
> + uint64_t guest_rsp;
> + uint64_t guest_rflags;
> +
> + uint32_t guest_interruptibility_info;
> + uint32_t cpu_based_vm_exec_control;
> + uint32_t exception_bitmap;
> + uint32_t vm_entry_controls;
> + uint32_t vm_entry_intr_info_field;
> + uint32_t vm_entry_exception_error_code;
> + uint32_t vm_entry_instruction_len;
> + uint32_t tpr_threshold;
> +
> + uint64_t guest_rip;
> +
> + uint32_t hv_clean_fields;
> + uint32_t hv_padding_32;
> + uint32_t hv_synthetic_controls;
> + struct {
> + uint32_t nested_flush_hypercall:1;
> + uint32_t msr_bitmap:1;
> + uint32_t reserved:30;
> } hv_enlightenments_control;
> - u32 hv_vp_id;
> + uint32_t hv_vp_id;
>
> - u64 hv_vm_id;
> - u64 partition_assist_page;
> - u64 padding64_4[4];
> - u64 guest_bndcfgs;
> - u64 padding64_5[7];
> - u64 xss_exit_bitmap;
> - u64 padding64_6[7];
> + uint64_t hv_vm_id;
> + uint64_t partition_assist_page;
> + uint64_t padding64_4[4];
> + uint64_t guest_bndcfgs;
> + uint64_t padding64_5[7];
> + uint64_t xss_exit_bitmap;
> + uint64_t padding64_6[7];
> };
>
> #define HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE 0
> @@ -794,17 +794,17 @@ struct hv_enlightened_vmcs {
> * Synthetic timer configuration.
> */
> union hv_stimer_config {
> - u64 as_uint64;
> + uint64_t as_uint64;
> struct {
> - u64 enable:1;
> - u64 periodic:1;
> - u64 lazy:1;
> - u64 auto_enable:1;
> - u64 apic_vector:8;
> - u64 direct_mode:1;
> - u64 reserved_z0:3;
> - u64 sintx:4;
> - u64 reserved_z1:44;
> + uint64_t enable:1;
> + uint64_t periodic:1;
> + uint64_t lazy:1;
> + uint64_t auto_enable:1;
> + uint64_t apic_vector:8;
> + uint64_t direct_mode:1;
> + uint64_t reserved_z0:3;
> + uint64_t sintx:4;
> + uint64_t reserved_z1:44;
> };
> };
>
> @@ -816,70 +816,70 @@ union hv_synic_event_flags {
>
> /* Define SynIC control register. */
> union hv_synic_scontrol {
> - u64 as_uint64;
> + uint64_t as_uint64;
> struct {
> - u64 enable:1;
> - u64 reserved:63;
> + uint64_t enable:1;
> + uint64_t reserved:63;
> };
> };
>
> /* Define synthetic interrupt source. */
> union hv_synic_sint {
> - u64 as_uint64;
> + uint64_t as_uint64;
> struct {
> - u64 vector:8;
> - u64 reserved1:8;
> - u64 masked:1;
> - u64 auto_eoi:1;
> - u64 polling:1;
> - u64 reserved2:45;
> + uint64_t vector:8;
> + uint64_t reserved1:8;
> + uint64_t masked:1;
> + uint64_t auto_eoi:1;
> + uint64_t polling:1;
> + uint64_t reserved2:45;
> };
> };
>
> /* Define the format of the SIMP register */
> union hv_synic_simp {
> - u64 as_uint64;
> + uint64_t as_uint64;
> struct {
> - u64 simp_enabled:1;
> - u64 preserved:11;
> - u64 base_simp_gpa:52;
> + uint64_t simp_enabled:1;
> + uint64_t preserved:11;
> + uint64_t base_simp_gpa:52;
> };
> };
>
> /* Define the format of the SIEFP register */
> union hv_synic_siefp {
> - u64 as_uint64;
> + uint64_t as_uint64;
> struct {
> - u64 siefp_enabled:1;
> - u64 preserved:11;
> - u64 base_siefp_gpa:52;
> + uint64_t siefp_enabled:1;
> + uint64_t preserved:11;
> + uint64_t base_siefp_gpa:52;
> };
> };
>
> struct hv_vpset {
> - u64 format;
> - u64 valid_bank_mask;
> - u64 bank_contents[];
> + uint64_t format;
> + uint64_t valid_bank_mask;
> + uint64_t bank_contents[];
> };
>
> /* HvCallSendSyntheticClusterIpi hypercall */
> struct hv_send_ipi {
> - u32 vector;
> - u32 reserved;
> - u64 cpu_mask;
> + uint32_t vector;
> + uint32_t reserved;
> + uint64_t cpu_mask;
> };
>
> /* HvCallSendSyntheticClusterIpiEx hypercall */
> struct hv_send_ipi_ex {
> - u32 vector;
> - u32 reserved;
> + uint32_t vector;
> + uint32_t reserved;
> struct hv_vpset vp_set;
> };
>
> /* HvFlushGuestPhysicalAddressSpace hypercalls */
> struct hv_guest_mapping_flush {
> - u64 address_space;
> - u64 flags;
> + uint64_t address_space;
> + uint64_t flags;
> };
>
> /*
> @@ -890,11 +890,11 @@ struct hv_guest_mapping_flush {
>
> /* HvFlushGuestPhysicalAddressList hypercall */
> union hv_gpa_page_range {
> - u64 address_space;
> + uint64_t address_space;
> struct {
> - u64 additional_pages:11;
> - u64 largepage:1;
> - u64 basepfn:52;
> + uint64_t additional_pages:11;
> + uint64_t largepage:1;
> + uint64_t basepfn:52;
> } page;
> };
>
> @@ -903,32 +903,32 @@ union hv_gpa_page_range {
> * count is equal with how many entries of union hv_gpa_page_range can
> * be populated into the input parameter page.
> */
> -#define HV_MAX_FLUSH_REP_COUNT ((HV_HYP_PAGE_SIZE - 2 * sizeof(u64)) /
> \
> +#define HV_MAX_FLUSH_REP_COUNT ((HV_HYP_PAGE_SIZE - 2 * sizeof(uint64_t)) / \
> sizeof(union hv_gpa_page_range))
>
> struct hv_guest_mapping_flush_list {
> - u64 address_space;
> - u64 flags;
> + uint64_t address_space;
> + uint64_t flags;
> union hv_gpa_page_range gpa_list[HV_MAX_FLUSH_REP_COUNT];
> };
>
> /* HvFlushVirtualAddressSpace, HvFlushVirtualAddressList hypercalls */
> struct hv_tlb_flush {
> - u64 address_space;
> - u64 flags;
> - u64 processor_mask;
> - u64 gva_list[];
> + uint64_t address_space;
> + uint64_t flags;
> + uint64_t processor_mask;
> + uint64_t gva_list[];
> };
>
> /* HvFlushVirtualAddressSpaceEx hypercall */
> struct hv_tlb_flush_ex {
> - u64 address_space;
> - u64 flags;
> + uint64_t address_space;
> + uint64_t flags;
> struct hv_vpset hv_vp_set;
> - /* u64 gva_list[]; */
> + /* uint64_t gva_list[]; */
> };
>
> struct hv_partition_assist_pg {
> - u32 tlb_lock_count;
> + uint32_t tlb_lock_count;
> };
> #endif
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |