Changeset 72592 in vbox for trunk/include/VBox
- Timestamp:
- Jun 18, 2018 12:24:43 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/iem.h
r72590 r72592 179 179 /** The CPUMCTX_EXTRN_XXX mask required to be cleared when interpreting anything. 180 180 * IEM will ASSUME the caller of IEM APIs has ensured these are already present. */ 181 #define IEM_CPUMCTX_EXTRN_MUST_MASK ( CPUMCTX_EXTRN_GPRS_MASK \182 | CPUMCTX_EXTRN_RIP \183 | CPUMCTX_EXTRN_RFLAGS \184 | CPUMCTX_EXTRN_SS \185 | CPUMCTX_EXTRN_CS \186 | CPUMCTX_EXTRN_CR0 \187 | CPUMCTX_EXTRN_CR3 \188 | CPUMCTX_EXTRN_CR4 \189 | CPUMCTX_EXTRN_APIC_TPR \190 | CPUMCTX_EXTRN_EFER \191 | CPUMCTX_EXTRN_DR7 )181 #define IEM_CPUMCTX_EXTRN_MUST_MASK ( CPUMCTX_EXTRN_GPRS_MASK \ 182 | CPUMCTX_EXTRN_RIP \ 183 | CPUMCTX_EXTRN_RFLAGS \ 184 | CPUMCTX_EXTRN_SS \ 185 | CPUMCTX_EXTRN_CS \ 186 | CPUMCTX_EXTRN_CR0 \ 187 | CPUMCTX_EXTRN_CR3 \ 188 | CPUMCTX_EXTRN_CR4 \ 189 | CPUMCTX_EXTRN_APIC_TPR \ 190 | CPUMCTX_EXTRN_EFER \ 191 | CPUMCTX_EXTRN_DR7 ) 192 192 /** The CPUMCTX_EXTRN_XXX mask needed when injecting an exception/interrupt. 193 193 * IEM will import missing bits, callers are encouraged to make these registers 194 194 * available prior to injection calls if fetching state anyway. */ 195 #define IEM_CPUMCTX_EXTRN_XCPT_MASK ( IEM_CPUMCTX_EXTRN_MUST_MASK \ 196 | CPUMCTX_EXTRN_CR2 \ 197 | CPUMCTX_EXTRN_SREG_MASK \ 198 | CPUMCTX_EXTRN_TABLE_MASK ) 195 #define IEM_CPUMCTX_EXTRN_XCPT_MASK ( IEM_CPUMCTX_EXTRN_MUST_MASK \ 196 | CPUMCTX_EXTRN_CR2 \ 197 | CPUMCTX_EXTRN_SREG_MASK \ 198 | CPUMCTX_EXTRN_TABLE_MASK ) 199 /** The CPUMCTX_EXTRN_XXX mask required to be cleared when calling any 200 * IEMExecDecoded API not using memory. IEM will ASSUME the caller of IEM 201 * APIs has ensured these are already present. 202 * @note ASSUMES execution engine has checked for instruction breakpoints 203 * during decoding. */ 204 #define IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK ( CPUMCTX_EXTRN_RIP \ 205 | CPUMCTX_EXTRN_RFLAGS \ 206 | CPUMCTX_EXTRN_SS /* for CPL */ \ 207 | CPUMCTX_EXTRN_CS /* for mode */ \ 208 | CPUMCTX_EXTRN_CR0 /* for mode */ \ 209 | CPUMCTX_EXTRN_EFER /* for mode */ ) 210 /** The CPUMCTX_EXTRN_XXX mask required to be cleared when calling any 211 * IEMExecDecoded API using memory. IEM will ASSUME the caller of IEM 212 * APIs has ensured these are already present. 213 * @note ASSUMES execution engine has checked for instruction breakpoints 214 * during decoding. */ 215 #define IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK ( IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK \ 216 | CPUMCTX_EXTRN_CR3 /* for page tables */ \ 217 | CPUMCTX_EXTRN_CR4 /* for mode paging mode */ \ 218 | CPUMCTX_EXTRN_DR7 /* for memory breakpoints */ ) 199 219 200 220
Note:
See TracChangeset
for help on using the changeset viewer.