00001
00002 #define __USER_CS (0x23)
00003 #define __USER_DS (0x2B)
00004
00005 struct target_pt_regs {
00006 long ebx;
00007 long ecx;
00008 long edx;
00009 long esi;
00010 long edi;
00011 long ebp;
00012 long eax;
00013 int xds;
00014 int xes;
00015 long orig_eax;
00016 long eip;
00017 int xcs;
00018 long eflags;
00019 long esp;
00020 int xss;
00021 };
00022
00023
00024
00025 #define TARGET_LDT_ENTRIES 8192
00026 #define TARGET_LDT_ENTRY_SIZE 8
00027
00028 #define TARGET_GDT_ENTRIES 9
00029 #define TARGET_GDT_ENTRY_TLS_ENTRIES 3
00030 #define TARGET_GDT_ENTRY_TLS_MIN 6
00031 #define TARGET_GDT_ENTRY_TLS_MAX (TARGET_GDT_ENTRY_TLS_MIN + TARGET_GDT_ENTRY_TLS_ENTRIES - 1)
00032
00033 struct target_modify_ldt_ldt_s {
00034 unsigned int entry_number;
00035 abi_ulong base_addr;
00036 unsigned int limit;
00037 unsigned int flags;
00038 };
00039
00040
00041
00042 #define TARGET_BIOSSEG 0x0f000
00043
00044 #define TARGET_CPU_086 0
00045 #define TARGET_CPU_186 1
00046 #define TARGET_CPU_286 2
00047 #define TARGET_CPU_386 3
00048 #define TARGET_CPU_486 4
00049 #define TARGET_CPU_586 5
00050
00051 #define TARGET_VM86_SIGNAL 0
00052 #define TARGET_VM86_UNKNOWN 1
00053 #define TARGET_VM86_INTx 2
00054 #define TARGET_VM86_STI 3
00055
00056
00057
00058
00059 #define TARGET_VM86_PICRETURN 4
00060 #define TARGET_VM86_TRAP 6
00061
00062
00063
00064
00065 #define TARGET_VM86_PLUS_INSTALL_CHECK 0
00066 #define TARGET_VM86_ENTER 1
00067 #define TARGET_VM86_ENTER_NO_BYPASS 2
00068 #define TARGET_VM86_REQUEST_IRQ 3
00069 #define TARGET_VM86_FREE_IRQ 4
00070 #define TARGET_VM86_GET_IRQ_BITS 5
00071 #define TARGET_VM86_GET_AND_RESET_IRQ 6
00072
00073
00074
00075
00076
00077
00078
00079 struct target_vm86_regs {
00080
00081
00082
00083 abi_long ebx;
00084 abi_long ecx;
00085 abi_long edx;
00086 abi_long esi;
00087 abi_long edi;
00088 abi_long ebp;
00089 abi_long eax;
00090 abi_long __null_ds;
00091 abi_long __null_es;
00092 abi_long __null_fs;
00093 abi_long __null_gs;
00094 abi_long orig_eax;
00095 abi_long eip;
00096 unsigned short cs, __csh;
00097 abi_long eflags;
00098 abi_long esp;
00099 unsigned short ss, __ssh;
00100
00101
00102
00103 unsigned short es, __esh;
00104 unsigned short ds, __dsh;
00105 unsigned short fs, __fsh;
00106 unsigned short gs, __gsh;
00107 };
00108
00109 struct target_revectored_struct {
00110 abi_ulong __map[8];
00111 };
00112
00113 struct target_vm86_struct {
00114 struct target_vm86_regs regs;
00115 abi_ulong flags;
00116 abi_ulong screen_bitmap;
00117 abi_ulong cpu_type;
00118 struct target_revectored_struct int_revectored;
00119 struct target_revectored_struct int21_revectored;
00120 };
00121
00122
00123
00124
00125 #define TARGET_VM86_SCREEN_BITMAP 0x0001
00126
00127 struct target_vm86plus_info_struct {
00128 abi_ulong flags;
00129 #define TARGET_force_return_for_pic (1 << 0)
00130 #define TARGET_vm86dbg_active (1 << 1)
00131 #define TARGET_vm86dbg_TFpendig (1 << 2)
00132 #define TARGET_is_vm86pus (1 << 31)
00133 unsigned char vm86dbg_intxxtab[32];
00134 };
00135
00136 struct target_vm86plus_struct {
00137 struct target_vm86_regs regs;
00138 abi_ulong flags;
00139 abi_ulong screen_bitmap;
00140 abi_ulong cpu_type;
00141 struct target_revectored_struct int_revectored;
00142 struct target_revectored_struct int21_revectored;
00143 struct target_vm86plus_info_struct vm86plus;
00144 };
00145
00146 #define UNAME_MACHINE "i686"