- NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL...
[reactos.git] / reactos / ntoskrnl / include / internal / i386 / v86m.h
1 #ifndef __V86M_
2 #define __V86M_
3
4 #include "ketypes.h"
5
6 /* Emulate cli/sti instructions */
7 #define KV86M_EMULATE_CLI_STI (0x1)
8 /* Allow the v86 mode code to access i/o ports */
9 #define KV86M_ALLOW_IO_PORT_ACCESS (0x2)
10
11 typedef struct _KV86M_REGISTERS
12 {
13 /*
14 * General purpose registers
15 */
16 ULONG Ebp;
17 ULONG Edi;
18 ULONG Esi;
19 ULONG Edx;
20 ULONG Ecx;
21 ULONG Ebx;
22 ULONG Eax;
23 ULONG Ds;
24 ULONG Es;
25 ULONG Fs;
26 ULONG Gs;
27
28 /*
29 * Control registers
30 */
31 ULONG Eip;
32 ULONG Cs;
33 ULONG Eflags;
34 ULONG Esp;
35 ULONG Ss;
36
37 /*
38 * Control structures
39 */
40 ULONG RecoveryAddress;
41 UCHAR RecoveryInstruction[4];
42 ULONG Vif;
43 ULONG Flags;
44 PNTSTATUS PStatus;
45 } KV86M_REGISTERS, *PKV86M_REGISTERS;
46
47 typedef struct _KV86M_TRAP_FRAME
48 {
49 KTRAP_FRAME Tf;
50
51 ULONG SavedExceptionStack;
52
53 /*
54 * These are put on the top of the stack by the routine that entered
55 * v86 mode so the exception handlers can find the control information
56 */
57 struct _KV86M_REGISTERS* regs;
58 ULONG orig_ebp;
59 } KV86M_TRAP_FRAME, *PKV86M_TRAP_FRAME;
60
61 #endif
62
63 /* EOF */
64 #ifndef __V86M_
65 #define __V86M_
66
67 #include "ketypes.h"
68
69 /* Emulate cli/sti instructions */
70 #define KV86M_EMULATE_CLI_STI (0x1)
71 /* Allow the v86 mode code to access i/o ports */
72 #define KV86M_ALLOW_IO_PORT_ACCESS (0x2)
73
74 typedef struct _KV86M_REGISTERS
75 {
76 /*
77 * General purpose registers
78 */
79 ULONG Ebp;
80 ULONG Edi;
81 ULONG Esi;
82 ULONG Edx;
83 ULONG Ecx;
84 ULONG Ebx;
85 ULONG Eax;
86 ULONG Ds;
87 ULONG Es;
88 ULONG Fs;
89 ULONG Gs;
90
91 /*
92 * Control registers
93 */
94 ULONG Eip;
95 ULONG Cs;
96 ULONG Eflags;
97 ULONG Esp;
98 ULONG Ss;
99
100 /*
101 * Control structures
102 */
103 ULONG RecoveryAddress;
104 UCHAR RecoveryInstruction[4];
105 ULONG Vif;
106 ULONG Flags;
107 PNTSTATUS PStatus;
108 } KV86M_REGISTERS, *PKV86M_REGISTERS;
109
110 typedef struct _KV86M_TRAP_FRAME
111 {
112 KTRAP_FRAME Tf;
113
114 ULONG SavedExceptionStack;
115
116 /*
117 * These are put on the top of the stack by the routine that entered
118 * v86 mode so the exception handlers can find the control information
119 */
120 struct _KV86M_REGISTERS* regs;
121 ULONG orig_ebp;
122 } KV86M_TRAP_FRAME, *PKV86M_TRAP_FRAME;
123
124 #endif
125
126 /* EOF */