xref: /reactos/subsystems/mvdm/ntvdm/dos/dem.h (revision 845faec4)
1 /*
2  * COPYRIGHT:       GPL - See COPYING in the top level directory
3  * PROJECT:         ReactOS Virtual DOS Machine
4  * FILE:            subsystems/mvdm/ntvdm/dos/dem.h
5  * PURPOSE:         DOS 32-bit Emulation Support Library -
6  *                  This library is used by the built-in NTVDM DOS32 and by
7  *                  the NT 16-bit DOS in Windows (via BOPs). It also exposes
8  *                  exported functions that can be used by VDDs.
9  * PROGRAMMERS:     Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
10  *                  Hermes Belusca-Maito (hermes.belusca@sfr.fr)
11  */
12 
13 #ifndef _DEM_H_
14 #define _DEM_H_
15 
16 /* INCLUDES *******************************************************************/
17 
18 #include "dos32krnl/dos.h"
19 
20 /* DEFINES ********************************************************************/
21 
22 /* BOP Identifiers */
23 #define BOP_LOAD_DOS    0x2B    // DOS Loading and Initializing BOP. In parameter (following bytes) we take a NULL-terminated string indicating the name of the DOS kernel file.
24 #define BOP_START_DOS   0x2C    // DOS Starting BOP. In parameter (following bytes) we take a NULL-terminated string indicating the name of the DOS kernel file.
25 #define BOP_DOS         0x50    // DOS System BOP (for NTIO.SYS and NTDOS.SYS)
26 #define BOP_CMD         0x54    // DOS Command Interpreter BOP (for COMMAND.COM)
27 
28 /* VARIABLES ******************************************************************/
29 
30 /* FUNCTIONS ******************************************************************/
31 
32 VOID Dem_BiosCharPrint(CHAR Character);
33 #define BiosDisplayMessage(Format, ...) \
34     PrintMessageAnsi(Dem_BiosCharPrint, (Format), ##__VA_ARGS__)
35 
36 VOID DosCharPrint(CHAR Character);
37 #define DosDisplayMessage(Format, ...)  \
38     PrintMessageAnsi(DosCharPrint, (Format), ##__VA_ARGS__)
39 
40 
41 BOOLEAN DosShutdown(BOOLEAN Immediate);
42 
43 DWORD DosStartProcess32(IN LPCSTR ExecutablePath,
44                         IN LPCSTR CommandLine,
45                         IN LPCSTR Environment OPTIONAL,
46                         IN DWORD ReturnAddress OPTIONAL,
47                         IN BOOLEAN StartComSpec);
48 
49 DWORD
50 WINAPI
51 demClientErrorEx
52 (
53     IN HANDLE FileHandle,
54     IN CHAR   Unknown,
55     IN BOOL   Flag
56 );
57 
58 DWORD
59 WINAPI
60 demFileDelete
61 (
62     IN LPCSTR FileName
63 );
64 
65 DWORD
66 WINAPI
67 demFileFindFirst
68 (
69     OUT PVOID  lpFindFileData,
70     IN  LPCSTR FileName,
71     IN  WORD   AttribMask
72 );
73 
74 DWORD
75 WINAPI
76 demFileFindNext
77 (
78     OUT PVOID lpFindFileData
79 );
80 
81 UCHAR
82 WINAPI
83 demGetPhysicalDriveType
84 (
85     IN UCHAR DriveNumber
86 );
87 
88 BOOL
89 WINAPI
90 demIsShortPathName
91 (
92     IN LPCSTR Path,
93     IN BOOL Unknown
94 );
95 
96 DWORD
97 WINAPI
98 demSetCurrentDirectoryGetDrive
99 (
100     IN  LPCSTR CurrentDirectory,
101     OUT PUCHAR DriveNumber
102 );
103 
104 #endif // _DEM_H_
105 
106 /* EOF */
107