windows-nt/Source/XPSP1/NT/published/sdk/inc/vddsvc.h
2020-09-26 16:20:57 +08:00

354 lines
7.7 KiB
C

/*++
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 */