546 lines
16 KiB
C
546 lines
16 KiB
C
/***
|
|
*doscalls.h - functions declarations for OS/2 function calls
|
|
*
|
|
* Copyright (c) 1986-1991, Microsoft Corporation. All rights reserved.
|
|
*
|
|
*Purpose:
|
|
* Function declarations to provide strong type checking on
|
|
* arguments to OS/2 function calls used by the C run-time.
|
|
* Only those functions which are referenced in the run-time
|
|
* are included in this file. This saves compilation time,
|
|
* reduces the amount of memory needed by the compiler, and
|
|
* prevents recompilation due to changes that do not directly
|
|
* affect the C run-time. This file should only be updated
|
|
* when a change is made to BSEDOS.H which affects a
|
|
* function used in a C module in the C run-time, or when a
|
|
* "C" module is changed to use a new OS/2 function call.
|
|
*
|
|
* Note: functions reference only in ASM files are included also
|
|
* so that this file can serve as a reference.
|
|
* [Internal]
|
|
*
|
|
*Revision History:
|
|
* 08-31-88 PHG created from BSEDOS.H, changed SHORT to INT
|
|
* 10-10-88 GJF Made specific to 386 (changed "Dos" prefix to
|
|
* "Sys", removed "far",...,etc.)
|
|
* 11-09-88 JCR _DATETIME.year and _DATETIME.timezone are USHORT
|
|
* 04-28-89 JCR Upgraded for OS/2 1.20 (32-bit)
|
|
* 05-25-89 JCR New system calling convention = "_syscall"
|
|
* 06-06-89 PHG Added several new systems calls, updated RESULTCODES
|
|
* made SHANDLE/HFILE/HDIR a long
|
|
* 07-05-89 PHG Added HDIR types, and VECTOR constants
|
|
* 07-06-89 JCR Corrected memory calls and constants
|
|
* 07-28-89 GJF Corrected copyright. Protected alignment of struct
|
|
* fields with pack pragma
|
|
* 08-10-89 JCR Changed DOS32FILELOCKS to DOS32SETFILELOCKS
|
|
* 08-14-89 GJF Added prototypes for DOS32QUERYFHSTATE and
|
|
* DOS32SETFILEHSTATE
|
|
* 10-18-89 JCR Changed _NEWREGION to match change in OS2 mem APIs
|
|
* 10-27-89 JCR Added DOS32GETTHREADINFO change (under switch DCR757)
|
|
* 10-30-89 GJF Fixed copyright
|
|
* 11-06-89 JCR Added DOS32FREEMEM
|
|
* 11-10-89 JCR Added OBJ_TILE bit to _NEWREGION definition
|
|
* 11-10-89 JCR Removed DOS32QUERYFILEMODE/SETFILEMODE (not supported),
|
|
* Added DOS32QUERYPATHINFO/SETPATHINFO
|
|
* 11-16-89 GJF Changed DOS32SETFILEHSTATE to DOS32SETFHSTATE
|
|
* 11-17-89 JCR Corrected DOS32SETFILEPTR
|
|
* 11-17-89 JCR Enabled DOS32GETTHREADINFO code (DCR757)
|
|
* 02-28-90 GJF Added #ifndef _INC_DOSCALLS stuff
|
|
* 05-07-90 JCR Added correct semaphore calls
|
|
* 05-09-90 JCR Corrected CREATETHREAD, etc.
|
|
* 05-28-90 SBM Added DOS32RESETBUFFER
|
|
* 06-06-90 SBM Added tentative new DOS32QUERYFHSTATE flags
|
|
* 07-02-90 GJF Fixed thread info structures to conform with MS 2012
|
|
* (aka DCR 1024).
|
|
* 07-23-90 SBM Removed '32' from all API names
|
|
* 08-23-90 GJF Added prototypes for new exception/signal API, removed
|
|
* obsolete prototypes and definitions.
|
|
* 12-10-90 GJF Updated values of new DOSQUERYFHSTATE flags.
|
|
* 01-28-91 GJF Updated definition of struct _FILEFINDBUF
|
|
* 08-20-91 JCR C++ and ANSI naming
|
|
*
|
|
****/
|
|
|
|
#ifndef _INC_DOSCALLS
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* ensure proper alignment of struct fields */
|
|
|
|
#pragma pack(4)
|
|
|
|
|
|
#define PASCAL pascal
|
|
#define VOID void
|
|
|
|
#define APIENTRY _syscall /* OS/2 386 system calling convention =
|
|
C arg passing, no leading underscore */
|
|
|
|
#define CHAR char /* ch */ /* always 8-bit */
|
|
#define SHORT short /* s */ /* always 16-bit */
|
|
#define LONG long /* l */ /* always 32-bit */
|
|
#define INT int /* i */ /* 286:16-bit, 386:32-bit */
|
|
|
|
typedef unsigned CHAR UCHAR; /* uch */
|
|
typedef unsigned SHORT USHORT; /* us */
|
|
typedef unsigned LONG ULONG; /* ul */
|
|
typedef unsigned INT UINT; /* ui */
|
|
|
|
typedef unsigned CHAR BYTE; /* b */
|
|
|
|
typedef CHAR *PSZ;
|
|
|
|
typedef INT (PASCAL *PFN)();
|
|
typedef INT (PASCAL **PPFN)();
|
|
|
|
typedef BYTE *PBYTE;
|
|
|
|
typedef CHAR *PCHAR;
|
|
typedef SHORT *PSHORT;
|
|
typedef LONG *PLONG;
|
|
typedef INT *PINT;
|
|
|
|
typedef UCHAR *PUCHAR;
|
|
typedef USHORT *PUSHORT;
|
|
typedef ULONG *PULONG;
|
|
typedef UINT *PUINT;
|
|
|
|
typedef VOID *PVOID;
|
|
|
|
typedef UINT BOOL; /* f */
|
|
typedef BOOL *PBOOL;
|
|
|
|
#define FALSE 0
|
|
#define TRUE 1
|
|
|
|
typedef ULONG SHANDLE;
|
|
|
|
typedef SHANDLE HFILE; /* hf */
|
|
typedef HFILE *PHFILE;
|
|
|
|
typedef ULONG HMTX; /* mutex semaphore */
|
|
typedef HMTX *PHMTX;
|
|
|
|
typedef UINT PID; /* pid */
|
|
typedef PID *PPID;
|
|
|
|
typedef UINT TID; /* tid */
|
|
typedef TID *PTID;
|
|
|
|
/* File time and date types */
|
|
|
|
typedef struct _FTIME { /* ftime */
|
|
unsigned short twosecs : 5;
|
|
unsigned short minutes : 6;
|
|
unsigned short hours : 5;
|
|
} FTIME;
|
|
typedef FTIME *PFTIME;
|
|
|
|
typedef struct _FDATE { /* fdate */
|
|
unsigned short day : 5;
|
|
unsigned short month : 4;
|
|
unsigned short year : 7;
|
|
} FDATE;
|
|
typedef FDATE *PFDATE;
|
|
|
|
/*
|
|
* CCHMAXPATH is the maximum fully qualified path name length including
|
|
* the drive letter, colon, backslashes and terminating NULL.
|
|
*/
|
|
#define CCHMAXPATH 260
|
|
|
|
typedef struct _FILEFINDBUF { /* findbuf */
|
|
ULONG oNextEntryOffset; /* new field */
|
|
FDATE fdateCreation;
|
|
FTIME ftimeCreation;
|
|
FDATE fdateLastAccess;
|
|
FTIME ftimeLastAccess;
|
|
FDATE fdateLastWrite;
|
|
FTIME ftimeLastWrite;
|
|
ULONG cbFile;
|
|
ULONG cbFileAlloc;
|
|
ULONG attrFile; /* widened field */
|
|
UCHAR cchName;
|
|
CHAR achName[CCHMAXPATH];
|
|
} FILEFINDBUF;
|
|
typedef FILEFINDBUF *PFILEFINDBUF;
|
|
|
|
/* Directory handle types */
|
|
|
|
#define HDIR_SYSTEM 0x0001
|
|
#define HDIR_CREATE 0xFFFF
|
|
|
|
#define EXIT_THREAD 0
|
|
#define EXIT_PROCESS 1
|
|
|
|
VOID APIENTRY DOSEXIT(ULONG, ULONG);
|
|
|
|
UINT APIENTRY DOSCREATETHREAD(PTID, VOID (*)(VOID), ULONG, ULONG, ULONG);
|
|
UINT APIENTRY DOSRESUMETHREAD(TID);
|
|
UINT APIENTRY DOSSUSPENDTHREAD(TID);
|
|
|
|
/* Wait option values */
|
|
|
|
#define DCWW_WAIT 0
|
|
#define DCWW_NOWAIT 1
|
|
|
|
typedef struct _RESULTCODES { /* resc */
|
|
ULONG codeTerminate;
|
|
ULONG codeResult;
|
|
} RESULTCODES;
|
|
typedef RESULTCODES *PRESULTCODES;
|
|
|
|
/* codeTerminate values (also passed to ExitList routines) */
|
|
|
|
#define TC_EXIT 0
|
|
#define TC_HARDERROR 1
|
|
#define TC_TRAP 2
|
|
#define TC_KILLPROCESS 3
|
|
|
|
ULONG APIENTRY DOSWAITCHILD(ULONG, ULONG, PRESULTCODES, PPID, PID);
|
|
UINT APIENTRY DOSSLEEP(ULONG);
|
|
|
|
/* DOSEXECPGM functions */
|
|
|
|
#define EXEC_SYNC 0
|
|
#define EXEC_ASYNC 1
|
|
#define EXEC_ASYNCRESULT 2
|
|
#define EXEC_TRACE 3
|
|
#define EXEC_BACKGROUND 4
|
|
#define EXEC_LOAD 5
|
|
|
|
ULONG APIENTRY DOSEXECPGM(PCHAR, ULONG, ULONG, PSZ, PSZ, PRESULTCODES, PSZ);
|
|
|
|
|
|
typedef struct tib2_s { /* System Specific Thread Info Block */
|
|
ULONG tib2_ultid; /* Thread I.D. */
|
|
ULONG tib2_ulpri; /* Thread priority */
|
|
ULONG tib2_version; /* Version number for this structure */
|
|
USHORT tib2_usMCCount; /* Must Complete count */
|
|
USHORT tib2_fMCForceFlag; /* Must Complete force flag */
|
|
} TIB2;
|
|
typedef TIB2 *PTIB2;
|
|
|
|
typedef struct tib_s { /* Thread Information Block (TIB) */
|
|
PVOID tib_pexchain; /* Head of exception handler chain */
|
|
PVOID tib_pstack; /* Pointer to base of stack */
|
|
PVOID tib_pstacklimit; /* Pointer to end of stack */
|
|
PTIB2 tib_ptib2; /* Pointer to system specific TIB */
|
|
ULONG tib_version; /* Version number for this TIB structure */
|
|
PVOID tib_arbpointer; /* A pointer for the user */
|
|
} TIB;
|
|
typedef TIB *PTIB;
|
|
|
|
typedef struct pib_s { /* Process Information Block (PIB) */
|
|
ULONG pib_ulpid; /* Process I.D. */
|
|
ULONG pib_ulppid; /* Parent process I.D. */
|
|
ULONG pib_hmte; /* Program (.EXE) module handle */
|
|
PCHAR pib_pchcmd; /* Command line pointer */
|
|
PCHAR pib_pchenv; /* Environment pointer */
|
|
ULONG pib_flstatus; /* Process' status bits */
|
|
ULONG pib_ultype; /* Process' type code */
|
|
} PIB;
|
|
typedef PIB *PPIB;
|
|
|
|
ULONG APIENTRY DOSGETTHREADINFO(PTIB *, PPIB *);
|
|
|
|
|
|
/* Global Info Seg */
|
|
|
|
typedef struct _GINFOSEG { /* gis */
|
|
ULONG time;
|
|
ULONG msecs;
|
|
UCHAR hour;
|
|
UCHAR minutes;
|
|
UCHAR seconds;
|
|
UCHAR hundredths;
|
|
UINT timezone;
|
|
UINT cusecTimerInterval;
|
|
UCHAR day;
|
|
UCHAR month;
|
|
UINT year;
|
|
UCHAR weekday;
|
|
UCHAR uchMajorVersion;
|
|
UCHAR uchMinorVersion;
|
|
UCHAR chRevisionLetter;
|
|
UCHAR sgCurrent;
|
|
UCHAR sgMax;
|
|
UCHAR cHugeShift;
|
|
UCHAR fProtectModeOnly;
|
|
UINT pidForeground;
|
|
UCHAR fDynamicSched;
|
|
UCHAR csecMaxWait;
|
|
UINT cmsecMinSlice;
|
|
UINT cmsecMaxSlice;
|
|
UINT bootdrive;
|
|
UCHAR amecRAS[32];
|
|
} GINFOSEG;
|
|
typedef GINFOSEG *PGINFOSEG;
|
|
|
|
/* Local Info Seg */
|
|
|
|
typedef struct _LINFOSEG { /* lis */
|
|
PID pidCurrent;
|
|
PID pidParent;
|
|
UINT prtyCurrent;
|
|
TID tidCurrent;
|
|
UINT sgCurrent;
|
|
UINT sgSub;
|
|
BOOL fForeground;
|
|
} LINFOSEG;
|
|
typedef LINFOSEG *PLINFOSEG;
|
|
|
|
/* Process Type codes (local info seg typeProcess field) */
|
|
|
|
#define PT_FULLSCREEN 0
|
|
#define PT_REALMODE 1
|
|
#define PT_WINDOWABLEVIO 2
|
|
#define PT_PM 3
|
|
#define PT_DETACHED 4
|
|
|
|
UINT APIENTRY DOSGETINFOSEG(PGINFOSEG *, PLINFOSEG *); /* correct?? */
|
|
|
|
/* extended attribute structures */
|
|
|
|
typedef struct _GEA { /* gea */
|
|
BYTE cbName; /* name length not including NULL */
|
|
CHAR szName[1]; /* attribute name */
|
|
} GEA;
|
|
typedef GEA *PGEA;
|
|
|
|
typedef struct _GEALIST { /* geal */
|
|
USHORT cbList; /* total bytes of structure including full list */
|
|
GEA list[1]; /* variable length GEA structures */
|
|
} GEALIST;
|
|
typedef GEALIST * PGEALIST;
|
|
|
|
typedef struct _FEA { /* fea */
|
|
BYTE bRsvd; /* reserved */
|
|
BYTE cbName; /* name length not including NULL */
|
|
USHORT cbValue; /* value length */
|
|
} FEA;
|
|
typedef FEA *PFEA;
|
|
|
|
typedef struct _FEALIST { /* feal */
|
|
USHORT cbList; /* total bytes of structure including full list */
|
|
FEA list[1]; /* variable length FEA structures */
|
|
} FEALIST;
|
|
typedef FEALIST * PFEALIST;
|
|
|
|
typedef struct _EAOP { /* eaop */
|
|
PGEALIST fpGEAList; /* general EA list */
|
|
PFEALIST fpFEAList; /* full EA list */
|
|
USHORT oError;
|
|
} EAOP;
|
|
typedef EAOP * PEAOP;
|
|
|
|
ULONG APIENTRY DOSOPEN(PSZ, PHFILE, PULONG, ULONG, ULONG, ULONG, ULONG, PEAOP, ULONG);
|
|
ULONG APIENTRY DOSCLOSE(HFILE);
|
|
ULONG APIENTRY DOSREAD(HFILE, PVOID, ULONG, PULONG);
|
|
ULONG APIENTRY DOSWRITE(HFILE, PVOID, ULONG, PULONG);
|
|
|
|
/* File time and date types */
|
|
|
|
typedef struct _FILESTATUS { /* fsts */
|
|
FDATE fdateCreation;
|
|
FTIME ftimeCreation;
|
|
FDATE fdateLastAccess;
|
|
FTIME ftimeLastAccess;
|
|
FDATE fdateLastWrite;
|
|
FTIME ftimeLastWrite;
|
|
ULONG cbFile;
|
|
ULONG cbFileAlloc;
|
|
USHORT attrFile;
|
|
} FILESTATUS;
|
|
typedef FILESTATUS *PFILESTATUS;
|
|
|
|
/* File locking/unlocking */
|
|
typedef struct _FILELOCK {
|
|
LONG lOffset;
|
|
LONG lRange;
|
|
} FILELOCK;
|
|
typedef FILELOCK *PFILELOCK;
|
|
|
|
typedef SHANDLE HDIR; /* hdir */
|
|
typedef HDIR *PHDIR;
|
|
|
|
/* DosOpen() open flags */
|
|
|
|
#define FILE_OPEN 0x0001
|
|
#define FILE_TRUNCATE 0x0002
|
|
#define FILE_CREATE 0x0010
|
|
|
|
/* DosOpen/DosSetFHandState flags */
|
|
|
|
#define OPEN_ACCESS_READONLY 0x0000
|
|
#define OPEN_ACCESS_WRITEONLY 0x0001
|
|
#define OPEN_ACCESS_READWRITE 0x0002
|
|
#define OPEN_SHARE_DENYREADWRITE 0x0010
|
|
#define OPEN_SHARE_DENYWRITE 0x0020
|
|
#define OPEN_SHARE_DENYREAD 0x0030
|
|
#define OPEN_SHARE_DENYNONE 0x0040
|
|
#define OPEN_FLAGS_NOINHERIT 0x0080
|
|
#define OPEN_FLAGS_FAIL_ON_ERROR 0x2000
|
|
#define OPEN_FLAGS_WRITE_THROUGH 0x4000
|
|
#define OPEN_FLAGS_DASD 0x8000
|
|
|
|
/* new DosQueryFHState flags from DCR 'Add full 32-bit support for runtime
|
|
libraries.' NAMES TENTATIVE AND SUBJECT TO CHANGE. STAY AWAY. */
|
|
|
|
#define OPEN_FLAGS_CONSOLE 0x00080000
|
|
#define OPEN_FLAGS_RAWMODE 0x00100000
|
|
#define OPEN_FLAGS_EOF 0x00200000
|
|
|
|
/* HANDTYPE values */
|
|
#define HANDTYPE_FILE 0x00
|
|
#define HANDTYPE_DEVICE 0x01
|
|
#define HANDTYPE_PIPE 0x02
|
|
#define HANDTYPE_NETWORK 0x80
|
|
|
|
ULONG APIENTRY DOSDELETE(PSZ, ULONG);
|
|
ULONG APIENTRY DOSDUPHANDLE(HFILE, PHFILE);
|
|
ULONG APIENTRY DOSQUERYFHSTATE(HFILE, PULONG);
|
|
ULONG APIENTRY DOSQUERYHTYPE(HFILE, PULONG, PULONG);
|
|
ULONG APIENTRY DOSFINDFIRST(PSZ, PHDIR, ULONG, PFILEFINDBUF, ULONG, PULONG, ULONG);
|
|
ULONG APIENTRY DOSFINDNEXT(HDIR, PFILEFINDBUF, ULONG, PULONG);
|
|
ULONG APIENTRY DOSFINDCLOSE(HDIR);
|
|
ULONG APIENTRY DOSSETFHSTATE(HFILE, ULONG);
|
|
ULONG APIENTRY DOSSETFILESIZE(HFILE, ULONG);
|
|
ULONG APIENTRY DOSSETFILEPTR(HFILE, ULONG, LONG, PULONG);
|
|
ULONG APIENTRY DOSSETFILELOCKS(HFILE, PFILELOCK, PFILELOCK);
|
|
ULONG APIENTRY DOSMOVE(PSZ, PSZ, ULONG);
|
|
ULONG APIENTRY DOSCREATEDIR(PSZ, PEAOP, ULONG);
|
|
ULONG APIENTRY DOSDELETEDIR(PSZ, ULONG);
|
|
ULONG APIENTRY DOSQUERYCURRENTDISK(PULONG, PULONG);
|
|
ULONG APIENTRY DOSSETDEFAULTDISK(ULONG);
|
|
ULONG APIENTRY DOSSETCURRENTDIR(PSZ, ULONG);
|
|
ULONG APIENTRY DOSQUERYCURRENTDIR(ULONG, PBYTE, PULONG);
|
|
ULONG APIENTRY DOSSETMAXFH(ULONG);
|
|
ULONG APIENTRY DOSQUERYFILEINFO(HFILE, ULONG, PFILESTATUS, ULONG);
|
|
ULONG APIENTRY DOSQUERYPATHINFO(PCHAR, ULONG, PFILESTATUS, ULONG);
|
|
ULONG APIENTRY DOSSETPATHINFO(PCHAR, ULONG, PFILESTATUS, ULONG, ULONG);
|
|
ULONG APIENTRY DOSSETFILEINFO(HFILE, ULONG, PFILESTATUS, ULONG);
|
|
ULONG APIENTRY DOSCREATEPIPE(PULONG, PULONG, ULONG);
|
|
ULONG APIENTRY DOSQUERYSYSINFO(ULONG, ULONG, PBYTE, ULONG);
|
|
ULONG APIENTRY DOSRESETBUFFER(HFILE);
|
|
|
|
/* File attribute flags */
|
|
#define FILE_NORMAL 0x0000
|
|
#define FILE_READONLY 0x0001
|
|
#define FILE_HIDDEN 0x0002
|
|
#define FILE_SYSTEM 0x0004
|
|
#define FILE_DIRECTORY 0x0010
|
|
#define FILE_ARCHIVED 0x0020
|
|
|
|
/* DosSetFilePtr() file position codes */
|
|
|
|
#define FILE_BEGIN 0x0000
|
|
#define FILE_CURRENT 0x0001
|
|
#define FILE_END 0x0002
|
|
|
|
/* 386 allocation API */
|
|
|
|
/* Access protection */
|
|
#define PAG_READ 0x00000001 /* read access */
|
|
#define PAG_WRITE 0x00000002 /* write access */
|
|
#define PAG_EXECUTE 0x00000004 /* execute access */
|
|
#define PAG_GUARD 0x00000008 /* guard protection */
|
|
|
|
/* Commit */
|
|
#define PAG_COMMIT 0x00000010 /* commit storage */
|
|
#define PAG_DECOMMIT 0x00000020 /* decommit storage */
|
|
|
|
/* Allocation attributes */
|
|
#define OBJ_TILE 0x00000040 /* tile object */
|
|
#define OBJ_PROTECTED 0x00000080 /* protect object
|
|
#define OBJ_GETTABLE 0x00000100 /* gettable by other processes */
|
|
#define OBJ_GIVEABLE 0x00000200 /* giveable to other processes */
|
|
|
|
/* Standard memory values for C lib (heap and mthread code) */
|
|
#define _NEWREGION (PAG_READ | PAG_WRITE | OBJ_TILE)
|
|
#define _COMMIT (PAG_COMMIT | PAG_READ | PAG_WRITE)
|
|
#define _DECOMMIT (PAG_DECOMMIT)
|
|
|
|
UINT APIENTRY DOSALLOCMEM(PVOID, UINT, UINT, UINT);
|
|
UINT APIENTRY DOSFREEMEM(PVOID);
|
|
UINT APIENTRY DOSSETMEM(PVOID, UINT, UINT);
|
|
|
|
/*** Semaphore support */
|
|
|
|
UINT APIENTRY DOSCREATEMUTEXSEM (PSZ, PHMTX, ULONG, ULONG);
|
|
UINT APIENTRY DOSQUERYMUTEXSEM (HMTX, PID *, TID *, PULONG);
|
|
UINT APIENTRY DOSREQUESTMUTEXSEM (HMTX, ULONG);
|
|
UINT APIENTRY DOSRELEASEMUTEXSEM (HMTX);
|
|
|
|
/*** Time support */
|
|
|
|
typedef struct _DATETIME { /* date */
|
|
UCHAR hours;
|
|
UCHAR minutes;
|
|
UCHAR seconds;
|
|
UCHAR hundredths;
|
|
UCHAR day;
|
|
UCHAR month;
|
|
USHORT year;
|
|
SHORT timezone;
|
|
UCHAR weekday;
|
|
} DATETIME;
|
|
typedef DATETIME *PDATETIME;
|
|
|
|
ULONG APIENTRY DOSGETDATETIME(PDATETIME);
|
|
|
|
/* Exception/signal API */
|
|
|
|
/* Argument values for DOSSETSIGNALEXCEPTIONFOCUS */
|
|
|
|
#define SIG_UNSETFOCUS 0
|
|
#define SIG_SETFOCUS 1
|
|
|
|
/* Include type and constant definitions */
|
|
|
|
#include <except.h>
|
|
|
|
/* Prototypes */
|
|
|
|
UINT APIENTRY DOSRAISEEXCEPTION(_PEXCEPTIONREPORTRECORD);
|
|
UINT APIENTRY DOSSENDSIGNALEXCEPTION(PID, ULONG);
|
|
UINT APIENTRY DOSUNWINDEXCEPTION(_PEXCEPTIONREGISTRATIONRECORD, PVOID, _PEXCEPTIONREPORTRECORD);
|
|
UINT APIENTRY DOSSETSIGNALEXCEPTIONFOCUS(ULONG, PULONG);
|
|
UINT APIENTRY DOSENTERMUSTCOMPLETE(PULONG);
|
|
UINT APIENTRY DOSEXITMUSTCOMPLETE(PULONG);
|
|
UINT APIENTRY DOSACKNOWLEDGESIGNALEXCEPTION(ULONG);
|
|
|
|
UINT APIENTRY DOSGETVERSION(PUINT); /* correct? */
|
|
UINT APIENTRY DOSGETMACHINEMODE(PBYTE); /* correct? */
|
|
|
|
ULONG APIENTRY DOSDEVCONFIG(PULONG, ULONG, ULONG);
|
|
|
|
/* indices for DosQuerySysInfo */
|
|
#define _QSV_MAX_PATH_LENGTH 1
|
|
#define _QSV_MAX_TEXT_SESSIONS 2
|
|
#define _QSV_MAX_PM_SESSIONS 3
|
|
#define _QSV_MAX_VDM_SESSIONS 4
|
|
#define _QSV_BOOT_DRIVE 5 /* 1=A, 2=B, etc. */
|
|
#define _QSV_DYN_PRI_VARIATION 6 /* 0=Absolute, 1=Dynamic */
|
|
#define _QSV_MAX_WAIT 7 /* seconds */
|
|
#define _QSV_MIN_SLICE 8 /* milli seconds */
|
|
#define _QSV_MAX_SLICE 9 /* milli seconds */
|
|
#define _QSV_PAGE_SIZE 10
|
|
#define _QSV_VERSION_MAJOR 11 /* OS revision (major) */
|
|
#define _QSV_VERSION_MINOR 12 /* OS revision (minor) */
|
|
#define _QSV_VERSION_REVISION 13 /* Revision letter */
|
|
|
|
|
|
/* restore default alignment */
|
|
|
|
#pragma pack()
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#define _INC_DOSCALLS
|
|
#endif /* _INC_DOSCALLS */
|