2 #ifndef __KVM_X86_VMX_VMCS12_H
3 #define __KVM_X86_VMX_VMCS12_H
5 #include <linux/build_bug.h>
198 #define VMCS12_REVISION 0x11e57ed0
206 #define VMCS12_SIZE KVM_STATE_NESTED_VMX_VMCS_SIZE
211 #define CHECK_OFFSET(field, loc) \
212 ASSERT_STRUCT_OFFSET(struct vmcs12, field, loc)
368 unsigned short offset;
374 index =
ROL16(field, 6);
388 char *p = (
char *)
vmcs12 + offset;
406 u16 offset, u64 field_value)
408 char *p = (
char *)
vmcs12 + offset;
412 *(u16 *)p = field_value;
415 *(u32 *)p = field_value;
418 *(u64 *)p = field_value;
u32 page_fault_error_code_mask
u64 posted_intr_desc_addr
natural_width guest_sysenter_eip
natural_width guest_ldtr_base
natural_width guest_es_base
u32 vm_entry_msr_load_count
natural_width guest_tr_base
natural_width guest_gs_base
u32 vm_entry_exception_error_code
natural_width cr0_read_shadow
u32 page_fault_error_code_match
natural_width host_ia32_sysenter_eip
u32 cpu_based_vm_exec_control
natural_width host_fs_base
natural_width guest_cs_base
u32 vm_exit_instruction_len
natural_width host_idtr_base
natural_width host_gdtr_base
u32 secondary_vm_exec_control
natural_width guest_ss_base
natural_width guest_linear_address
natural_width host_ia32_sysenter_esp
u32 vm_entry_intr_info_field
u64 vm_exit_msr_load_addr
u32 idt_vectoring_info_field
u32 vmx_preemption_timer_value
u32 vm_entry_instruction_len
natural_width guest_idtr_base
u64 guest_physical_address
u32 vm_exit_msr_store_count
natural_width host_tr_base
natural_width guest_sysenter_esp
u64 vm_exit_msr_store_addr
u32 idt_vectoring_error_code
natural_width exit_qualification
natural_width guest_gdtr_base
u64 virtual_apic_page_addr
u32 vm_exit_intr_error_code
natural_width host_gs_base
u32 vm_exit_msr_load_count
natural_width guest_ds_base
u64 guest_ia32_perf_global_ctrl
natural_width guest_rflags
natural_width cr0_guest_host_mask
natural_width guest_fs_base
u32 guest_interruptibility_info
u64 vm_entry_msr_load_addr
natural_width cr4_guest_host_mask
u32 host_ia32_sysenter_cs
natural_width guest_pending_dbg_exceptions
u32 pin_based_vm_exec_control
u64 host_ia32_perf_global_ctrl
natural_width cr4_read_shadow
static short get_vmcs12_field_offset(unsigned long field)
static void vmcs12_write_any(struct vmcs12 *vmcs12, unsigned long field, u16 offset, u64 field_value)
#define CHECK_OFFSET(field, loc)
static void vmx_check_vmcs12_offsets(void)
static u64 vmcs12_read_any(struct vmcs12 *vmcs12, unsigned long field, u16 offset)
const unsigned int nr_vmcs12_fields
const unsigned short vmcs12_field_offsets[]
@ VMCS_FIELD_WIDTH_NATURAL_WIDTH