|
|
1.1 root 1: /*++
2:
3: Copyright (c) 1992 Microsoft Corporation
4:
5: Module Name:
6:
7: VDDSVC.H
8:
9: Abstract:
10:
11: Include file contains VDM services provided for installable VDDs.
12:
13:
14: --*/
15:
16:
17: /**
18: * This file contains VDM services prototype defintions only; their
19: * related structures and macros are defined in NT_VDD.H.
20: * If we have not included the file yet, include it and set a signal
21: * to tell anybody the fact.
22: **/
23:
24: #ifndef _NT_VDD
25: #include "nt_vdd.h"
26: #define _NT_VDD
27: #endif
28:
29:
30: /** Memory Accessing services **/
31:
32: #define GetVDMAddress(usSeg, usOff) (((ULONG)usSeg << 4) + (ULONG)usOff)
33:
34: #define GetVDMPointer(Address, Size, Mode) Sim32GetVDMPointer(\
35: Address, Size, Mode)
36:
37: #define FlushVDMPointer(Address, Size, Buffer, Mode) Sim32FlushVDMPointer(\
38: Address, Size, Buffer, Mode)
39:
40: #define FreeVDMPointer(Address, Size, Buffer, Mode) Sim32FreeVDMPointer(\
41: Address, Size, Buffer, Mode)
42:
43: /** interrupt simualtion services **/
44:
45: #define ICA_MASTER 0
46: #define ICA_SLAVE 1
47: #define VDDSimulateInterrupt(ms, line, count) (call_ica_hw_interrupt)(\
48: ms, line, 1)
49:
50:
51: /** Register manipulation services **/
52:
53: #ifndef i386
54:
55: #define getEAX() (ULONG)c_getAX()
56: #define getAX() c_getAX()
57: #define getAL() c_getAL()
58: #define getAH() c_getAH()
59: #define getEBX() (ULONG)c_getBX()
60: #define getBX() c_getBX()
61: #define getBL() c_getBL()
62: #define getBH() c_getBH()
63: #define getECX() (ULONG)c_getCX()
64: #define getCX() c_getCX()
65: #define getCL() c_getCL()
66: #define getCH() c_getCH()
67: #define getEDX() (ULONG)c_getDX()
68: #define getDX() c_getDX()
69: #define getDL() c_getDL()
70: #define getDH() c_getDH()
71: #define getESP() (ULONG)c_getSP()
72: #define getSP() c_getSP()
73: #define getEBP() (ULONG)c_getBP()
74: #define getBP() c_getBP()
75: #define getESI() (ULONG)c_getSI()
76: #define getSI() c_getSI()
77: #define getEDI() (ULONG)c_getDI()
78: #define getDI() c_getDI()
79: #define getEIP() (ULONG)c_getIP()
80: #define getIP() c_getIP()
81: #define getCS() c_getCS()
82: #define getSS() c_getSS()
83: #define getDS() c_getDS()
84: #define getES() c_getES()
85: #define getCF() c_getCF()
86: #define getPF() c_getPF()
87: #define getAF() c_getAF()
88: #define getZF() c_getZF()
89: #define getSF() c_getSF()
90: #define getIF() c_getIF()
91: #define getDF() c_getDF()
92: #define getOF() c_getOF()
93: #define getMSW() c_getMSW()
94:
95: #define setEAX(value) c_setAX((WORD)value)
96: #define setAX(value) c_setAX(value)
97: #define setAH(value) c_setAH(value)
98: #define setAL(value) c_setAL(value)
99: #define setEBX(value) c_setBX((WORD)value)
100: #define setBX(value) c_setBX(value)
101: #define setBH(value) c_setBH(value)
102: #define setBL(value) c_setBL(value)
103: #define setECX(value) c_setCX((WORD)value)
104: #define setCX(value) c_setCX(value)
105: #define setCH(value) c_setCH(value)
106: #define setCL(value) c_setCL(value)
107: #define setEDX(value) c_setDX((WORD)value)
108: #define setDX(value) c_setDX(value)
109: #define setDH(value) c_setDH(value)
110: #define setDL(value) c_setDL(value)
111: #define setESP(value) c_setSP((WORD)value)
112: #define setSP(value) c_setSP(value)
113: #define setEBP(value) c_setBP((WORD)value)
114: #define setBP(value) c_setBP(value)
115: #define setESI(value) c_setSI((WORD)value)
116: #define setSI(value) c_setSI(value)
117: #define setEDI(value) c_setDI((WORD)value)
118: #define setDI(value) c_setDI(value)
119: #define setEIP(value) c_setIP((WORD)value)
120: #define setIP(value) c_setIP(value)
121: #define setCS(value) c_setCS(value)
122: #define setSS(value) c_setSS(value)
123: #define setDS(value) c_setDS(value)
124: #define setES(value) c_setES(value)
125: #define setCF(value) c_setCF(value)
126: #define setPF(value) c_setPF(value)
127: #define setAF(value) c_setAF(value)
128: #define setZF(value) c_setZF(value)
129: #define setSF(value) c_setSF(value)
130: #define setIF(value) c_setIF(value)
131: #define setDF(value) c_setDF(value)
132: #define setOF(value) c_setOF(value)
133: #define setMSW(value) c_setMSW(value)
134:
135: #endif
136:
137:
138: /** Real function prototype declarations **/
139:
140:
141: /** interrupt simulation functions **/
142:
143: VOID
144: call_ica_hw_interrupt (
145: int ms,
146: BYTE line,
147: int count
148: );
149:
150: #define Sim32FreeVDMPointer(address, size, buffer, mode) TRUE
151:
152: /** memory address manipulation functions **/
153:
154: #ifdef i386
155:
156: #define Sim32GetVDMPointer(address, size, mode) MGetVdmPointer((ULONG)address,\
157: (ULONG)size, (CHAR)mode)
158: #define Sim32FlushVDMPointer(addess, size, buffer, mode) TRUE
159:
160: PBYTE
161: MGetVdmPointer(
162: ULONG Address,
163: ULONG Size,
164: CHAR ProtectedMode
165: );
166:
167: #else
168:
169: PBYTE
170: Sim32GetVDMPointer(
171: ULONG Address,
172: USHORT Size,
173: BOOLEAN ProtectedMode
174: );
175:
176: BOOLEAN
177: Sim32FlushVDMPointer(
178: ULONG Address,
179: USHORT Size,
180: PBYTE Buffer,
181: BOOLEAN ProtectedMode
182: );
183:
184: #endif
185:
186:
187: /** Register manipulation functions **/
188:
189: #ifdef i386
190: ULONG getEAX(VOID);
191: USHORT getAX(VOID);
192: UCHAR getAL(VOID);
193: UCHAR getAH(VOID);
194: ULONG getEBX(VOID);
195: USHORT getBX(VOID);
196: UCHAR getBL(VOID);
197: UCHAR getBH(VOID);
198: ULONG getECX(VOID);
199: USHORT getCX(VOID);
200: UCHAR getCL(VOID);
201: UCHAR getCH(VOID);
202: ULONG getEDX(VOID);
203: USHORT getDX(VOID);
204: UCHAR getDL(VOID);
205: UCHAR getDH(VOID);
206: ULONG getESP(VOID);
207: USHORT getSP(VOID);
208: ULONG getEBP(VOID);
209: USHORT getBP(VOID);
210: ULONG getESI(VOID);
211: USHORT getSI(VOID);
212: ULONG getEDI(VOID);
213: USHORT getDI(VOID);
214: ULONG getEIP(VOID);
215: USHORT getIP(VOID);
216: USHORT getCS(VOID);
217: USHORT getSS(VOID);
218: USHORT getDS(VOID);
219: USHORT getES(VOID);
220: USHORT getFS(VOID);
221: USHORT getGS(VOID);
222: ULONG getCF(VOID);
223: ULONG getPF(VOID);
224: ULONG getAF(VOID);
225: ULONG getZF(VOID);
226: ULONG getSF(VOID);
227: ULONG getIF(VOID);
228: ULONG getDF(VOID);
229: ULONG getOF(VOID);
230: USHORT getMSW(VOID);
231:
232: VOID setEAX(ULONG);
233: VOID setAX(USHORT);
234: VOID setAH(UCHAR);
235: VOID setAL(UCHAR);
236: VOID setEBX(ULONG);
237: VOID setBX(USHORT);
238: VOID setBH(UCHAR);
239: VOID setBL(UCHAR);
240: VOID setECX(ULONG);
241: VOID setCX(USHORT);
242: VOID setCH(UCHAR);
243: VOID setCL(UCHAR);
244: VOID setEDX(ULONG);
245: VOID setDX(USHORT);
246: VOID setDH(UCHAR);
247: VOID setDL(UCHAR);
248: VOID setESP(ULONG);
249: VOID setSP(USHORT);
250: VOID setEBP(ULONG);
251: VOID setBP(USHORT);
252: VOID setESI(ULONG);
253: VOID setSI(USHORT);
254: VOID setEDI(ULONG);
255: VOID setDI(USHORT);
256: VOID setEIP(ULONG);
257: VOID setIP(USHORT);
258: VOID setCS(USHORT);
259: VOID setSS(USHORT);
260: VOID setDS(USHORT);
261: VOID setES(USHORT);
262: VOID setFS(USHORT);
263: VOID setGS(USHORT);
264: VOID setCF(ULONG);
265: VOID setPF(ULONG);
266: VOID setAF(ULONG);
267: VOID setZF(ULONG);
268: VOID setSF(ULONG);
269: VOID setIF(ULONG);
270: VOID setDF(ULONG);
271: VOID setOF(ULONG);
272: VOID setMSW(USHORT);
273:
274:
275: #else
276:
277: UCHAR c_getAL(VOID);
278: UCHAR c_getCL(VOID);
279: UCHAR c_getDL(VOID);
280: UCHAR c_getBL(VOID);
281: UCHAR c_getAH(VOID);
282: UCHAR c_getCH(VOID);
283: UCHAR c_getDH(VOID);
284: UCHAR c_getBH(VOID);
285:
286: USHORT c_getAX(VOID);
287: USHORT c_getCX(VOID);
288: USHORT c_getDX(VOID);
289: USHORT c_getBX(VOID);
290: USHORT c_getSP(VOID);
291: USHORT c_getBP(VOID);
292: USHORT c_getSI(VOID);
293: USHORT c_getDI(VOID);
294: USHORT c_getIP(VOID);
295: USHORT c_getES(VOID);
296: USHORT c_getCS(VOID);
297: USHORT c_getSS(VOID);
298: USHORT c_getDS(VOID);
299:
300: USHORT c_getMSW(VOID);
301:
302: ULONG c_getAF(VOID);
303: ULONG c_getCF(VOID);
304: ULONG c_getDF(VOID);
305: ULONG c_getIF(VOID);
306: ULONG c_getOF(VOID);
307: ULONG c_getPF(VOID);
308: ULONG c_getSF(VOID);
309: ULONG c_getZF(VOID);
310:
311: VOID c_setAL(UCHAR val);
312: VOID c_setCL(UCHAR val);
313: VOID c_setDL(UCHAR val);
314: VOID c_setBL(UCHAR val);
315: VOID c_setAH(UCHAR val);
316: VOID c_setCH(UCHAR val);
317: VOID c_setDH(UCHAR val);
318: VOID c_setBH(UCHAR val);
319:
320: VOID c_setAX(USHORT val);
321: VOID c_setCX(USHORT val);
322: VOID c_setDX(USHORT val);
323: VOID c_setBX(USHORT val);
324: VOID c_setSP(USHORT val);
325: VOID c_setBP(USHORT val);
326: VOID c_setSI(USHORT val);
327: VOID c_setDI(USHORT val);
328: VOID c_setIP(USHORT val);
329:
330: VOID c_setES(USHORT val);
331: VOID c_setCS(USHORT val);
332: VOID c_setSS(USHORT val);
333: VOID c_setDS(USHORT val);
334:
335: VOID c_setMSW(USHORT val);
336:
337: VOID c_setAF(ULONG val);
338: VOID c_setCF(ULONG val);
339: VOID c_setDF(ULONG val);
340: VOID c_setIF(ULONG val);
341: VOID c_setOF(ULONG val);
342: VOID c_setPF(ULONG val);
343: VOID c_setSF(ULONG val);
344: VOID c_setZF(ULONG val);
345:
346: #endif
347:
348:
349: /* end of VDDSVC.H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.