Lines Matching defs:msrs

360 			to_vmx(vcpu)->nested.msrs.ept_caps &
882 u64 vmx_misc = vmx_control_msr(vmx->nested.msrs.misc_low,
883 vmx->nested.msrs.misc_high);
1267 vmx->nested.msrs.basic = data;
1271 static void vmx_get_control_msr(struct nested_vmx_msrs *msrs, u32 msr_index,
1276 *low = &msrs->pinbased_ctls_low;
1277 *high = &msrs->pinbased_ctls_high;
1280 *low = &msrs->procbased_ctls_low;
1281 *high = &msrs->procbased_ctls_high;
1284 *low = &msrs->exit_ctls_low;
1285 *high = &msrs->exit_ctls_high;
1288 *low = &msrs->entry_ctls_low;
1289 *high = &msrs->entry_ctls_high;
1292 *low = &msrs->secondary_ctls_low;
1293 *high = &msrs->secondary_ctls_high;
1318 vmx_get_control_msr(&vmx->nested.msrs, msr_index, &lowp, &highp);
1338 if ((vmx->nested.msrs.pinbased_ctls_high &
1353 vmx->nested.msrs.misc_low = data;
1354 vmx->nested.msrs.misc_high = data >> 32;
1368 vmx->nested.msrs.ept_caps = data;
1369 vmx->nested.msrs.vpid_caps = data >> 32;
1373 static u64 *vmx_get_fixed0_msr(struct nested_vmx_msrs *msrs, u32 msr_index)
1377 return &msrs->cr0_fixed0;
1379 return &msrs->cr4_fixed0;
1396 *vmx_get_fixed0_msr(&vmx->nested.msrs, msr_index) = data;
1454 vmx->nested.msrs.vmcs_enum = data;
1459 vmx->nested.msrs.vmfunc_controls = data;
1470 int vmx_get_vmx_msr(struct nested_vmx_msrs *msrs, u32 msr_index, u64 *pdata)
1474 *pdata = msrs->basic;
1479 msrs->pinbased_ctls_low,
1480 msrs->pinbased_ctls_high);
1487 msrs->procbased_ctls_low,
1488 msrs->procbased_ctls_high);
1495 msrs->exit_ctls_low,
1496 msrs->exit_ctls_high);
1503 msrs->entry_ctls_low,
1504 msrs->entry_ctls_high);
1510 msrs->misc_low,
1511 msrs->misc_high);
1514 *pdata = msrs->cr0_fixed0;
1517 *pdata = msrs->cr0_fixed1;
1520 *pdata = msrs->cr4_fixed0;
1523 *pdata = msrs->cr4_fixed1;
1526 *pdata = msrs->vmcs_enum;
1530 msrs->secondary_ctls_low,
1531 msrs->secondary_ctls_high);
1534 *pdata = msrs->ept_caps |
1535 ((u64)msrs->vpid_caps << 32);
1538 *pdata = msrs->vmfunc_controls;
2670 if (CC(!(vmx->nested.msrs.ept_caps & VMX_EPTP_UC_BIT)))
2674 if (CC(!(vmx->nested.msrs.ept_caps & VMX_EPTP_WB_BIT)))
2684 if (CC(!(vmx->nested.msrs.ept_caps & VMX_EPT_PAGE_WALK_5_BIT)))
2688 if (CC(!(vmx->nested.msrs.ept_caps & VMX_EPT_PAGE_WALK_4_BIT)))
2701 if (CC(!(vmx->nested.msrs.ept_caps & VMX_EPT_AD_BIT)))
2717 vmx->nested.msrs.pinbased_ctls_low,
2718 vmx->nested.msrs.pinbased_ctls_high)) ||
2720 vmx->nested.msrs.procbased_ctls_low,
2721 vmx->nested.msrs.procbased_ctls_high)))
2726 vmx->nested.msrs.secondary_ctls_low,
2727 vmx->nested.msrs.secondary_ctls_high)))
2754 ~vmx->nested.msrs.vmfunc_controls))
2776 vmx->nested.msrs.exit_ctls_low,
2777 vmx->nested.msrs.exit_ctls_high)) ||
2793 vmx->nested.msrs.entry_ctls_low,
2794 vmx->nested.msrs.entry_ctls_high)))
4793 vmx->nested.msrs.entry_ctls_high |=
4795 vmx->nested.msrs.exit_ctls_high |=
4798 vmx->nested.msrs.entry_ctls_high &=
4800 vmx->nested.msrs.exit_ctls_high &=
5417 if (!(vmx->nested.msrs.secondary_ctls_high &
5419 !(vmx->nested.msrs.ept_caps & VMX_EPT_INVEPT_BIT)) {
5430 types = (vmx->nested.msrs.ept_caps >> VMX_EPT_EXTENT_SHIFT) & 6;
5497 if (!(vmx->nested.msrs.secondary_ctls_high &
5499 !(vmx->nested.msrs.vpid_caps & VMX_VPID_INVVPID_BIT)) {
5510 types = (vmx->nested.msrs.vpid_caps &
6419 * Each of these control msrs has a low and high 32-bit half: A low bit is on
6424 void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps)
6443 msrs->pinbased_ctls_low,
6444 msrs->pinbased_ctls_high);
6445 msrs->pinbased_ctls_low |=
6447 msrs->pinbased_ctls_high &=
6452 msrs->pinbased_ctls_high |=
6458 msrs->exit_ctls_low,
6459 msrs->exit_ctls_high);
6460 msrs->exit_ctls_low =
6463 msrs->exit_ctls_high &=
6469 msrs->exit_ctls_high |=
6475 msrs->exit_ctls_low &= ~VM_EXIT_SAVE_DEBUG_CONTROLS;
6479 msrs->entry_ctls_low,
6480 msrs->entry_ctls_high);
6481 msrs->entry_ctls_low =
6483 msrs->entry_ctls_high &=
6489 msrs->entry_ctls_high |=
6493 msrs->entry_ctls_low &= ~VM_ENTRY_LOAD_DEBUG_CONTROLS;
6497 msrs->procbased_ctls_low,
6498 msrs->procbased_ctls_high);
6499 msrs->procbased_ctls_low =
6501 msrs->procbased_ctls_high &=
6521 msrs->procbased_ctls_high |=
6526 msrs->procbased_ctls_low &=
6534 if (msrs->procbased_ctls_high & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS)
6536 msrs->secondary_ctls_low,
6537 msrs->secondary_ctls_high);
6539 msrs->secondary_ctls_low = 0;
6540 msrs->secondary_ctls_high &=
6556 msrs->secondary_ctls_high |=
6561 msrs->secondary_ctls_high |=
6563 msrs->ept_caps =
6570 msrs->ept_caps &= ept_caps;
6571 msrs->ept_caps |= VMX_EPT_EXTENT_GLOBAL_BIT |
6575 msrs->secondary_ctls_high |=
6577 msrs->ept_caps |= VMX_EPT_AD_BIT;
6582 msrs->secondary_ctls_high |=
6589 msrs->vmfunc_controls =
6600 msrs->secondary_ctls_high |=
6602 msrs->vpid_caps = VMX_VPID_INVVPID_BIT |
6607 msrs->secondary_ctls_high |=
6611 msrs->secondary_ctls_high |=
6616 msrs->misc_low,
6617 msrs->misc_high);
6618 msrs->misc_low &= VMX_MISC_SAVE_EFER_LMA;
6619 msrs->misc_low |=
6623 msrs->misc_high = 0;
6631 msrs->basic =
6638 msrs->basic |= VMX_BASIC_INOUT;
6647 msrs->cr0_fixed0 = VMXON_CR0_ALWAYSON;
6648 msrs->cr4_fixed0 = VMXON_CR4_ALWAYSON;
6651 rdmsrl(MSR_IA32_VMX_CR0_FIXED1, msrs->cr0_fixed1);
6652 rdmsrl(MSR_IA32_VMX_CR4_FIXED1, msrs->cr4_fixed1);
6655 msrs->vmcs_enum = VMCS12_MAX_FIELD_INDEX << 1;