|
@@ -249,6 +249,15 @@ struct read_cache {
|
|
|
unsigned long end;
|
|
|
};
|
|
|
|
|
|
+/* Execution mode, passed to the emulator. */
|
|
|
+enum x86emul_mode {
|
|
|
+ X86EMUL_MODE_REAL, /* Real mode. */
|
|
|
+ X86EMUL_MODE_VM86, /* Virtual 8086 mode. */
|
|
|
+ X86EMUL_MODE_PROT16, /* 16-bit protected mode. */
|
|
|
+ X86EMUL_MODE_PROT32, /* 32-bit protected mode. */
|
|
|
+ X86EMUL_MODE_PROT64, /* 64-bit (long) mode. */
|
|
|
+};
|
|
|
+
|
|
|
struct x86_emulate_ctxt {
|
|
|
const struct x86_emulate_ops *ops;
|
|
|
|
|
@@ -256,7 +265,7 @@ struct x86_emulate_ctxt {
|
|
|
unsigned long eflags;
|
|
|
unsigned long eip; /* eip before instruction emulation */
|
|
|
/* Emulated execution mode, represented by an X86EMUL_MODE value. */
|
|
|
- int mode;
|
|
|
+ enum x86emul_mode mode;
|
|
|
|
|
|
/* interruptibility state, as a result of execution of STI or MOV SS */
|
|
|
int interruptibility;
|
|
@@ -308,17 +317,6 @@ struct x86_emulate_ctxt {
|
|
|
#define REPE_PREFIX 0xf3
|
|
|
#define REPNE_PREFIX 0xf2
|
|
|
|
|
|
-/* Execution mode, passed to the emulator. */
|
|
|
-#define X86EMUL_MODE_REAL 0 /* Real mode. */
|
|
|
-#define X86EMUL_MODE_VM86 1 /* Virtual 8086 mode. */
|
|
|
-#define X86EMUL_MODE_PROT16 2 /* 16-bit protected mode. */
|
|
|
-#define X86EMUL_MODE_PROT32 4 /* 32-bit protected mode. */
|
|
|
-#define X86EMUL_MODE_PROT64 8 /* 64-bit (long) mode. */
|
|
|
-
|
|
|
-/* any protected mode */
|
|
|
-#define X86EMUL_MODE_PROT (X86EMUL_MODE_PROT16|X86EMUL_MODE_PROT32| \
|
|
|
- X86EMUL_MODE_PROT64)
|
|
|
-
|
|
|
/* CPUID vendors */
|
|
|
#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx 0x68747541
|
|
|
#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx 0x444d4163
|