[GENINCDATA] add dependency to bugcodes, factor out definitions in template files.
[reactos.git] / include / asm / ks386.template.h
1
2 HEADER("CR0 flags"),
3 CONSTANT(CR0_PE),
4 CONSTANT(CR0_MP),
5 CONSTANT(CR0_EM),
6 CONSTANT(CR0_TS),
7 CONSTANT(CR0_ET),
8 CONSTANT(CR0_NE),
9 CONSTANT(CR0_WP),
10 CONSTANT(CR0_AM),
11 CONSTANT(CR0_NW),
12 CONSTANT(CR0_CD),
13 CONSTANT(CR0_PG),
14
15 HEADER("CR4 flags"),
16 CONSTANT(CR4_VME),
17 CONSTANT(CR4_PVI),
18 CONSTANT(CR4_TSD),
19 CONSTANT(CR4_DE),
20 CONSTANT(CR4_PSE),
21 CONSTANT(CR4_PAE),
22 CONSTANT(CR4_MCE),
23 CONSTANT(CR4_PGE),
24 CONSTANT(CR4_FXSR),
25 CONSTANT(CR4_XMMEXCPT),
26 //CONSTANT(CR4_PGE_V),
27 //CONSTANT(CR4_XSAVE),
28
29 HEADER("KeFeatureBits flags"),
30 CONSTANT(KF_RDTSC),
31 CONSTANT(KF_CR4),
32 CONSTANT(KF_GLOBAL_PAGE),
33 CONSTANT(KF_LARGE_PAGE),
34 CONSTANT(KF_CMPXCHG8B),
35 CONSTANT(KF_FAST_SYSCALL),
36 CONSTANT(KF_V86_VIS),
37 //CONSTANT(KF_XSTATE),
38
39 HEADER("Machine type definitions"),
40 CONSTANT(MACHINE_TYPE_ISA),
41 CONSTANT(MACHINE_TYPE_EISA),
42 CONSTANT(MACHINE_TYPE_MCA),
43
44 HEADER("EFLAGS"),
45 CONSTANT(EFLAGS_TF),
46 CONSTANT(EFLAGS_INTERRUPT_MASK),
47 CONSTANT(EFLAGS_V86_MASK),
48 CONSTANT(EFLAGS_ALIGN_CHECK),
49 CONSTANT(EFLAGS_VIF),
50 CONSTANT(EFLAGS_VIP),
51 CONSTANT(EFLAGS_USER_SANITIZE),
52
53 HEADER("KDGT selectors"),
54 CONSTANT(KGDT_R3_DATA),
55 CONSTANT(KGDT_R3_CODE),
56 CONSTANT(KGDT_R0_CODE),
57 CONSTANT(KGDT_R0_DATA),
58 CONSTANT(KGDT_R0_PCR),
59 //CONSTANT(KGDT_STACK16),
60 //CONSTANT(KGDT_CODE16),
61 CONSTANT(KGDT_TSS),
62 CONSTANT(KGDT_R3_TEB),
63 CONSTANT(KGDT_DF_TSS),
64 CONSTANT(KGDT_NMI_TSS),
65 CONSTANT(KGDT_LDT),
66
67 CONSTANT(NPX_STATE_NOT_LOADED),
68 CONSTANT(NPX_STATE_LOADED),
69 //CONSTANT(NPX_MASK_LAZY),
70
71 /*
72 HEADER("VDM constants"),
73 CONSTANT(VDM_INDEX_Invalid),
74 CONSTANT(VDM_INDEX_0F),
75 CONSTANT(VDM_INDEX_ESPrefix),
76 CONSTANT(VDM_INDEX_CSPrefix),
77 CONSTANT(VDM_INDEX_SSPrefix),
78 CONSTANT(VDM_INDEX_DSPrefix),
79 CONSTANT(VDM_INDEX_FSPrefix),
80 CONSTANT(VDM_INDEX_GSPrefix),
81 CONSTANT(VDM_INDEX_OPER32Prefix),
82 CONSTANT(VDM_INDEX_ADDR32Prefix),
83 CONSTANT(VDM_INDEX_INSB),
84 CONSTANT(VDM_INDEX_INSW),
85 CONSTANT(VDM_INDEX_OUTSB),
86 CONSTANT(VDM_INDEX_OUTSW),
87 CONSTANT(VDM_INDEX_PUSHF),
88 CONSTANT(VDM_INDEX_POPF),
89 CONSTANT(VDM_INDEX_INTnn),
90 CONSTANT(VDM_INDEX_INTO),
91 CONSTANT(VDM_INDEX_IRET),
92 CONSTANT(VDM_INDEX_NPX),
93 CONSTANT(VDM_INDEX_INBimm),
94 CONSTANT(VDM_INDEX_INWimm),
95 CONSTANT(VDM_INDEX_OUTBimm),
96 CONSTANT(VDM_INDEX_OUTWimm),
97 CONSTANT(VDM_INDEX_INB),
98 CONSTANT(VDM_INDEX_INW),
99 CONSTANT(VDM_INDEX_OUTB),
100 CONSTANT(VDM_INDEX_OUTW),
101 CONSTANT(VDM_INDEX_LOCKPrefix),
102 CONSTANT(VDM_INDEX_REPNEPrefix),
103 CONSTANT(VDM_INDEX_REPPrefix),
104 CONSTANT(VDM_INDEX_CLI),
105 CONSTANT(VDM_INDEX_STI),
106 CONSTANT(VDM_INDEX_HLT),
107 CONSTANT(MAX_VDM_INDEX),
108 */
109 CONSTANT(PF_XMMI_INSTRUCTIONS_AVAILABLE),
110 CONSTANT(EFLAG_SELECT),
111 //CONSTANT(IPI_FREEZE),
112 //CONSTANT(XSAVE_PRESENT),
113
114 HEADER("CONTEXT"),
115 OFFSET(CsContextFlags, CONTEXT, ContextFlags),
116 OFFSET(CsDr0, CONTEXT, Dr0),
117 OFFSET(CsDr1, CONTEXT, Dr1),
118 OFFSET(CsDr2, CONTEXT, Dr2),
119 OFFSET(CsDr3, CONTEXT, Dr3),
120 OFFSET(CsDr6, CONTEXT, Dr6),
121 OFFSET(CsDr7, CONTEXT, Dr7),
122 OFFSET(CsFloatSave, CONTEXT, FloatSave),
123 OFFSET(CsSegGs, CONTEXT, SegGs),
124 OFFSET(CsSegFs, CONTEXT, SegFs),
125 OFFSET(CsSegEs, CONTEXT, SegEs),
126 OFFSET(CsSegDs, CONTEXT, SegDs),
127 OFFSET(CsEdi, CONTEXT, Edi),
128 OFFSET(CsEsi, CONTEXT, Esi),
129 OFFSET(CsEbx, CONTEXT, Ebx),
130 OFFSET(CsEdx, CONTEXT, Edx),
131 OFFSET(CsEcx, CONTEXT, Ecx),
132 OFFSET(CsEax, CONTEXT, Eax),
133 OFFSET(CsEbp, CONTEXT, Ebp),
134 OFFSET(CsEip, CONTEXT, Eip),
135 OFFSET(CsSegCs, CONTEXT, SegCs),
136 OFFSET(CsEflags, CONTEXT, EFlags),
137 OFFSET(CsEsp, CONTEXT, Esp),
138 OFFSET(CsSegSs, CONTEXT, SegSs),
139 OFFSET(CsExtendedRegisters, CONTEXT, ExtendedRegisters),
140 SIZE(ContextFrameLength, CONTEXT),
141 SIZE(CONTEXT_LENGTH, CONTEXT),
142
143 HEADER("KGDTENTRY"),
144 OFFSET(KgdtBaseLow, KGDTENTRY, BaseLow),
145 OFFSET(KgdtBaseMid, KGDTENTRY, HighWord.Bytes.BaseMid),
146 OFFSET(KgdtBaseHi, KGDTENTRY, HighWord.Bytes.BaseHi),
147 OFFSET(KgdtLimitHi, KGDTENTRY, HighWord.Bytes.Flags2),
148 OFFSET(KgdtLimitLow, KGDTENTRY, LimitLow),
149
150 HEADER("KTRAP_FRAME"),
151 OFFSET(TsExceptionList, KTRAP_FRAME, ExceptionList),
152 OFFSET(TsPreviousPreviousMode, KTRAP_FRAME, PreviousPreviousMode),
153 OFFSET(TsSegGs, KTRAP_FRAME, SegGs),
154 OFFSET(TsSegFs, KTRAP_FRAME, SegFs),
155 OFFSET(TsSegEs, KTRAP_FRAME, SegEs),
156 OFFSET(TsSegDs, KTRAP_FRAME, SegDs),
157 OFFSET(TsEdi, KTRAP_FRAME, Edi),
158 OFFSET(TsEsi, KTRAP_FRAME, Esi),
159 OFFSET(TsEbp, KTRAP_FRAME, Ebp),
160 OFFSET(TsEbx, KTRAP_FRAME, Ebx),
161 OFFSET(TsEdx, KTRAP_FRAME, Edx),
162 OFFSET(TsEcx, KTRAP_FRAME, Ecx),
163 OFFSET(TsEax, KTRAP_FRAME, Eax),
164 OFFSET(TsErrCode, KTRAP_FRAME, ErrCode),
165 OFFSET(TsEip, KTRAP_FRAME, Eip),
166 OFFSET(TsSegCs, KTRAP_FRAME, SegCs),
167 OFFSET(TsEflags, KTRAP_FRAME, EFlags),
168 OFFSET(TsHardwareEsp, KTRAP_FRAME, HardwareEsp),
169 OFFSET(TsHardwareSegSs, KTRAP_FRAME, HardwareSegSs),
170 OFFSET(TsTempSegCs, KTRAP_FRAME, TempSegCs),
171 //OFFSET(TsLogging, KTRAP_FRAME, Logging),
172 OFFSET(TsTempEsp, KTRAP_FRAME, TempEsp),
173 OFFSET(TsDbgEbp, KTRAP_FRAME, DbgEbp),
174 OFFSET(TsDbgEip, KTRAP_FRAME, DbgEip),
175 OFFSET(TsDbgArgMark, KTRAP_FRAME, DbgArgMark),
176 OFFSET(TsDbgArgPointer, KTRAP_FRAME, DbgArgPointer),
177 OFFSET(TsDr0, KTRAP_FRAME, Dr0),
178 OFFSET(TsDr1, KTRAP_FRAME, Dr1),
179 OFFSET(TsDr2, KTRAP_FRAME, Dr2),
180 OFFSET(TsDr3, KTRAP_FRAME, Dr3),
181 OFFSET(TsDr6, KTRAP_FRAME, Dr6),
182 OFFSET(TsDr7, KTRAP_FRAME, Dr7),
183 OFFSET(TsV86Es, KTRAP_FRAME, V86Es),
184 OFFSET(TsV86Ds, KTRAP_FRAME, V86Ds),
185 OFFSET(TsV86Fs, KTRAP_FRAME, V86Fs),
186 OFFSET(TsV86Gs, KTRAP_FRAME, V86Gs),
187 SIZE(KTRAP_FRAME_LENGTH, KTRAP_FRAME),
188 CONSTANT(KTRAP_FRAME_ALIGN),
189 CONSTANT(FRAME_EDITED),
190
191 HEADER("KTSS"),
192 OFFSET(TssEsp0, KTSS, Esp0),
193 OFFSET(TssCR3, KTSS, CR3),
194 OFFSET(TssEip, KTSS, Eip),
195 OFFSET(TssEFlags, KTSS, EFlags),
196 OFFSET(TssEax, KTSS, Eax),
197 OFFSET(TssEbx, KTSS, Ebx),
198 OFFSET(TssEcx, KTSS, Ecx),
199 OFFSET(TssEdx, KTSS, Edx),
200 OFFSET(TssEsp, KTSS, Esp),
201 OFFSET(TssEbp, KTSS, Ebp),
202 OFFSET(TssEsi, KTSS, Esi),
203 OFFSET(TssEdi, KTSS, Edi),
204 OFFSET(TssEs, KTSS, Es),
205 OFFSET(TssCs, KTSS, Cs),
206 OFFSET(TssSs, KTSS, Ss),
207 OFFSET(TssDs, KTSS, Ds),
208 OFFSET(TssFs, KTSS, Fs),
209 OFFSET(TssGs, KTSS, Gs),
210 OFFSET(TssLDT, KTSS, LDT),
211 OFFSET(TssIoMapBase, KTSS, IoMapBase),
212 OFFSET(TssIoMaps, KTSS, IoMaps),
213 SIZE(TssLength, KTSS),