2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
5 * PURPOSE: 32-bit Interrupt Handlers
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
13 /* DEFINES ********************************************************************/
15 #define BOP(num) LOBYTE(EMULATOR_BOP), HIBYTE(EMULATOR_BOP), (num)
16 #define UnSimulate16(trap) \
18 *(PUSHORT)(trap) = EMULATOR_BOP; \
19 (trap) += sizeof(USHORT); \
20 *(trap) = BOP_UNSIMULATE; \
22 // #define UnSimulate16 MAKELONG(EMULATOR_BOP, BOP_UNSIMULATE) // BOP(BOP_UNSIMULATE)
24 typedef struct _CALLBACK16
26 ULONG TrampolineFarPtr
; // Where the trampoline zone is placed
27 ULONG TrampolineSize
; // Size of the trampoline zone
30 } CALLBACK16
, *PCALLBACK16
;
32 /* FUNCTIONS ******************************************************************/
35 InitializeContextEx(IN PCALLBACK16 Context
,
36 IN ULONG TrampolineSize
,
41 InitializeContext(IN PCALLBACK16 Context
,
46 Call16(IN USHORT Segment
,
50 RunCallback16(IN PCALLBACK16 Context
,
54 RegisterCallback16(IN ULONG FarPtr
,
55 IN LPBYTE CallbackCode
,
56 IN SIZE_T CallbackSize
,
57 OUT PSIZE_T CodeSize OPTIONAL
);
59 #endif // _CALLBACK_H_