Lines Matching refs:field

15 asmlinkage void vmread_error(unsigned long field, bool fault);
16 __attribute__((regparm(0))) void vmread_error_trampoline(unsigned long field,
18 void vmwrite_error(unsigned long field, unsigned long value);
24 static __always_inline void vmcs_check16(unsigned long field)
26 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2000,
27 "16-bit accessor invalid for 64-bit field");
28 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2001,
29 "16-bit accessor invalid for 64-bit high field");
30 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x4000,
31 "16-bit accessor invalid for 32-bit high field");
32 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x6000,
33 "16-bit accessor invalid for natural width field");
36 static __always_inline void vmcs_check32(unsigned long field)
38 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0,
39 "32-bit accessor invalid for 16-bit field");
40 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x6000,
41 "32-bit accessor invalid for natural width field");
44 static __always_inline void vmcs_check64(unsigned long field)
46 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0,
47 "64-bit accessor invalid for 16-bit field");
48 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2001,
49 "64-bit accessor invalid for 64-bit high field");
50 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x4000,
51 "64-bit accessor invalid for 32-bit field");
52 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x6000,
53 "64-bit accessor invalid for natural width field");
56 static __always_inline void vmcs_checkl(unsigned long field)
58 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0,
59 "Natural width accessor invalid for 16-bit field");
60 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2000,
61 "Natural width accessor invalid for 64-bit field");
62 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2001,
63 "Natural width accessor invalid for 64-bit high field");
64 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x4000,
65 "Natural width accessor invalid for 32-bit field");
68 static __always_inline unsigned long __vmcs_readl(unsigned long field)
78 * @field, and bounce through the trampoline to preserve
100 : ASM_CALL_CONSTRAINT, "=r"(value) : "r"(field) : "cc");
104 static __always_inline u16 vmcs_read16(unsigned long field)
106 vmcs_check16(field);
108 return evmcs_read16(field);
109 return __vmcs_readl(field);
112 static __always_inline u32 vmcs_read32(unsigned long field)
114 vmcs_check32(field);
116 return evmcs_read32(field);
117 return __vmcs_readl(field);
120 static __always_inline u64 vmcs_read64(unsigned long field)
122 vmcs_check64(field);
124 return evmcs_read64(field);
126 return __vmcs_readl(field);
128 return __vmcs_readl(field) | ((u64)__vmcs_readl(field+1) << 32);
132 static __always_inline unsigned long vmcs_readl(unsigned long field)
134 vmcs_checkl(field);
136 return evmcs_read64(field);
137 return __vmcs_readl(field);
174 static __always_inline void __vmcs_writel(unsigned long field, unsigned long value)
176 vmx_asm2(vmwrite, "r"(field), "rm"(value), field, value);
179 static __always_inline void vmcs_write16(unsigned long field, u16 value)
181 vmcs_check16(field);
183 return evmcs_write16(field, value);
185 __vmcs_writel(field, value);
188 static __always_inline void vmcs_write32(unsigned long field, u32 value)
190 vmcs_check32(field);
192 return evmcs_write32(field, value);
194 __vmcs_writel(field, value);
197 static __always_inline void vmcs_write64(unsigned long field, u64 value)
199 vmcs_check64(field);
201 return evmcs_write64(field, value);
203 __vmcs_writel(field, value);
205 __vmcs_writel(field+1, value >> 32);
209 static __always_inline void vmcs_writel(unsigned long field, unsigned long value)
211 vmcs_checkl(field);
213 return evmcs_write64(field, value);
215 __vmcs_writel(field, value);
218 static __always_inline void vmcs_clear_bits(unsigned long field, u32 mask)
220 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x2000,
223 return evmcs_write32(field, evmcs_read32(field) & ~mask);
225 __vmcs_writel(field, __vmcs_readl(field) & ~mask);
228 static __always_inline void vmcs_set_bits(unsigned long field, u32 mask)
230 BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x2000,
233 return evmcs_write32(field, evmcs_read32(field) | mask);
235 __vmcs_writel(field, __vmcs_readl(field) | mask);