Lines Matching refs:x86_feature
92 static __always_inline u32 __feature_bit(int x86_feature) in __feature_bit() argument
94 reverse_cpuid_check(x86_feature / 32); in __feature_bit()
95 return 1 << (x86_feature & 31); in __feature_bit()
100 static __always_inline struct cpuid_reg x86_feature_cpuid(unsigned int x86_feature) in x86_feature_cpuid() argument
102 unsigned int x86_leaf = x86_feature / 32; in x86_feature_cpuid()
127 unsigned int x86_feature) in cpuid_entry_get_reg() argument
129 const struct cpuid_reg cpuid = x86_feature_cpuid(x86_feature); in cpuid_entry_get_reg()
135 unsigned int x86_feature) in cpuid_entry_get() argument
137 u32 *reg = cpuid_entry_get_reg(entry, x86_feature); in cpuid_entry_get()
139 return *reg & __feature_bit(x86_feature); in cpuid_entry_get()
143 unsigned int x86_feature) in cpuid_entry_has() argument
145 return cpuid_entry_get(entry, x86_feature); in cpuid_entry_has()
149 unsigned int x86_feature) in cpuid_entry_clear() argument
151 u32 *reg = cpuid_entry_get_reg(entry, x86_feature); in cpuid_entry_clear()
153 *reg &= ~__feature_bit(x86_feature); in cpuid_entry_clear()
157 unsigned int x86_feature) in cpuid_entry_set() argument
159 u32 *reg = cpuid_entry_get_reg(entry, x86_feature); in cpuid_entry_set()
161 *reg |= __feature_bit(x86_feature); in cpuid_entry_set()
165 unsigned int x86_feature, in cpuid_entry_change() argument
168 u32 *reg = cpuid_entry_get_reg(entry, x86_feature); in cpuid_entry_change()
175 *reg |= __feature_bit(x86_feature); in cpuid_entry_change()
177 *reg &= ~__feature_bit(x86_feature); in cpuid_entry_change()
190 unsigned int x86_feature) in guest_cpuid_get_register() argument
192 const struct cpuid_reg cpuid = x86_feature_cpuid(x86_feature); in guest_cpuid_get_register()
203 unsigned int x86_feature) in guest_cpuid_has() argument
207 reg = guest_cpuid_get_register(vcpu, x86_feature); in guest_cpuid_has()
211 return *reg & __feature_bit(x86_feature); in guest_cpuid_has()
215 unsigned int x86_feature) in guest_cpuid_clear() argument
219 reg = guest_cpuid_get_register(vcpu, x86_feature); in guest_cpuid_clear()
221 *reg &= ~__feature_bit(x86_feature); in guest_cpuid_clear()
292 static __always_inline void kvm_cpu_cap_clear(unsigned int x86_feature) in kvm_cpu_cap_clear() argument
294 unsigned int x86_leaf = x86_feature / 32; in kvm_cpu_cap_clear()
297 kvm_cpu_caps[x86_leaf] &= ~__feature_bit(x86_feature); in kvm_cpu_cap_clear()
300 static __always_inline void kvm_cpu_cap_set(unsigned int x86_feature) in kvm_cpu_cap_set() argument
302 unsigned int x86_leaf = x86_feature / 32; in kvm_cpu_cap_set()
305 kvm_cpu_caps[x86_leaf] |= __feature_bit(x86_feature); in kvm_cpu_cap_set()
308 static __always_inline u32 kvm_cpu_cap_get(unsigned int x86_feature) in kvm_cpu_cap_get() argument
310 unsigned int x86_leaf = x86_feature / 32; in kvm_cpu_cap_get()
313 return kvm_cpu_caps[x86_leaf] & __feature_bit(x86_feature); in kvm_cpu_cap_get()
316 static __always_inline bool kvm_cpu_cap_has(unsigned int x86_feature) in kvm_cpu_cap_has() argument
318 return !!kvm_cpu_cap_get(x86_feature); in kvm_cpu_cap_has()
321 static __always_inline void kvm_cpu_cap_check_and_set(unsigned int x86_feature) in kvm_cpu_cap_check_and_set() argument
323 if (boot_cpu_has(x86_feature)) in kvm_cpu_cap_check_and_set()
324 kvm_cpu_cap_set(x86_feature); in kvm_cpu_cap_check_and_set()