Lines Matching defs:function
75 * doesn't care about the CPIUD index because the index of the function in
83 struct kvm_cpuid_entry2 *entries, int nent, u32 function, u64 index)
103 if (e->function != function)
108 * matching function. It's userspace's responsibilty to not
117 * lookup (as opposed to emulating CPUID) for a function that's
125 WARN_ON_ONCE(cpuid_function_is_indexed(function));
181 if (e2[i].function != orig->function ||
282 if (best && boot_cpu_has(X86_FEATURE_PKU) && best->function == 0x7)
481 e2[i].function = e[i].function;
549 cpuid_count(cpuid.function, cpuid.index,
825 u32 function, u32 index)
833 entry->function = function;
835 switch (function & 0xC0000000) {
849 if (function > READ_ONCE(max_cpuid_80000000))
858 cpuid_count(entry->function, entry->index,
861 if (cpuid_function_is_indexed(function))
875 entry->function = func;
902 static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
912 entry = do_host_cpuid(array, function, 0);
916 switch (function) {
927 * On ancient CPUs, function 2 entries are STATEFUL. That is,
928 * CPUID(function=2, index=0) may return different results each
951 entry = do_host_cpuid(array, function, i);
962 /* function 7 has additional index. */
971 entry = do_host_cpuid(array, function, 1);
981 entry = do_host_cpuid(array, function, 2);
1037 entry = do_host_cpuid(array, function, 1);
1061 entry = do_host_cpuid(array, function, i);
1100 entry = do_host_cpuid(array, function, 1);
1122 if (!do_host_cpuid(array, function, i))
1134 if (!do_host_cpuid(array, function, i))
1437 u32 function, u32 index)
1440 function, index);
1445 u32 function)
1448 function, KVM_CPUID_INDEX_NOT_SIGNIFICANT);
1458 * A leaf is considered out-of-range if its function is higher than the maximum
1484 u32 function = *fn_ptr;
1494 if (function >= 0x40000000 && function <= 0x4fffffff)
1495 class = kvm_find_cpuid_entry(vcpu, function & 0xffffff00);
1496 else if (function >= 0xc0000000)
1499 class = kvm_find_cpuid_entry(vcpu, function & 0x80000000);
1501 if (class && function <= class->eax)
1513 * The class does not exist or the requested function is out of range;
1523 u32 orig_function = *eax, function = *eax, index = *ecx;
1527 entry = kvm_find_cpuid_entry_index(vcpu, function, index);
1531 entry = get_out_of_range_cpuid_entry(vcpu, &function, index);
1540 if (function == 7 && index == 0) {
1545 } else if (function == 0x80000007) {
1558 if (function == 0xb || function == 0x1f) {
1559 entry = kvm_find_cpuid_entry_index(vcpu, function, 1);