Lines Matching full:field

13 void vmread_error(unsigned long field, bool fault);
14 __attribute__((regparm(0))) void vmread_error_trampoline(unsigned long field,
16 void vmwrite_error(unsigned long field, unsigned long value);
22 static __always_inline void vmcs_check16(unsigned long field) in vmcs_check16() argument
24 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2000, in vmcs_check16()
25 "16-bit accessor invalid for 64-bit field"); in vmcs_check16()
26 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2001, in vmcs_check16()
27 "16-bit accessor invalid for 64-bit high field"); in vmcs_check16()
28 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x4000, in vmcs_check16()
29 "16-bit accessor invalid for 32-bit high field"); in vmcs_check16()
30 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x6000, in vmcs_check16()
31 "16-bit accessor invalid for natural width field"); in vmcs_check16()
34 static __always_inline void vmcs_check32(unsigned long field) in vmcs_check32() argument
36 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0, in vmcs_check32()
37 "32-bit accessor invalid for 16-bit field"); in vmcs_check32()
38 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2000, in vmcs_check32()
39 "32-bit accessor invalid for 64-bit field"); in vmcs_check32()
40 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2001, in vmcs_check32()
41 "32-bit accessor invalid for 64-bit high field"); in vmcs_check32()
42 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x6000, in vmcs_check32()
43 "32-bit accessor invalid for natural width field"); in vmcs_check32()
46 static __always_inline void vmcs_check64(unsigned long field) in vmcs_check64() argument
48 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0, in vmcs_check64()
49 "64-bit accessor invalid for 16-bit field"); in vmcs_check64()
50 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2001, in vmcs_check64()
51 "64-bit accessor invalid for 64-bit high field"); in vmcs_check64()
52 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x4000, in vmcs_check64()
53 "64-bit accessor invalid for 32-bit field"); in vmcs_check64()
54 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x6000, in vmcs_check64()
55 "64-bit accessor invalid for natural width field"); in vmcs_check64()
58 static __always_inline void vmcs_checkl(unsigned long field) in vmcs_checkl() argument
60 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0, in vmcs_checkl()
61 "Natural width accessor invalid for 16-bit field"); in vmcs_checkl()
62 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2000, in vmcs_checkl()
63 "Natural width accessor invalid for 64-bit field"); in vmcs_checkl()
64 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2001, in vmcs_checkl()
65 "Natural width accessor invalid for 64-bit high field"); in vmcs_checkl()
66 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x4000, in vmcs_checkl()
67 "Natural width accessor invalid for 32-bit field"); in vmcs_checkl()
70 static __always_inline unsigned long __vmcs_readl(unsigned long field) in __vmcs_readl() argument
76 asm_volatile_goto("1: vmread %[field], %[output]\n\t" in __vmcs_readl()
82 : [field] "r" (field) in __vmcs_readl()
89 WARN_ONCE(1, "kvm: vmread failed: field=%lx\n", field); in __vmcs_readl()
90 pr_warn_ratelimited("kvm: vmread failed: field=%lx\n", field); in __vmcs_readl()
105 * @field, and bounce through the trampoline to preserve in __vmcs_readl()
125 : ASM_CALL_CONSTRAINT, "=&r"(value) : "r"(field) : "cc"); in __vmcs_readl()
131 static __always_inline u16 vmcs_read16(unsigned long field) in vmcs_read16() argument
133 vmcs_check16(field); in vmcs_read16()
135 return evmcs_read16(field); in vmcs_read16()
136 return __vmcs_readl(field); in vmcs_read16()
139 static __always_inline u32 vmcs_read32(unsigned long field) in vmcs_read32() argument
141 vmcs_check32(field); in vmcs_read32()
143 return evmcs_read32(field); in vmcs_read32()
144 return __vmcs_readl(field); in vmcs_read32()
147 static __always_inline u64 vmcs_read64(unsigned long field) in vmcs_read64() argument
149 vmcs_check64(field); in vmcs_read64()
151 return evmcs_read64(field); in vmcs_read64()
153 return __vmcs_readl(field); in vmcs_read64()
155 return __vmcs_readl(field) | ((u64)__vmcs_readl(field+1) << 32); in vmcs_read64()
159 static __always_inline unsigned long vmcs_readl(unsigned long field) in vmcs_readl() argument
161 vmcs_checkl(field); in vmcs_readl()
163 return evmcs_read64(field); in vmcs_readl()
164 return __vmcs_readl(field); in vmcs_readl()
201 static __always_inline void __vmcs_writel(unsigned long field, unsigned long value) in __vmcs_writel() argument
203 vmx_asm2(vmwrite, "r"(field), "rm"(value), field, value); in __vmcs_writel()
206 static __always_inline void vmcs_write16(unsigned long field, u16 value) in vmcs_write16() argument
208 vmcs_check16(field); in vmcs_write16()
210 return evmcs_write16(field, value); in vmcs_write16()
212 __vmcs_writel(field, value); in vmcs_write16()
215 static __always_inline void vmcs_write32(unsigned long field, u32 value) in vmcs_write32() argument
217 vmcs_check32(field); in vmcs_write32()
219 return evmcs_write32(field, value); in vmcs_write32()
221 __vmcs_writel(field, value); in vmcs_write32()
224 static __always_inline void vmcs_write64(unsigned long field, u64 value) in vmcs_write64() argument
226 vmcs_check64(field); in vmcs_write64()
228 return evmcs_write64(field, value); in vmcs_write64()
230 __vmcs_writel(field, value); in vmcs_write64()
232 __vmcs_writel(field+1, value >> 32); in vmcs_write64()
236 static __always_inline void vmcs_writel(unsigned long field, unsigned long value) in vmcs_writel() argument
238 vmcs_checkl(field); in vmcs_writel()
240 return evmcs_write64(field, value); in vmcs_writel()
242 __vmcs_writel(field, value); in vmcs_writel()
245 static __always_inline void vmcs_clear_bits(unsigned long field, u32 mask) in vmcs_clear_bits() argument
247 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x2000, in vmcs_clear_bits()
250 return evmcs_write32(field, evmcs_read32(field) & ~mask); in vmcs_clear_bits()
252 __vmcs_writel(field, __vmcs_readl(field) & ~mask); in vmcs_clear_bits()
255 static __always_inline void vmcs_set_bits(unsigned long field, u32 mask) in vmcs_set_bits() argument
257 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x2000, in vmcs_set_bits()
260 return evmcs_write32(field, evmcs_read32(field) | mask); in vmcs_set_bits()
262 __vmcs_writel(field, __vmcs_readl(field) | mask); in vmcs_set_bits()