[XDK/DDK]
[reactos.git] / reactos / include / ddk / vddsvc.h
1 /*
2 * vddsvc.h
3 *
4 * Windows NT Device Driver Kit
5 *
6 * This file is part of the ReactOS DDK package.
7 *
8 * Contributors:
9 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23 #pragma once
24
25 #ifndef _NT_VDD
26 #include <nt_vdd.h>
27 #endif
28
29 /*
30 * Interrupts services
31 */
32 #define ICA_MASTER 0
33 #define ICA_SLAVE 1
34
35 VOID
36 WINAPI
37 call_ica_hw_interrupt
38 (
39 INT ms,
40 BYTE line,
41 INT count
42 );
43
44 #define VDDSimulateInterrupt(ms, line, count) \
45 call_ica_hw_interrupt((ms), (line), (count)) // Windows specifies a count of 1 ...
46
47
48 /*
49 * Registers manipulation
50 */
51 PVOID WINAPI getIntelRegistersPointer(VOID);
52
53 #ifndef _M_MIPS
54
55 ULONG WINAPI getEAX(VOID);
56 VOID WINAPI setEAX(ULONG);
57 USHORT WINAPI getAX(VOID);
58 VOID WINAPI setAX(USHORT);
59 UCHAR WINAPI getAH(VOID);
60 VOID WINAPI setAH(UCHAR);
61 UCHAR WINAPI getAL(VOID);
62 VOID WINAPI setAL(UCHAR);
63
64 ULONG WINAPI getEBX(VOID);
65 VOID WINAPI setEBX(ULONG);
66 USHORT WINAPI getBX(VOID);
67 VOID WINAPI setBX(USHORT);
68 UCHAR WINAPI getBH(VOID);
69 VOID WINAPI setBH(UCHAR);
70 UCHAR WINAPI getBL(VOID);
71 VOID WINAPI setBL(UCHAR);
72
73 ULONG WINAPI getECX(VOID);
74 VOID WINAPI setECX(ULONG);
75 USHORT WINAPI getCX(VOID);
76 VOID WINAPI setCX(USHORT);
77 UCHAR WINAPI getCH(VOID);
78 VOID WINAPI setCH(UCHAR);
79 UCHAR WINAPI getCL(VOID);
80 VOID WINAPI setCL(UCHAR);
81
82 ULONG WINAPI getEDX(VOID);
83 VOID WINAPI setEDX(ULONG);
84 USHORT WINAPI getDX(VOID);
85 VOID WINAPI setDX(USHORT);
86 UCHAR WINAPI getDH(VOID);
87 VOID WINAPI setDH(UCHAR);
88 UCHAR WINAPI getDL(VOID);
89 VOID WINAPI setDL(UCHAR);
90
91
92
93 ULONG WINAPI getESP(VOID);
94 VOID WINAPI setESP(ULONG);
95 USHORT WINAPI getSP(VOID);
96 VOID WINAPI setSP(USHORT);
97
98 ULONG WINAPI getEBP(VOID);
99 VOID WINAPI setEBP(ULONG);
100 USHORT WINAPI getBP(VOID);
101 VOID WINAPI setBP(USHORT);
102
103 ULONG WINAPI getESI(VOID);
104 VOID WINAPI setESI(ULONG);
105 USHORT WINAPI getSI(VOID);
106 VOID WINAPI setSI(USHORT);
107
108 ULONG WINAPI getEDI(VOID);
109 VOID WINAPI setEDI(ULONG);
110 USHORT WINAPI getDI(VOID);
111 VOID WINAPI setDI(USHORT);
112
113 ULONG WINAPI getEIP(VOID);
114 VOID WINAPI setEIP(ULONG);
115 USHORT WINAPI getIP(VOID);
116 VOID WINAPI setIP(USHORT);
117
118 USHORT WINAPI getCS(VOID);
119 VOID WINAPI setCS(USHORT);
120 USHORT WINAPI getSS(VOID);
121 VOID WINAPI setSS(USHORT);
122 USHORT WINAPI getDS(VOID);
123 VOID WINAPI setDS(USHORT);
124 USHORT WINAPI getES(VOID);
125 VOID WINAPI setES(USHORT);
126 USHORT WINAPI getFS(VOID);
127 VOID WINAPI setFS(USHORT);
128 USHORT WINAPI getGS(VOID);
129 VOID WINAPI setGS(USHORT);
130
131 ULONG WINAPI getCF(VOID);
132 VOID WINAPI setCF(ULONG);
133 ULONG WINAPI getPF(VOID);
134 VOID WINAPI setPF(ULONG);
135 ULONG WINAPI getAF(VOID);
136 VOID WINAPI setAF(ULONG);
137 ULONG WINAPI getZF(VOID);
138 VOID WINAPI setZF(ULONG);
139 ULONG WINAPI getSF(VOID);
140 VOID WINAPI setSF(ULONG);
141 ULONG WINAPI getIF(VOID);
142 VOID WINAPI setIF(ULONG);
143 ULONG WINAPI getDF(VOID);
144 VOID WINAPI setDF(ULONG);
145 ULONG WINAPI getOF(VOID);
146 VOID WINAPI setOF(ULONG);
147
148 ULONG WINAPI getEFLAGS(VOID);
149 VOID WINAPI setEFLAGS(ULONG);
150
151 USHORT WINAPI getMSW(VOID);
152 VOID WINAPI setMSW(USHORT);
153
154 #else
155
156 ULONG WINAPI c_getEAX(VOID);
157 VOID WINAPI c_setEAX(ULONG);
158 USHORT WINAPI c_getAX(VOID);
159 VOID WINAPI c_setAX(USHORT);
160 UCHAR WINAPI c_getAH(VOID);
161 VOID WINAPI c_setAH(UCHAR);
162 UCHAR WINAPI c_getAL(VOID);
163 VOID WINAPI c_setAL(UCHAR);
164
165 ULONG WINAPI c_getEBX(VOID);
166 VOID WINAPI c_setEBX(ULONG);
167 USHORT WINAPI c_getBX(VOID);
168 VOID WINAPI c_setBX(USHORT);
169 UCHAR WINAPI c_getBH(VOID);
170 VOID WINAPI c_setBH(UCHAR);
171 UCHAR WINAPI c_getBL(VOID);
172 VOID WINAPI c_setBL(UCHAR);
173
174 ULONG WINAPI c_getECX(VOID);
175 VOID WINAPI c_setECX(ULONG);
176 USHORT WINAPI c_getCX(VOID);
177 VOID WINAPI c_setCX(USHORT);
178 UCHAR WINAPI c_getCH(VOID);
179 VOID WINAPI c_setCH(UCHAR);
180 UCHAR WINAPI c_getCL(VOID);
181 VOID WINAPI c_setCL(UCHAR);
182
183 ULONG WINAPI c_getEDX(VOID);
184 VOID WINAPI c_setEDX(ULONG);
185 USHORT WINAPI c_getDX(VOID);
186 VOID WINAPI c_setDX(USHORT);
187 UCHAR WINAPI c_getDH(VOID);
188 VOID WINAPI c_setDH(UCHAR);
189 UCHAR WINAPI c_getDL(VOID);
190 VOID WINAPI c_setDL(UCHAR);
191
192
193
194 ULONG WINAPI c_getESP(VOID);
195 VOID WINAPI c_setESP(ULONG);
196 USHORT WINAPI c_getSP(VOID);
197 VOID WINAPI c_setSP(USHORT);
198
199 ULONG WINAPI c_getEBP(VOID);
200 VOID WINAPI c_setEBP(ULONG);
201 USHORT WINAPI c_getBP(VOID);
202 VOID WINAPI c_setBP(USHORT);
203
204 ULONG WINAPI c_getESI(VOID);
205 VOID WINAPI c_setESI(ULONG);
206 USHORT WINAPI c_getSI(VOID);
207 VOID WINAPI c_setSI(USHORT);
208
209 ULONG WINAPI c_getEDI(VOID);
210 VOID WINAPI c_setEDI(ULONG);
211 USHORT WINAPI c_getDI(VOID);
212 VOID WINAPI c_setDI(USHORT);
213
214 ULONG WINAPI c_getEIP(VOID);
215 VOID WINAPI c_setEIP(ULONG);
216 USHORT WINAPI c_getIP(VOID);
217 VOID WINAPI c_setIP(USHORT);
218
219 USHORT WINAPI c_getCS(VOID);
220 VOID WINAPI c_setCS(USHORT);
221 USHORT WINAPI c_getSS(VOID);
222 VOID WINAPI c_setSS(USHORT);
223 USHORT WINAPI c_getDS(VOID);
224 VOID WINAPI c_setDS(USHORT);
225 USHORT WINAPI c_getES(VOID);
226 VOID WINAPI c_setES(USHORT);
227 USHORT WINAPI c_getFS(VOID);
228 VOID WINAPI c_setFS(USHORT);
229 USHORT WINAPI c_getGS(VOID);
230 VOID WINAPI c_setGS(USHORT);
231
232 ULONG WINAPI c_getCF(VOID);
233 VOID WINAPI c_setCF(ULONG);
234 ULONG WINAPI c_getPF(VOID);
235 VOID WINAPI c_setPF(ULONG);
236 ULONG WINAPI c_getAF(VOID);
237 VOID WINAPI c_setAF(ULONG);
238 ULONG WINAPI c_getZF(VOID);
239 VOID WINAPI c_setZF(ULONG);
240 ULONG WINAPI c_getSF(VOID);
241 VOID WINAPI c_setSF(ULONG);
242 ULONG WINAPI c_getIF(VOID);
243 VOID WINAPI c_setIF(ULONG);
244 ULONG WINAPI c_getDF(VOID);
245 VOID WINAPI c_setDF(ULONG);
246 ULONG WINAPI c_getOF(VOID);
247 VOID WINAPI c_setOF(ULONG);
248
249 USHORT WINAPI c_getMSW(VOID);
250 VOID WINAPI c_setMSW(USHORT);
251
252 #endif
253
254 /* EOF */