[NTVDM]
[reactos.git] / reactos / subsystems / ntvdm / int32.h
1 /*
2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: int32.h
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)
8 */
9
10 #ifndef _INT32_H_
11 #define _INT32_H_
12
13 /* INCLUDES *******************************************************************/
14
15 #include "cpu/callback.h"
16
17 /* DEFINES ********************************************************************/
18
19 /* 32-bit Interrupt Identifiers */
20 #define EMULATOR_MAX_INT32_NUM 0xFF + 1
21
22 extern const ULONG Int16To32StubSize;
23
24 /* FUNCTIONS ******************************************************************/
25
26 typedef VOID (WINAPI *EMULATOR_INT32_PROC)(LPWORD Stack);
27
28 ULONG
29 RegisterInt16(IN ULONG FarPtr,
30 IN BYTE IntNumber,
31 IN LPBYTE CallbackCode,
32 IN SIZE_T CallbackSize,
33 OUT PSIZE_T CodeSize OPTIONAL);
34
35 ULONG
36 RegisterInt32(IN ULONG FarPtr,
37 IN BYTE IntNumber,
38 IN EMULATOR_INT32_PROC IntHandler,
39 OUT PSIZE_T CodeSize OPTIONAL);
40
41 VOID
42 Int32Call(IN PCALLBACK16 Context,
43 IN BYTE IntNumber);
44
45 VOID InitializeInt32(VOID);
46
47 #endif // _INT32_H_
48
49 /* EOF */