bfb1a8ae4727b62aeb16f747eaedb112109824d1
[reactos.git] / reactos / subsystems / mvdm / ntvdm / dos / dos32krnl / himem.h
1 /*
2 * COPYRIGHT: GPLv2+ - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: himem.h
5 * PURPOSE: DOS XMS Driver
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 */
8
9 /* DEFINITIONS ****************************************************************/
10
11 #define XMS_ADDRESS 0x110000
12 #define XMS_BLOCKS 0x37C0
13 #define XMS_BLOCK_SIZE 1024
14 #define XMS_MAX_HANDLES 16
15
16 #define XMS_STATUS_SUCCESS 0x00
17 #define XMS_STATUS_NOT_IMPLEMENTED 0x80
18 #define XMS_STATUS_HMA_IN_USE 0x91
19 #define XMS_STATUS_OUT_OF_MEMORY 0xA0
20 #define XMS_STATUS_OUT_OF_HANDLES 0xA1
21 #define XMS_STATUS_INVALID_HANDLE 0xA2
22 #define XMS_STATUS_NOT_LOCKED 0xAA
23 #define XMS_STATUS_LOCKED 0xAB
24 #define XMS_STATUS_LOCK_OVERFLOW 0xAC
25 #define XMS_STATUS_CANNOT_LOCK 0xAD
26
27 typedef struct _XMS_HANDLE
28 {
29 BYTE Handle;
30 BYTE LockCount;
31 WORD Size;
32 DWORD Address;
33 } XMS_HANDLE, *PXMS_HANDLE;
34
35 /* FUNCTIONS ******************************************************************/
36
37 BOOLEAN XmsGetDriverEntry(PDWORD Pointer);
38 VOID XmsInitialize(VOID);
39 VOID XmsCleanup(VOID);