Lines Matching refs:entry
195 struct kvm_cpuid_entry2 *e, *entry; in cpuid_fix_nx_cap() local
197 entry = NULL; in cpuid_fix_nx_cap()
201 entry = e; in cpuid_fix_nx_cap()
205 if (entry && cpuid_entry_has(entry, X86_FEATURE_NX) && !is_efer_nx()) { in cpuid_fix_nx_cap()
206 cpuid_entry_clear(entry, X86_FEATURE_NX); in cpuid_fix_nx_cap()
336 struct kvm_cpuid_entry2 entry; in kvm_cpu_cap_mask() local
342 &entry.eax, &entry.ebx, &entry.ecx, &entry.edx); in kvm_cpu_cap_mask()
344 kvm_cpu_caps[leaf] &= *__cpuid_entry_get_reg(&entry, cpuid.reg); in kvm_cpu_cap_mask()
517 struct kvm_cpuid_entry2 *entry; in do_host_cpuid() local
522 entry = &array->entries[array->nent++]; in do_host_cpuid()
524 entry->function = function; in do_host_cpuid()
525 entry->index = index; in do_host_cpuid()
526 entry->flags = 0; in do_host_cpuid()
528 cpuid_count(entry->function, entry->index, in do_host_cpuid()
529 &entry->eax, &entry->ebx, &entry->ecx, &entry->edx); in do_host_cpuid()
544 entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; in do_host_cpuid()
548 return entry; in do_host_cpuid()
553 struct kvm_cpuid_entry2 *entry; in __do_cpuid_func_emulated() local
558 entry = &array->entries[array->nent]; in __do_cpuid_func_emulated()
559 entry->function = func; in __do_cpuid_func_emulated()
560 entry->index = 0; in __do_cpuid_func_emulated()
561 entry->flags = 0; in __do_cpuid_func_emulated()
565 entry->eax = 7; in __do_cpuid_func_emulated()
569 entry->ecx = F(MOVBE); in __do_cpuid_func_emulated()
573 entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; in __do_cpuid_func_emulated()
574 entry->eax = 0; in __do_cpuid_func_emulated()
576 entry->ecx = F(RDPID); in __do_cpuid_func_emulated()
587 struct kvm_cpuid_entry2 *entry; in __do_cpuid_func() local
595 entry = do_host_cpuid(array, function, 0); in __do_cpuid_func()
596 if (!entry) in __do_cpuid_func()
602 entry->eax = min(entry->eax, 0x1fU); in __do_cpuid_func()
605 cpuid_entry_override(entry, CPUID_1_EDX); in __do_cpuid_func()
606 cpuid_entry_override(entry, CPUID_1_ECX); in __do_cpuid_func()
624 WARN_ON_ONCE((entry->eax & 0xff) > 1); in __do_cpuid_func()
633 for (i = 1; entry->eax & 0x1f; ++i) { in __do_cpuid_func()
634 entry = do_host_cpuid(array, function, i); in __do_cpuid_func()
635 if (!entry) in __do_cpuid_func()
640 entry->eax = 0x4; /* allow ARAT */ in __do_cpuid_func()
641 entry->ebx = 0; in __do_cpuid_func()
642 entry->ecx = 0; in __do_cpuid_func()
643 entry->edx = 0; in __do_cpuid_func()
647 entry->eax = min(entry->eax, 1u); in __do_cpuid_func()
648 cpuid_entry_override(entry, CPUID_7_0_EBX); in __do_cpuid_func()
649 cpuid_entry_override(entry, CPUID_7_ECX); in __do_cpuid_func()
650 cpuid_entry_override(entry, CPUID_7_EDX); in __do_cpuid_func()
653 if (entry->eax == 1) { in __do_cpuid_func()
654 entry = do_host_cpuid(array, function, 1); in __do_cpuid_func()
655 if (!entry) in __do_cpuid_func()
658 cpuid_entry_override(entry, CPUID_7_1_EAX); in __do_cpuid_func()
659 entry->ebx = 0; in __do_cpuid_func()
660 entry->ecx = 0; in __do_cpuid_func()
661 entry->edx = 0; in __do_cpuid_func()
670 entry->eax = entry->ebx = entry->ecx = entry->edx = 0; in __do_cpuid_func()
695 entry->eax = eax.full; in __do_cpuid_func()
696 entry->ebx = cap.events_mask; in __do_cpuid_func()
697 entry->ecx = 0; in __do_cpuid_func()
698 entry->edx = edx.full; in __do_cpuid_func()
712 for (i = 1; entry->ecx & 0xff00; ++i) { in __do_cpuid_func()
713 entry = do_host_cpuid(array, function, i); in __do_cpuid_func()
714 if (!entry) in __do_cpuid_func()
719 entry->eax &= supported_xcr0; in __do_cpuid_func()
720 entry->ebx = xstate_required_size(supported_xcr0, false); in __do_cpuid_func()
721 entry->ecx = entry->ebx; in __do_cpuid_func()
722 entry->edx &= supported_xcr0 >> 32; in __do_cpuid_func()
726 entry = do_host_cpuid(array, function, 1); in __do_cpuid_func()
727 if (!entry) in __do_cpuid_func()
730 cpuid_entry_override(entry, CPUID_D_1_EAX); in __do_cpuid_func()
731 if (entry->eax & (F(XSAVES)|F(XSAVEC))) in __do_cpuid_func()
732 entry->ebx = xstate_required_size(supported_xcr0 | supported_xss, in __do_cpuid_func()
736 entry->ebx = 0; in __do_cpuid_func()
738 entry->ecx &= supported_xss; in __do_cpuid_func()
739 entry->edx &= supported_xss >> 32; in __do_cpuid_func()
750 entry = do_host_cpuid(array, function, i); in __do_cpuid_func()
751 if (!entry) in __do_cpuid_func()
762 if (WARN_ON_ONCE(!entry->eax || (entry->ecx & 0x1) != s_state)) { in __do_cpuid_func()
766 entry->edx = 0; in __do_cpuid_func()
772 entry->eax = entry->ebx = entry->ecx = entry->edx = 0; in __do_cpuid_func()
776 for (i = 1, max_idx = entry->eax; i <= max_idx; ++i) { in __do_cpuid_func()
784 entry->eax = KVM_CPUID_FEATURES; in __do_cpuid_func()
785 entry->ebx = sigptr[0]; in __do_cpuid_func()
786 entry->ecx = sigptr[1]; in __do_cpuid_func()
787 entry->edx = sigptr[2]; in __do_cpuid_func()
791 entry->eax = (1 << KVM_FEATURE_CLOCKSOURCE) | in __do_cpuid_func()
806 entry->eax |= (1 << KVM_FEATURE_STEAL_TIME); in __do_cpuid_func()
808 entry->ebx = 0; in __do_cpuid_func()
809 entry->ecx = 0; in __do_cpuid_func()
810 entry->edx = 0; in __do_cpuid_func()
813 entry->eax = min(entry->eax, 0x8000001f); in __do_cpuid_func()
816 entry->ebx &= ~GENMASK(27, 16); in __do_cpuid_func()
817 cpuid_entry_override(entry, CPUID_8000_0001_EDX); in __do_cpuid_func()
818 cpuid_entry_override(entry, CPUID_8000_0001_ECX); in __do_cpuid_func()
822 entry->edx &= ~GENMASK(17, 16); in __do_cpuid_func()
826 entry->edx &= (1 << 8); in __do_cpuid_func()
828 entry->edx &= boot_cpu_data.x86_power; in __do_cpuid_func()
829 entry->eax = entry->ebx = entry->ecx = 0; in __do_cpuid_func()
832 unsigned g_phys_as = (entry->eax >> 16) & 0xff; in __do_cpuid_func()
833 unsigned virt_as = max((entry->eax >> 8) & 0xff, 48U); in __do_cpuid_func()
834 unsigned phys_as = entry->eax & 0xff; in __do_cpuid_func()
844 entry->eax = g_phys_as | (virt_as << 8); in __do_cpuid_func()
845 entry->ecx &= ~(GENMASK(31, 16) | GENMASK(11, 8)); in __do_cpuid_func()
846 entry->edx = 0; in __do_cpuid_func()
847 cpuid_entry_override(entry, CPUID_8000_0008_EBX); in __do_cpuid_func()
852 entry->eax = entry->ebx = entry->ecx = entry->edx = 0; in __do_cpuid_func()
855 entry->eax = 1; /* SVM revision 1 */ in __do_cpuid_func()
856 entry->ebx = 8; /* Lets support 8 ASIDs in case we add proper in __do_cpuid_func()
858 entry->ecx = 0; /* Reserved */ in __do_cpuid_func()
859 cpuid_entry_override(entry, CPUID_8000_000A_EDX); in __do_cpuid_func()
862 entry->ecx = entry->edx = 0; in __do_cpuid_func()
865 entry->eax &= GENMASK(2, 0); in __do_cpuid_func()
866 entry->ebx = entry->ecx = entry->edx = 0; in __do_cpuid_func()
873 entry->eax = entry->ebx = entry->ecx = entry->edx = 0; in __do_cpuid_func()
878 entry->eax = min(entry->eax, 0xC0000004); in __do_cpuid_func()
881 cpuid_entry_override(entry, CPUID_C000_0001_EDX); in __do_cpuid_func()
889 entry->eax = entry->ebx = entry->ecx = entry->edx = 0; in __do_cpuid_func()
1087 struct kvm_cpuid_entry2 *entry; in kvm_cpuid() local
1090 entry = kvm_find_cpuid_entry(vcpu, function, index); in kvm_cpuid()
1091 exact = !!entry; in kvm_cpuid()
1093 if (!entry && !exact_only) { in kvm_cpuid()
1094 entry = get_out_of_range_cpuid_entry(vcpu, &function, index); in kvm_cpuid()
1095 used_max_basic = !!entry; in kvm_cpuid()
1098 if (entry) { in kvm_cpuid()
1099 *eax = entry->eax; in kvm_cpuid()
1100 *ebx = entry->ebx; in kvm_cpuid()
1101 *ecx = entry->ecx; in kvm_cpuid()
1102 *edx = entry->edx; in kvm_cpuid()
1119 entry = kvm_find_cpuid_entry(vcpu, function, 1); in kvm_cpuid()
1120 if (entry) { in kvm_cpuid()
1122 *edx = entry->edx; in kvm_cpuid()