[NTVDM]
[reactos.git] / subsystems / ntvdm / ntvdm.h
1 /*
2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: ntvdm.h
5 * PURPOSE: Header file to define commonly used stuff
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 */
8
9 #ifndef _NTVDM_H_
10 #define _NTVDM_H_
11
12 /* INCLUDES *******************************************************************/
13
14 #include <windows.h>
15 #include <stdio.h>
16 #include <conio.h>
17 #include <stdarg.h>
18 #include <debug.h>
19 #include <limits.h>
20
21 /* DEFINES ********************************************************************/
22
23 #define TO_LINEAR(seg, off) (((seg) << 4) + (off))
24 #define MAX_SEGMENT 0xFFFF
25 #define MAX_OFFSET 0xFFFF
26 #define MAX_ADDRESS TO_LINEAR(MAX_SEGMENT, MAX_OFFSET)
27 #define FAR_POINTER(x) ((ULONG_PTR)BaseAddress + TO_LINEAR(HIWORD(x), LOWORD(x)))
28 #define STEPS_PER_CYCLE 256
29 #define IsConsoleHandle(h) (((((ULONG_PTR)h) & 0x10000003) == 3) ? TRUE : FALSE)
30
31 /* FUNCTIONS ******************************************************************/
32
33 extern LPVOID BaseAddress;
34 extern BOOLEAN VdmRunning;
35 extern LPCWSTR ExceptionName[];
36
37 VOID DisplayMessage(LPCWSTR Format, ...);
38
39 #endif // _NTVDM_H_
40
41 /* EOF */