|
|
/*++
Copyright (c) 1992-1999 Microsoft Corporation
Module Name:
VDDSVC.H
Abstract:
Include file contains VDM services provided for installable VDDs.
--*/
/**
* This file contains VDM services prototype defintions only; their * related structures and macros are defined in NT_VDD.H. * If we have not included the file yet, include it and set a signal * to tell anybody the fact. **/
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef _NT_VDD
#include "nt_vdd.h"
#define _NT_VDD
#endif
/** Memory Accessing services **/
#define GetVDMAddress(usSeg, usOff) (((ULONG)usSeg << 4) + (ULONG)usOff)
#define GetVDMPointer(Address, Size, Mode) Sim32GetVDMPointer(\
Address, Size, Mode)
#define FlushVDMPointer(Address, Size, Buffer, Mode) Sim32FlushVDMPointer(\
Address, Size, Buffer, Mode)
#define FreeVDMPointer(Address, Size, Buffer, Mode) Sim32FreeVDMPointer(\
Address, Size, Buffer, Mode)
/** interrupt simualtion services **/
#define ICA_MASTER 0
#define ICA_SLAVE 1
#define VDDSimulateInterrupt(ms, line, count) (call_ica_hw_interrupt)(\
ms, line, 1)
/** Register manipulation services **/
#ifndef i386
#define getEAX() (ULONG)c_getAX()
#define getAX() c_getAX()
#define getAL() c_getAL()
#define getAH() c_getAH()
#define getEBX() (ULONG)c_getBX()
#define getBX() c_getBX()
#define getBL() c_getBL()
#define getBH() c_getBH()
#define getECX() (ULONG)c_getCX()
#define getCX() c_getCX()
#define getCL() c_getCL()
#define getCH() c_getCH()
#define getEDX() (ULONG)c_getDX()
#define getDX() c_getDX()
#define getDL() c_getDL()
#define getDH() c_getDH()
#define getESP() (ULONG)c_getSP()
#define getSP() c_getSP()
#define getEBP() (ULONG)c_getBP()
#define getBP() c_getBP()
#define getESI() (ULONG)c_getSI()
#define getSI() c_getSI()
#define getEDI() (ULONG)c_getDI()
#define getDI() c_getDI()
#define getEIP() (ULONG)c_getIP()
#define getIP() c_getIP()
#define getCS() c_getCS()
#define getSS() c_getSS()
#define getDS() c_getDS()
#define getES() c_getES()
#define getCF() c_getCF()
#define getPF() c_getPF()
#define getAF() c_getAF()
#define getZF() c_getZF()
#define getSF() c_getSF()
#define getIF() c_getIF()
#define getDF() c_getDF()
#define getOF() c_getOF()
#define getMSW() c_getMSW()
#define setEAX(value) c_setAX((WORD)value)
#define setAX(value) c_setAX(value)
#define setAH(value) c_setAH(value)
#define setAL(value) c_setAL(value)
#define setEBX(value) c_setBX((WORD)value)
#define setBX(value) c_setBX(value)
#define setBH(value) c_setBH(value)
#define setBL(value) c_setBL(value)
#define setECX(value) c_setCX((WORD)value)
#define setCX(value) c_setCX(value)
#define setCH(value) c_setCH(value)
#define setCL(value) c_setCL(value)
#define setEDX(value) c_setDX((WORD)value)
#define setDX(value) c_setDX(value)
#define setDH(value) c_setDH(value)
#define setDL(value) c_setDL(value)
#define setESP(value) c_setSP((WORD)value)
#define setSP(value) c_setSP(value)
#define setEBP(value) c_setBP((WORD)value)
#define setBP(value) c_setBP(value)
#define setESI(value) c_setSI((WORD)value)
#define setSI(value) c_setSI(value)
#define setEDI(value) c_setDI((WORD)value)
#define setDI(value) c_setDI(value)
#define setEIP(value) c_setIP((WORD)value)
#define setIP(value) c_setIP(value)
#define setCS(value) c_setCS(value)
#define setSS(value) c_setSS(value)
#define setDS(value) c_setDS(value)
#define setES(value) c_setES(value)
#define setCF(value) c_setCF(value)
#define setPF(value) c_setPF(value)
#define setAF(value) c_setAF(value)
#define setZF(value) c_setZF(value)
#define setSF(value) c_setSF(value)
#define setIF(value) c_setIF(value)
#define setDF(value) c_setDF(value)
#define setOF(value) c_setOF(value)
#define setMSW(value) c_setMSW(value)
#endif
/** Real function prototype declarations **/
/** interrupt simulation functions **/
VOID call_ica_hw_interrupt ( int ms, BYTE line, int count );
#define Sim32FreeVDMPointer(address, size, buffer, mode) TRUE
/** memory address manipulation functions **/
#ifdef i386
#define Sim32GetVDMPointer(address, size, mode) MGetVdmPointer(address,\
size, mode) #define Sim32FlushVDMPointer(addess, size, buffer, mode) TRUE
PBYTE MGetVdmPointer( ULONG Address, ULONG Size, UCHAR ProtectedMode );
#else
PBYTE Sim32GetVDMPointer( ULONG Address, ULONG Size, UCHAR ProtectedMode );
BOOLEAN Sim32FlushVDMPointer( ULONG Address, USHORT Size, PBYTE Buffer, BOOLEAN ProtectedMode );
#endif
/** Register manipulation functions **/
#ifdef i386
ULONG getEAX(VOID); USHORT getAX(VOID); UCHAR getAL(VOID); UCHAR getAH(VOID); ULONG getEBX(VOID); USHORT getBX(VOID); UCHAR getBL(VOID); UCHAR getBH(VOID); ULONG getECX(VOID); USHORT getCX(VOID); UCHAR getCL(VOID); UCHAR getCH(VOID); ULONG getEDX(VOID); USHORT getDX(VOID); UCHAR getDL(VOID); UCHAR getDH(VOID); ULONG getESP(VOID); USHORT getSP(VOID); ULONG getEBP(VOID); USHORT getBP(VOID); ULONG getESI(VOID); USHORT getSI(VOID); ULONG getEDI(VOID); USHORT getDI(VOID); ULONG getEIP(VOID); USHORT getIP(VOID); USHORT getCS(VOID); USHORT getSS(VOID); USHORT getDS(VOID); USHORT getES(VOID); USHORT getFS(VOID); USHORT getGS(VOID); ULONG getCF(VOID); ULONG getPF(VOID); ULONG getAF(VOID); ULONG getZF(VOID); ULONG getSF(VOID); ULONG getIF(VOID); ULONG getDF(VOID); ULONG getOF(VOID); USHORT getMSW(VOID);
VOID setEAX(ULONG); VOID setAX(USHORT); VOID setAH(UCHAR); VOID setAL(UCHAR); VOID setEBX(ULONG); VOID setBX(USHORT); VOID setBH(UCHAR); VOID setBL(UCHAR); VOID setECX(ULONG); VOID setCX(USHORT); VOID setCH(UCHAR); VOID setCL(UCHAR); VOID setEDX(ULONG); VOID setDX(USHORT); VOID setDH(UCHAR); VOID setDL(UCHAR); VOID setESP(ULONG); VOID setSP(USHORT); VOID setEBP(ULONG); VOID setBP(USHORT); VOID setESI(ULONG); VOID setSI(USHORT); VOID setEDI(ULONG); VOID setDI(USHORT); VOID setEIP(ULONG); VOID setIP(USHORT); VOID setCS(USHORT); VOID setSS(USHORT); VOID setDS(USHORT); VOID setES(USHORT); VOID setFS(USHORT); VOID setGS(USHORT); VOID setCF(ULONG); VOID setPF(ULONG); VOID setAF(ULONG); VOID setZF(ULONG); VOID setSF(ULONG); VOID setIF(ULONG); VOID setDF(ULONG); VOID setOF(ULONG); VOID setMSW(USHORT);
#else
UCHAR c_getAL(VOID); UCHAR c_getCL(VOID); UCHAR c_getDL(VOID); UCHAR c_getBL(VOID); UCHAR c_getAH(VOID); UCHAR c_getCH(VOID); UCHAR c_getDH(VOID); UCHAR c_getBH(VOID);
USHORT c_getAX(VOID); USHORT c_getCX(VOID); USHORT c_getDX(VOID); USHORT c_getBX(VOID); USHORT c_getSP(VOID); USHORT c_getBP(VOID); USHORT c_getSI(VOID); USHORT c_getDI(VOID); USHORT c_getIP(VOID); USHORT c_getES(VOID); USHORT c_getCS(VOID); USHORT c_getSS(VOID); USHORT c_getDS(VOID);
USHORT c_getMSW(VOID);
ULONG c_getAF(VOID); ULONG c_getCF(VOID); ULONG c_getDF(VOID); ULONG c_getIF(VOID); ULONG c_getOF(VOID); ULONG c_getPF(VOID); ULONG c_getSF(VOID); ULONG c_getZF(VOID);
VOID c_setAL(UCHAR val); VOID c_setCL(UCHAR val); VOID c_setDL(UCHAR val); VOID c_setBL(UCHAR val); VOID c_setAH(UCHAR val); VOID c_setCH(UCHAR val); VOID c_setDH(UCHAR val); VOID c_setBH(UCHAR val);
VOID c_setAX(USHORT val); VOID c_setCX(USHORT val); VOID c_setDX(USHORT val); VOID c_setBX(USHORT val); VOID c_setSP(USHORT val); VOID c_setBP(USHORT val); VOID c_setSI(USHORT val); VOID c_setDI(USHORT val); VOID c_setIP(USHORT val);
VOID c_setES(USHORT val); VOID c_setCS(USHORT val); VOID c_setSS(USHORT val); VOID c_setDS(USHORT val);
VOID c_setMSW(USHORT val);
VOID c_setAF(ULONG val); VOID c_setCF(ULONG val); VOID c_setDF(ULONG val); VOID c_setIF(ULONG val); VOID c_setOF(ULONG val); VOID c_setPF(ULONG val); VOID c_setSF(ULONG val); VOID c_setZF(ULONG val);
#endif
/* end of VDDSVC.H */
|