Lines Matching refs:vmcs12
6 #include "vmcs12.h"
39 static inline struct vmcs12 *get_vmcs12(struct kvm_vcpu *vcpu)
44 static inline struct vmcs12 *get_shadow_vmcs12(struct kvm_vcpu *vcpu)
85 * the value+mask loaded into vmcs02 may not match the vmcs12 fields.
87 static inline unsigned long nested_read_cr0(struct vmcs12 *fields)
92 static inline unsigned long nested_read_cr4(struct vmcs12 *fields)
131 static inline bool nested_cpu_has(struct vmcs12 *vmcs12, u32 bit)
133 return vmcs12->cpu_based_vm_exec_control & bit;
136 static inline bool nested_cpu_has2(struct vmcs12 *vmcs12, u32 bit)
138 return (vmcs12->cpu_based_vm_exec_control &
140 (vmcs12->secondary_vm_exec_control & bit);
143 static inline bool nested_cpu_has_preemption_timer(struct vmcs12 *vmcs12)
145 return vmcs12->pin_based_vm_exec_control &
149 static inline bool nested_cpu_has_nmi_exiting(struct vmcs12 *vmcs12)
151 return vmcs12->pin_based_vm_exec_control & PIN_BASED_NMI_EXITING;
154 static inline bool nested_cpu_has_virtual_nmis(struct vmcs12 *vmcs12)
156 return vmcs12->pin_based_vm_exec_control & PIN_BASED_VIRTUAL_NMIS;
159 static inline int nested_cpu_has_mtf(struct vmcs12 *vmcs12)
161 return nested_cpu_has(vmcs12, CPU_BASED_MONITOR_TRAP_FLAG);
164 static inline int nested_cpu_has_ept(struct vmcs12 *vmcs12)
166 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_ENABLE_EPT);
169 static inline bool nested_cpu_has_xsaves(struct vmcs12 *vmcs12)
171 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_ENABLE_XSAVES);
174 static inline bool nested_cpu_has_pml(struct vmcs12 *vmcs12)
176 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_ENABLE_PML);
179 static inline bool nested_cpu_has_virt_x2apic_mode(struct vmcs12 *vmcs12)
181 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE);
184 static inline bool nested_cpu_has_vpid(struct vmcs12 *vmcs12)
186 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_ENABLE_VPID);
189 static inline bool nested_cpu_has_apic_reg_virt(struct vmcs12 *vmcs12)
191 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_APIC_REGISTER_VIRT);
194 static inline bool nested_cpu_has_vid(struct vmcs12 *vmcs12)
196 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY);
199 static inline bool nested_cpu_has_posted_intr(struct vmcs12 *vmcs12)
201 return vmcs12->pin_based_vm_exec_control & PIN_BASED_POSTED_INTR;
204 static inline bool nested_cpu_has_vmfunc(struct vmcs12 *vmcs12)
206 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_ENABLE_VMFUNC);
209 static inline bool nested_cpu_has_eptp_switching(struct vmcs12 *vmcs12)
211 return nested_cpu_has_vmfunc(vmcs12) &&
212 (vmcs12->vm_function_control &
216 static inline bool nested_cpu_has_shadow_vmcs(struct vmcs12 *vmcs12)
218 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_SHADOW_VMCS);
221 static inline bool nested_cpu_has_save_preemption_timer(struct vmcs12 *vmcs12)
223 return vmcs12->vm_exit_controls &
242 static inline bool nested_cpu_has_encls_exit(struct vmcs12 *vmcs12)
244 return nested_cpu_has2(vmcs12, SECONDARY_EXEC_ENCLS_EXITING);
260 struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
264 nested_cpu_has2(vmcs12, SECONDARY_EXEC_UNRESTRICTED_GUEST))