@@ -249,14 +249,23 @@ struct read_cache {
249
249
unsigned long end ;
250
250
};
251
251
252
+ /* Execution mode, passed to the emulator. */
253
+ enum x86emul_mode {
254
+ X86EMUL_MODE_REAL , /* Real mode. */
255
+ X86EMUL_MODE_VM86 , /* Virtual 8086 mode. */
256
+ X86EMUL_MODE_PROT16 , /* 16-bit protected mode. */
257
+ X86EMUL_MODE_PROT32 , /* 32-bit protected mode. */
258
+ X86EMUL_MODE_PROT64 , /* 64-bit (long) mode. */
259
+ };
260
+
252
261
struct x86_emulate_ctxt {
253
262
const struct x86_emulate_ops * ops ;
254
263
255
264
/* Register state before/after emulation. */
256
265
unsigned long eflags ;
257
266
unsigned long eip ; /* eip before instruction emulation */
258
267
/* Emulated execution mode, represented by an X86EMUL_MODE value. */
259
- int mode ;
268
+ enum x86emul_mode mode ;
260
269
261
270
/* interruptibility state, as a result of execution of STI or MOV SS */
262
271
int interruptibility ;
@@ -308,17 +317,6 @@ struct x86_emulate_ctxt {
308
317
#define REPE_PREFIX 0xf3
309
318
#define REPNE_PREFIX 0xf2
310
319
311
- /* Execution mode, passed to the emulator. */
312
- #define X86EMUL_MODE_REAL 0 /* Real mode. */
313
- #define X86EMUL_MODE_VM86 1 /* Virtual 8086 mode. */
314
- #define X86EMUL_MODE_PROT16 2 /* 16-bit protected mode. */
315
- #define X86EMUL_MODE_PROT32 4 /* 32-bit protected mode. */
316
- #define X86EMUL_MODE_PROT64 8 /* 64-bit (long) mode. */
317
-
318
- /* any protected mode */
319
- #define X86EMUL_MODE_PROT (X86EMUL_MODE_PROT16|X86EMUL_MODE_PROT32| \
320
- X86EMUL_MODE_PROT64)
321
-
322
320
/* CPUID vendors */
323
321
#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx 0x68747541
324
322
#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx 0x444d4163
0 commit comments