blob: 2131cdc801734482471b0c44a345fc351fa8dab2 (
plain) (
tree)
|
|
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
dpmi.h
Abstract:
This file contains code to implement support for the DPMI bops
Author:
Dave Hastings (daveh) 27-Jun-1991
Revision History:
--*/
/* ASM
ifdef WOW_x86
include vint.inc
endif
include bop.inc
*/
#define LDT_SIZE 0x1FFF
// DPMI Bop Sub Functions
#define SetDescriptorTableEntries 0
#define DPMISwitchToProtectedMode 1 /* prefix necessary */
#define SetProtectedmodeInterrupt 2
#define GetFastBopAddress 3
#define InitDosx 4
#define InitApp 5
#define XlatInt21Call 6
#define AllocXmem 7
#define FreeXmem 8
#define ReallocXmem 9
#define SetFaultHandler 10
#define GetMemoryInformation 11
#define DpmiInUse 12
#define DpmiNoLongerInUse 13
#define SetDebugRegisters 14
#define PassTableAddress 15
#define TerminateApp 16
#define InitializePmStackInfo 17
#define VcdPmSvcCall32 18
#define FreeAllXmem 19
#define IntHandlerIret 20
#define IntHandlerIretd 21
#define FaultHandlerIret 22
#define FaultHandlerIretd 23
#define DpmiUnhandledException 24
#define MAX_DPMI_BOP_FUNC DpmiUnhandledException + 1
/* ASM
DPMIBOP macro SubFun
BOP BOP_DPMI
db SubFun
endm
*/
/* XLATOFF */
#if DBG
#define DBGTRACE(Type, v1, v2, v3) DpmiDbgTrace(Type, v1, v2, v3)
#else
#define DBGTRACE(Type, v1, v2, v3) {}
#endif
/* XLATON */
VOID DpmiDbgTrace(
int Type,
ULONG v1,
ULONG v2,
ULONG v3
);
#define DPMI_SET_PMODE_INT_HANDLER 1
#define DPMI_SET_FAULT_HANDLER 2
#define DPMI_DISPATCH_INT 3
#define DPMI_HW_INT 4
#define DPMI_SW_INT 5
#define DPMI_INT_IRET16 6
#define DPMI_INT_IRET32 7
#define DPMI_FAULT 8
#define DPMI_DISPATCH_FAULT 9
#define DPMI_FAULT_IRET 10
#define DPMI_OP_EMULATION 11
#define DPMI_DISPATCH_ENTRY 12
typedef struct _DPMI_TRACE_ENTRY { /* DPMITRACE */
int Type;
ULONG v1;
ULONG v2;
ULONG v3;
ULONG eax;
ULONG ebx;
ULONG ecx;
ULONG edx;
ULONG esi;
ULONG edi;
ULONG ebp;
ULONG esp;
ULONG eip;
ULONG eflags;
USHORT cs;
USHORT ds;
USHORT es;
USHORT fs;
USHORT gs;
USHORT ss;
} DPMI_TRACE_ENTRY;
|