aboutsummaryrefslogtreecommitdiff
path: root/cpu-i386.h
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-05-08 15:35:34 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-05-08 15:35:34 +0000
commit9ba5695ce5c995437efce0462dd9b8631daba0c0 (patch)
tree475019b3b255ce669e5b153944ce2008e52ad852 /cpu-i386.h
parent66099dd9af853e0504c975f7ac6416cc82b95903 (diff)
added CPL and IOPL as translation time constants - changed I/O function prototype to include emulator state - added error_code and cr2 support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@125 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'cpu-i386.h')
-rw-r--r--cpu-i386.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/cpu-i386.h b/cpu-i386.h
index 4b8aef12ad..1ec7193778 100644
--- a/cpu-i386.h
+++ b/cpu-i386.h
@@ -197,6 +197,8 @@ typedef struct CPUX86State {
/* exception/interrupt handling */
jmp_buf jmp_env;
int exception_index;
+ int error_code;
+ uint32_t cr2;
int interrupt_request;
/* user data */
@@ -401,12 +403,12 @@ static inline void stfq(void *ptr, double v)
#endif
#ifndef IN_OP_I386
-void cpu_x86_outb(int addr, int val);
-void cpu_x86_outw(int addr, int val);
-void cpu_x86_outl(int addr, int val);
-int cpu_x86_inb(int addr);
-int cpu_x86_inw(int addr);
-int cpu_x86_inl(int addr);
+void cpu_x86_outb(CPUX86State *env, int addr, int val);
+void cpu_x86_outw(CPUX86State *env, int addr, int val);
+void cpu_x86_outl(CPUX86State *env, int addr, int val);
+int cpu_x86_inb(CPUX86State *env, int addr);
+int cpu_x86_inw(CPUX86State *env, int addr);
+int cpu_x86_inl(CPUX86State *env, int addr);
#endif
CPUX86State *cpu_x86_init(void);
@@ -431,6 +433,8 @@ int cpu_x86_signal_handler(int host_signum, struct siginfo *info,
#define GEN_FLAG_SS32_SHIFT 2
#define GEN_FLAG_VM_SHIFT 3
#define GEN_FLAG_ST_SHIFT 4
+#define GEN_FLAG_CPL_SHIFT 7
+#define GEN_FLAG_IOPL_SHIFT 9
int cpu_x86_gen_code(uint8_t *gen_code_buf, int max_code_size,
int *gen_code_size_ptr,