/** * 2ine; an OS/2 emulator for Linux. * * Please see the file LICENSE.txt in the source's root directory. * * This file written by Ryan C. Gordon. */ #ifndef _INCL_DOSCALLS_H_ #define _INCL_DOSCALLS_H_ #include "os2types.h" #ifdef __cplusplus extern "C" { #endif #define CCHMAXPATH 260 #define CCHMAXPATHCOMP 256 enum { EXIT_THREAD, EXIT_PROCESS }; enum { QSV_MAX_PATH_LENGTH = 1, QSV_MAX_TEXT_SESSIONS, QSV_MAX_PM_SESSIONS, QSV_MAX_VDM_SESSIONS, QSV_BOOT_DRIVE, QSV_DYN_PRI_VARIATION, QSV_MAX_WAIT, QSV_MIN_SLICE, QSV_MAX_SLICE, QSV_PAGE_SIZE, QSV_VERSION_MAJOR, QSV_VERSION_MINOR, QSV_VERSION_REVISION, QSV_MS_COUNT, QSV_TIME_LOW, QSV_TIME_HIGH, QSV_TOTPHYSMEM, QSV_TOTRESMEM, QSV_TOTAVAILMEM, QSV_MAXPRMEM, QSV_MAXSHMEM, QSV_TIMER_INTERVAL, QSV_MAX_COMP_LENGTH, QSV_FOREGROUND_FS_SESSION, QSV_FOREGROUND_PROCESS }; #pragma pack(push, 1) typedef struct TIB2 { ULONG tib2_ultid; ULONG tib2_ulpri; ULONG tib2_version; USHORT tib2_usMCCount; USHORT tib2_fMCForceFlag; } TIB2, *PTIB2; typedef struct TIB { PVOID tib_pexchain; PVOID tib_pstack; PVOID tib_pstacklimit; PTIB2 tib_ptib2; ULONG tib_version; ULONG tib_ordinal; } TIB, *PTIB; #pragma pack(pop) typedef struct PIB { ULONG pib_ulpid; ULONG pib_ulppid; HMODULE pib_hmte; PCHAR pib_pchcmd; PCHAR pib_pchenv; ULONG pib_flstatus; ULONG pib_ultype; } PIB, *PPIB; typedef VOID APIENTRY FNEXITLIST(ULONG); typedef FNEXITLIST *PFNEXITLIST; enum { TC_EXIT, TC_HARDERROR, TC_TRAP, TC_KILLPROCESS, TC_EXCEPTION }; enum { EXLST_ADD = 1, EXLST_REMOVE, EXLST_EXIT }; typedef void *PEXCEPTIONREGISTRATIONRECORD; // !!! FIXME typedef struct { UCHAR hours; UCHAR minutes; UCHAR seconds; UCHAR hundredths; UCHAR day; UCHAR month; USHORT year; SHORT timezone; UCHAR weekday; } DATETIME, *PDATETIME; typedef void *PEAOP2; // !!! FIXME enum { FILE_EXISTED = 1, FILE_CREATED, FILE_TRUNCATED }; enum { FILE_OPEN = 0x01, FILE_TRUNCATE = 0x02, FILE_CREATE = 0x10 }; enum { FILE_NORMAL = 0x00, FILE_READONLY = 0x01, FILE_HIDDEN = 0x02, FILE_SYSTEM = 0x04, FILE_DIRECTORY = 0x10, FILE_ARCHIVED = 0x20 }; enum { OPEN_ACTION_FAIL_IF_EXISTS = 0x0000, OPEN_ACTION_OPEN_IF_EXISTS = 0x0001, OPEN_ACTION_REPLACE_IF_EXISTS = 0x0002, OPEN_ACTION_FAIL_IF_NEW = 0x0000, OPEN_ACTION_CREATE_IF_NEW = 0x0010, }; enum { OPEN_ACCESS_READONLY = 0x0000, OPEN_ACCESS_WRITEONLY = 0x0001, OPEN_ACCESS_READWRITE = 0x0002, OPEN_SHARE_DENYREADWRITE = 0x0010, OPEN_SHARE_DENYWRITE = 0x0020, OPEN_SHARE_DENYREAD = 0x0030, OPEN_SHARE_DENYNONE = 0x0040, OPEN_FLAGS_NOINHERIT = 0x0080, OPEN_FLAGS_NO_LOCALITY = 0x0000, OPEN_FLAGS_SEQUENTIAL = 0x0100, OPEN_FLAGS_RANDOM = 0x0200, OPEN_FLAGS_RANDOMSEQUENTIAL = 0x0300, OPEN_FLAGS_NO_CACHE = 0x1000, OPEN_FLAGS_FAIL_ON_ERROR = 0x2000, OPEN_FLAGS_WRITE_THROUGH = 0x4000, OPEN_FLAGS_DASD = 0x8000, OPEN_FLAGS_NONSPOOLED = 0x00040000, OPEN_FLAGS_PROTECTED_HANDLE = 0x40000000 }; enum { FILE_BEGIN, FILE_CURRENT, FILE_END }; enum { FIL_STANDARD = 1, FIL_QUERYEASIZE = 2, FIL_QUERYEASFROMLIST = 3, FIL_QUERYFULLNAME = 5 }; #pragma pack(push, 1) typedef struct { USHORT day : 5; USHORT month : 4; USHORT year : 7; } FDATE, *PFDATE; typedef struct { USHORT twosecs : 5; USHORT minutes : 6; USHORT hours : 5; } FTIME, *PFTIME; #pragma pack(pop) typedef struct { FDATE fdateCreation; FTIME ftimeCreation; FDATE fdateLastAccess; FTIME ftimeLastAccess; FDATE fdateLastWrite; FTIME ftimeLastWrite; ULONG cbFile; ULONG cbFileAlloc; ULONG attrFile; } FILESTATUS3, *PFILESTATUS3; typedef struct { FDATE fdateCreation; FTIME ftimeCreation; FDATE fdateLastAccess; FTIME ftimeLastAccess; FDATE fdateLastWrite; FTIME ftimeLastWrite; ULONG cbFile; ULONG cbFileAlloc; ULONG attrFile; ULONG cbList; } FILESTATUS4, *PFILESTATUS4; enum { CREATE_READY, CREATE_SUSPENDED }; enum { STACK_SPARSE = 0, STACK_COMMITTED = 2 }; typedef VOID APIENTRY FNTHREAD(ULONG); typedef FNTHREAD *PFNTHREAD; typedef struct { ULONG codeTerminate; ULONG codeResult; } RESULTCODES, *PRESULTCODES; typedef struct { USHORT codeTerminate; USHORT codeResult; } RESULTCODES16, *PRESULTCODES16; enum { EXEC_SYNC, EXEC_ASYNC, EXEC_ASYNCRESULT, EXEC_TRACE, EXEC_BACKGROUND, EXEC_LOAD, EXEC_ASYNCRESULTDB }; enum { DC_SEM_SHARED = 1 }; enum { DCMW_WAIT_ANY = (1<<1), DCMW_WAIT_ALL = (1<<2) }; enum { SEM_INDEFINITE_WAIT = -1, SEM_IMMEDIATE_RETURN = 0 }; enum { DCWW_WAIT, DCWW_NOWAIT }; enum { DCWA_PROCESS, DCWA_PROCESSTREE }; enum { DSPI_WRTTHRU = 0x10, }; enum { HDIR_CREATE = -1, HDIR_SYSTEM = 1 }; enum { MUST_HAVE_READONLY = ( (FILE_READONLY << 8) | FILE_READONLY ), MUST_HAVE_HIDDEN = ( (FILE_HIDDEN << 8) | FILE_HIDDEN ), MUST_HAVE_SYSTEM = ( (FILE_SYSTEM << 8) | FILE_SYSTEM), MUST_HAVE_DIRECTORY = ( (FILE_DIRECTORY << 8) | FILE_DIRECTORY ), MUST_HAVE_ARCHIVED = ( (FILE_ARCHIVED << 8) | FILE_ARCHIVED ) }; typedef struct { FDATE fdateCreation; FTIME ftimeCreation; FDATE fdateLastAccess; FTIME ftimeLastAccess; FDATE fdateLastWrite; FTIME ftimeLastWrite; ULONG cbFile; ULONG cbFileAlloc; USHORT attrFile; UCHAR cchName; CHAR achName[CCHMAXPATHCOMP]; } FILEFINDBUF, *PFILEFINDBUF; typedef struct { ULONG oNextEntryOffset; FDATE fdateCreation; FTIME ftimeCreation; FDATE fdateLastAccess; FTIME ftimeLastAccess; FDATE fdateLastWrite; FTIME ftimeLastWrite; ULONG cbFile; ULONG cbFileAlloc; ULONG attrFile; UCHAR cchName; CHAR achName[CCHMAXPATHCOMP]; } FILEFINDBUF3, *PFILEFINDBUF3; typedef struct { ULONG oNextEntryOffset; FDATE fdateCreation; FTIME ftimeCreation; FDATE fdateLastAccess; FTIME ftimeLastAccess; FDATE fdateLastWrite; FTIME ftimeLastWrite; ULONG cbFile; ULONG cbFileAlloc; ULONG attrFile; ULONG cbList; UCHAR cchName; CHAR achName[CCHMAXPATHCOMP]; } FILEFINDBUF4, *PFILEFINDBUF4; typedef struct { USHORT iType; USHORT cbName; USHORT cbFSDName; USHORT cbFSAData; UCHAR szName[1]; UCHAR szFSDName[1]; UCHAR rgFSAData[1]; } FSQBUFFER2, *PFSQBUFFER2; typedef struct { ULONG time; ULONG msecs; UCHAR hour; UCHAR minutes; UCHAR seconds; UCHAR hundredths; USHORT timezone; USHORT cusecTimerInterval; UCHAR day; UCHAR month; USHORT year; UCHAR weekday; UCHAR uchMajorVersion; UCHAR uchMinorVersion; UCHAR chRevisionLetter; UCHAR sgCurrent; UCHAR sgMax; UCHAR cHugeShift; UCHAR fProtectModeOnly; USHORT pidForeground; UCHAR fDynamicSched; UCHAR csecMaxWait; USHORT cmsecMinSlice; USHORT cmsecMaxSlice; USHORT bootdrive; UCHAR amecRAS[32]; UCHAR csgWindowableVioMax; UCHAR csgPMMax; } GINFOSEG; typedef struct { PID pidCurrent; PID pidParent; USHORT prtyCurrent; TID tidCurrent; USHORT sgCurrent; UCHAR rfProcStatus; UCHAR dummy1; BOOL fForeground; UCHAR typeProcess; UCHAR dummy2; SEL selEnvironment; USHORT offCmdLine; USHORT cbDataSegment; USHORT cbStack; USHORT cbHeap; HMODULE hmod; SEL selDS; } LINFOSEG; enum { DEVINFO_PRINTER, DEVINFO_RS232, DEVINFO_FLOPPY, DEVINFO_COPROCESSOR, DEVINFO_SUBMODEL, DEVINFO_MODEL, DEVINFO_ADAPTER }; enum { FAPPTYP_NOTSPEC = 0x0000, FAPPTYP_NOTWINDOWCOMPAT = 0x0001, FAPPTYP_WINDOWCOMPAT = 0x0002, FAPPTYP_WINDOWAPI = 0x0003, FAPPTYP_BOUND = 0x0008, FAPPTYP_DLL = 0x0010, FAPPTYP_DOS = 0x0020, FAPPTYP_PHYSDRV = 0x0040, FAPPTYP_VIRTDRV = 0x0080, FAPPTYP_PROTDLL = 0x0100, FAPPTYP_WINDOWSREAL = 0x0200, FAPPTYP_WINDOWSPROT = 0x0400, FAPPTYP_WINDOWSPROT31 =0x1000, FAPPTYP_32BIT = 0x4000 }; enum { BEGIN_LIBPATH = 1, END_LIBPATH = 2 }; typedef void *PCONTEXTRECORD; // !!! FIXME // DosQueryHeaderInfo() is an undocumented OS/2 API that is exported from DOSCALLS. Java uses it. // This isn't mentioned in the docs or the SDK (beyond the ordinal being listed). I got the basic details // from Odin32, which lists it in their os2newapi.h header. enum { QHINF_EXEINFO = 1, QHINF_READRSRCTBL, QHINF_READFILE, QHINF_LIBPATHLENGTH, QHINF_LIBPATH, QHINF_FIXENTRY, QHINF_STE, QHINF_MAPSEL }; OS2EXPORT APIRET OS2API DosQueryHeaderInfo(HMODULE hmod, ULONG ulIndex, PVOID pvBuffer, ULONG cbBuffer, ULONG ulSubFunction) OS2APIINFO(582); // This is also undocumented (thanks, EDM/2!). Of course, Java uses it. OS2EXPORT APIRET OS2API DosQuerySysState(ULONG func, ULONG arg1, ULONG pid, ULONG _res_, PVOID buf, ULONG bufsz) OS2APIINFO(368); // This is also undocumented (no idea about this at all, including function params). Of course, Java uses it. OS2EXPORT APIRET OS2API DosR3ExitAddr(void) OS2APIINFO(553); // These are 16-bit APIs that aren't in the 4.5 toolkit headers. Yeah, Java uses them! Winging it. typedef int HSEM16, *PHSEM16; // !!! FIXME: int? Not short? OS2EXPORT APIRET16 OS2API16 DosSemRequest(PHSEM16 sem, LONG ms) OS2APIINFO(140); OS2EXPORT APIRET16 OS2API16 DosSemClear(PHSEM16 sem) OS2APIINFO(141); OS2EXPORT APIRET16 OS2API16 DosSemWait(PHSEM16 sem, LONG ms) OS2APIINFO(142); OS2EXPORT APIRET16 OS2API16 DosSemSet(PHSEM16 sem) OS2APIINFO(143); // These are only meant to be available to 16-bit binaries, some were removed in OS/2 2.0's SDK. OS2EXPORT APIRET16 OS2API16 Dos16GetVersion(PUSHORT pver) OS2APIINFO(92); OS2EXPORT APIRET16 OS2API16 Dos16GetMachineMode(PBYTE pmode) OS2APIINFO(49); OS2EXPORT APIRET16 OS2API16 Dos16GetHugeShift(PUSHORT pcount) OS2APIINFO(41); OS2EXPORT VOID OS2API16 Dos16Exit(USHORT action, USHORT result) OS2APIINFO(5); OS2EXPORT APIRET16 OS2API16 Dos16QHandType(USHORT handle, PUSHORT ptype, PUSHORT pflags) OS2APIINFO(77); OS2EXPORT APIRET16 OS2API16 Dos16AllocSeg(USHORT size, PUSHORT psel, USHORT flags) OS2APIINFO(34); OS2EXPORT APIRET16 OS2API16 Dos16ReallocSeg(USHORT size, USHORT sel) OS2APIINFO(38); OS2EXPORT APIRET16 OS2API16 Dos16FreeSeg(USHORT sel) OS2APIINFO(39); typedef struct { USHORT pid; USHORT tid; USHORT pidParent; } PIDINFO16, *PPIDINFO16; OS2EXPORT APIRET16 OS2API16 Dos16GetPID(PPIDINFO16 ppidinfo) OS2APIINFO(94); OS2EXPORT APIRET16 OS2API16 Dos16GetCp(USHORT cb, PUSHORT arCP, PUSHORT pcCP) OS2APIINFO(130); OS2EXPORT APIRET16 OS2API16 Dos16GetEnv(PUSHORT psel, PUSHORT pcmdoffset) OS2APIINFO(91); OS2EXPORT APIRET16 OS2API16 Dos16Write(USHORT h, PVOID buf, USHORT buflen, PUSHORT actual) OS2APIINFO(138); OS2EXPORT APIRET16 OS2API16 Dos16SetVec(USHORT vecnum, PFN routine, PVOID prevaddress) OS2APIINFO(89); /* prevaddress is a PFN * */ OS2EXPORT APIRET16 OS2API16 Dos16SetSigHandler(PFN routine, PVOID prevaddress, PUSHORT prevaction, USHORT action, USHORT signumber) OS2APIINFO(14); /* prevaddress is a PFNSIGHANDLER * routine is a PFNSIGHANDLER */ OS2EXPORT APIRET16 OS2API16 Dos16GetInfoSeg(PSEL globalseg, PSEL localseg) OS2APIINFO(8); OS2EXPORT APIRET16 OS2API16 Dos16QCurDisk(PUSHORT drivenum, PULONG drivemap) OS2APIINFO(72); OS2EXPORT APIRET16 OS2API16 Dos16QCurDir(USHORT drivenum, PBYTE dirpath, PUSHORT dirpathlen) OS2APIINFO(71); OS2EXPORT APIRET16 OS2API16 Dos16HoldSignal(USHORT action) OS2APIINFO(13); OS2EXPORT APIRET16 OS2API16 Dos16QFsInfo(USHORT drivenum, USHORT fslevel, PBYTE infobuf, USHORT infobufsize) OS2APIINFO(76); OS2EXPORT APIRET16 OS2API16 Dos16QFileMode(PCHAR filepath, PUSHORT attr, ULONG res) OS2APIINFO(75); OS2EXPORT APIRET16 OS2API16 Dos16Open(PSZ pszFileName, PUSHORT pHf, PULONG pulAction, ULONG cbFile, USHORT ulAttribute, USHORT fsOpenFlags, USHORT fsOpenMode, PEAOP2 peaop2) OS2APIINFO(70); OS2EXPORT APIRET16 OS2API16 Dos16FindFirst(PSZ pszFileSpec, PSHORT phdir, USHORT flAttribute, PVOID pfindbuf, USHORT cbBuf, PUSHORT pcFileNames, ULONG res) OS2APIINFO(64); OS2EXPORT APIRET16 OS2API16 Dos16ChDir(PSZ pszDir, ULONG res) OS2APIINFO(57); OS2EXPORT APIRET16 OS2API16 Dos16Close(USHORT hFile) OS2APIINFO(59); OS2EXPORT APIRET16 OS2API16 Dos16FindNext(USHORT hDir, PVOID pfindbuf, USHORT cbfindbuf, PUSHORT pcFilenames) OS2APIINFO(65); OS2EXPORT APIRET16 OS2API16 Dos16FindClose(USHORT hDir) OS2APIINFO(63); OS2EXPORT APIRET16 OS2API16 Dos16Delete(PSZ pszFile, ULONG res) OS2APIINFO(60); OS2EXPORT APIRET16 OS2API16 Dos16DupHandle(USHORT hFile, PUSHORT pHfile) OS2APIINFO(61); OS2EXPORT APIRET16 OS2API16 Dos16Read(USHORT hFile, PVOID pBuffer, USHORT cbRead, PUSHORT pcbActual) OS2APIINFO(137); OS2EXPORT APIRET16 OS2API16 Dos16ExecPgm(PCHAR pObjname, SHORT cbObjname, USHORT execFlag, PSZ pArg, PSZ pEnv, PRESULTCODES16 pRes, PSZ pName) OS2APIINFO(144); OS2EXPORT APIRET16 OS2API16 Dos16CWait(USHORT action, USHORT option, PRESULTCODES16 pres, PUSHORT ppid, USHORT pid) OS2APIINFO(2); OS2EXPORT APIRET16 OS2API16 Dos16ChgFilePtr(USHORT handle, LONG distance, USHORT whence, PULONG newoffset) OS2APIINFO(58); OS2EXPORT APIRET16 OS2API16 Dos16Beep(USHORT freq, USHORT dur) OS2APIINFO(50); // !!! FIXME: these should probably get sorted alphabetically and/or grouped // !!! FIXME: into areas of functionality, but for now, I'm just listing them // !!! FIXME: in the order I implemented them to get things running. OS2EXPORT APIRET OS2API DosDupHandle(HFILE hFile, PHFILE pHfile) OS2APIINFO(260); OS2EXPORT APIRET OS2API DosGetInfoBlocks(PTIB *pptib, PPIB *pppib) OS2APIINFO(312); OS2EXPORT APIRET OS2API DosQuerySysInfo(ULONG iStart, ULONG iLast, PVOID pBuf, ULONG cbBuf) OS2APIINFO(348); OS2EXPORT APIRET OS2API DosQueryModuleName(HMODULE hmod, ULONG cbName, PCHAR pch) OS2APIINFO(320); OS2EXPORT APIRET OS2API DosScanEnv(PSZ pszName, PSZ *ppszValue) OS2APIINFO(227); OS2EXPORT APIRET OS2API DosWrite(HFILE hFile, PVOID pBuffer, ULONG cbWrite, PULONG pcbActual) OS2APIINFO(282); OS2EXPORT VOID OS2API DosExit(ULONG action, ULONG result) OS2APIINFO(234); OS2EXPORT APIRET OS2API DosExitList(ULONG ordercode, PFNEXITLIST pfn) OS2APIINFO(296); OS2EXPORT APIRET OS2API DosCreateEventSem(PSZ pszName, PHEV phev, ULONG flAttr, BOOL32 fState) OS2APIINFO(324); OS2EXPORT APIRET OS2API DosCreateMutexSem(PSZ pszName, PHMTX phmtx, ULONG flAttr, BOOL32 fState) OS2APIINFO(331); OS2EXPORT APIRET OS2API DosSetExceptionHandler(PEXCEPTIONREGISTRATIONRECORD pERegRec) OS2APIINFO(354); OS2EXPORT APIRET OS2API DosUnsetExceptionHandler(PEXCEPTIONREGISTRATIONRECORD pERegRec) OS2APIINFO(355); OS2EXPORT ULONG OS2API DosFlatToSel(VOID) OS2APIINFO(425); OS2EXPORT APIRET OS2API DosSetSignalExceptionFocus(BOOL32 flag, PULONG pulTimes) OS2APIINFO(378); OS2EXPORT APIRET OS2API DosSetRelMaxFH(PLONG pcbReqCount, PULONG pcbCurMaxFH) OS2APIINFO(382); OS2EXPORT APIRET OS2API DosAllocMem(PPVOID ppb, ULONG cb, ULONG flag) OS2APIINFO(299); OS2EXPORT APIRET OS2API DosSubSetMem(PVOID pbBase, ULONG flag, ULONG cb) OS2APIINFO(344); OS2EXPORT APIRET OS2API DosSubAllocMem(PVOID pbBase, PPVOID ppb, ULONG cb) OS2APIINFO(345); OS2EXPORT APIRET OS2API DosQueryHType(HFILE hFile, PULONG pType, PULONG pAttr) OS2APIINFO(224); OS2EXPORT APIRET OS2API DosSetMem(PVOID pb, ULONG cb, ULONG flag) OS2APIINFO(305); OS2EXPORT APIRET OS2API DosGetDateTime(PDATETIME pdt) OS2APIINFO(230); OS2EXPORT APIRET OS2API DosOpen(PSZ pszFileName, PHFILE pHf, PULONG pulAction, ULONG cbFile, ULONG ulAttribute, ULONG fsOpenFlags, ULONG fsOpenMode, PEAOP2 peaop2) OS2APIINFO(273); OS2EXPORT APIRET OS2API DosRequestMutexSem(HMTX hmtx, ULONG ulTimeout) OS2APIINFO(334); OS2EXPORT APIRET OS2API DosReleaseMutexSem(HMTX hmtx) OS2APIINFO(335); OS2EXPORT APIRET OS2API DosSetFilePtr(HFILE hFile, LONG ib, ULONG method, PULONG ibActual) OS2APIINFO(256); OS2EXPORT APIRET OS2API DosRead(HFILE hFile, PVOID pBuffer, ULONG cbRead, PULONG pcbActual) OS2APIINFO(281); OS2EXPORT APIRET OS2API DosClose(HFILE hFile) OS2APIINFO(257); OS2EXPORT APIRET OS2API DosEnterMustComplete(PULONG pulNesting) OS2APIINFO(380); OS2EXPORT APIRET OS2API DosExitMustComplete(PULONG pulNesting) OS2APIINFO(381); OS2EXPORT APIRET OS2API DosQueryPathInfo(PSZ pszPathName, ULONG ulInfoLevel, PVOID pInfoBuf, ULONG cbInfoBuf) OS2APIINFO(223); OS2EXPORT APIRET OS2API DosQueryFileInfo(HFILE hf, ULONG ulInfoLevel, PVOID pInfo, ULONG cbInfoBuf) OS2APIINFO(279); OS2EXPORT APIRET OS2API DosCreateThread(PTID ptid, PFNTHREAD pfn, ULONG param, ULONG flag, ULONG cbStack) OS2APIINFO(311); OS2EXPORT APIRET OS2API DosExecPgm(PCHAR pObjname, LONG cbObjname, ULONG execFlag, PSZ pArg, PSZ pEnv, PRESULTCODES pRes, PSZ pName) OS2APIINFO(283); OS2EXPORT APIRET OS2API DosResetEventSem(HEV hev, PULONG pulPostCt) OS2APIINFO(327); OS2EXPORT APIRET OS2API DosPostEventSem(HEV hev) OS2APIINFO(328); OS2EXPORT APIRET OS2API DosCloseEventSem(HEV hev) OS2APIINFO(326); OS2EXPORT APIRET OS2API DosWaitEventSem(HEV hev, ULONG ulTimeout) OS2APIINFO(329); OS2EXPORT APIRET OS2API DosQueryEventSem(HEV hev, PULONG pulPostCt) OS2APIINFO(330); OS2EXPORT APIRET OS2API DosFreeMem(PVOID pb) OS2APIINFO(304); OS2EXPORT APIRET OS2API DosWaitChild(ULONG action, ULONG option, PRESULTCODES pres, PPID ppid, PID pid) OS2APIINFO(280); OS2EXPORT APIRET OS2API DosWaitThread(PTID ptid, ULONG option) OS2APIINFO(349); OS2EXPORT APIRET OS2API DosSleep(ULONG msec) OS2APIINFO(229); OS2EXPORT APIRET OS2API DosSubFreeMem(PVOID pbBase, PVOID pb, ULONG cb) OS2APIINFO(346); OS2EXPORT APIRET OS2API DosDelete(PSZ pszFile) OS2APIINFO(259); OS2EXPORT APIRET OS2API DosQueryCurrentDir(ULONG disknum, PBYTE pBuf, PULONG pcbBuf) OS2APIINFO(274); OS2EXPORT APIRET OS2API DosSetPathInfo(PSZ pszPathName, ULONG ulInfoLevel, PVOID pInfoBuf, ULONG cbInfoBuf, ULONG flOptions) OS2APIINFO(219); OS2EXPORT APIRET OS2API DosQueryModuleHandle(PSZ pszModname, PHMODULE phmod) OS2APIINFO(319); OS2EXPORT APIRET OS2API DosQueryProcAddr(HMODULE hmod, ULONG ordinal, PSZ pszName, PFN* ppfn) OS2APIINFO(321); OS2EXPORT APIRET OS2API DosQueryCp(ULONG cb, PULONG arCP, PULONG pcCP) OS2APIINFO(291); OS2EXPORT APIRET OS2API DosOpenL(PSZ pszFileName, PHFILE pHf, PULONG pulAction, LONGLONG cbFile, ULONG ulAttribute, ULONG fsOpenFlags, ULONG fsOpenMode, PEAOP2 peaop2) OS2APIINFO(981); OS2EXPORT APIRET OS2API DosFindFirst(PSZ pszFileSpec, PHDIR phdir, ULONG flAttribute, PVOID pfindbuf, ULONG cbBuf, PULONG pcFileNames, ULONG ulInfoLevel) OS2APIINFO(264); OS2EXPORT APIRET OS2API DosFindNext(HDIR hDir, PVOID pfindbuf, ULONG cbfindbuf, PULONG pcFilenames) OS2APIINFO(265); OS2EXPORT APIRET OS2API DosFindClose(HDIR hDir) OS2APIINFO(263); OS2EXPORT APIRET OS2API DosQueryCurrentDisk(PULONG pdisknum, PULONG plogical) OS2APIINFO(275); OS2EXPORT APIRET OS2API DosDevConfig(PVOID pdevinfo, ULONG item) OS2APIINFO(231); OS2EXPORT APIRET OS2API DosLoadModule(PSZ pszName, ULONG cbName, PSZ pszModname, PHMODULE phmod) OS2APIINFO(318); OS2EXPORT APIRET OS2API DosResetBuffer(HFILE hFile) OS2APIINFO(254); OS2EXPORT APIRET OS2API DosQueryAppType(PSZ pszName, PULONG pFlags) OS2APIINFO(323); OS2EXPORT APIRET OS2API DosAllocThreadLocalMemory(ULONG cb, PULONG *p) OS2APIINFO(454); OS2EXPORT APIRET OS2API DosFreeThreadLocalMemory(ULONG *p) OS2APIINFO(455); OS2EXPORT APIRET OS2API DosQueryFHState(HFILE hFile, PULONG pMode) OS2APIINFO(276); OS2EXPORT APIRET OS2API DosQueryExtLIBPATH(PSZ pszExtLIBPATH, ULONG flags) OS2APIINFO(874); OS2EXPORT APIRET OS2API DosSetMaxFH(ULONG cFH) OS2APIINFO(209); OS2EXPORT APIRET OS2API DosQueryThreadContext(TID tid, ULONG level, PCONTEXTRECORD pcxt) OS2APIINFO(877); OS2EXPORT ULONG OS2API DosSelToFlat(VOID) OS2APIINFO(426); OS2EXPORT APIRET OS2API DosCloseMutexSem(HMTX hmtx) OS2APIINFO(333); OS2EXPORT APIRET OS2API DosSetProcessCp(ULONG cp) OS2APIINFO(289); OS2EXPORT APIRET OS2API DosQueryFSAttach(PSZ pszDeviceName, ULONG ulOrdinal, ULONG ulFSAInfoLevel, PFSQBUFFER2 pfsqb, PULONG pcbBuffLength) OS2APIINFO(277); OS2EXPORT APIRET OS2API DosSetFileSize(HFILE hFile, ULONG cbSize) OS2APIINFO(272); OS2EXPORT APIRET OS2API DosSetCurrentDir(PSZ pszName) OS2APIINFO(255); OS2EXPORT APIRET OS2API DosBeep(ULONG freq, ULONG dur) OS2APIINFO(286); #ifdef __cplusplus } #endif #endif // end of doscalls.h ...