Annotation of os2sdk/include/bsedos.h, revision 1.1

1.1     ! root        1: /***************************************************************************\
        !             2: *
        !             3: * Module Name: BSEDOS.H
        !             4: *
        !             5: * OS/2 Base Include File
        !             6: *
        !             7: * This file is compatible with OS/2 version 1.0.
        !             8: *
        !             9: * Copyright (c) 1988  Microsoft Corporation
        !            10: *
        !            11: *****************************************************************************
        !            12: *
        !            13: * Subcomponents marked with "+" are partially included by default
        !            14: *
        !            15: *   #define:                To include:
        !            16: *
        !            17: * + INCL_DOSPROCESS         Process and thread support
        !            18: *   INCL_DOSINFOSEG         InfoSeg support
        !            19: * + INCL_DOSFILEMGR         File Management
        !            20: * + INCL_DOSMEMMGR          Memory Management
        !            21: * + INCL_DOSSEMAPHORES      Semaphore support
        !            22: * + INCL_DOSDATETIME        Date/Time and Timer support
        !            23: *   INCL_DOSMODULEMGR       Module manager
        !            24: * + INCL_DOSRESOURCES       Resource support
        !            25: *   INCL_DOSNLS             National Language Support
        !            26: *   INCL_DOSMISC            Miscellaneous
        !            27: *   INCL_DOSSIGNALS         Signals
        !            28: *   INCL_DOSMONITORS        Monitors
        !            29: *   INCL_DOSQUEUES          Queues
        !            30: *   INCL_DOSSESMGR          Session Manager Support
        !            31: *
        !            32: \***************************************************************************/
        !            33: 
        !            34: #define INCL_DOSINCLUDED
        !            35: 
        !            36: #ifdef INCL_DOS
        !            37: 
        !            38: #define INCL_DOSPROCESS
        !            39: #define INCL_DOSINFOSEG
        !            40: #define INCL_DOSFILEMGR
        !            41: #define INCL_DOSMEMMGR
        !            42: #define INCL_DOSMISC
        !            43: #define INCL_DOSSEMAPHORES
        !            44: #define INCL_DOSDATETIME
        !            45: #define INCL_DOSMODULEMGR
        !            46: #define INCL_DOSRESOURCES
        !            47: #define INCL_DOSNLS
        !            48: #define INCL_DOSSIGNALS
        !            49: #define INCL_DOSMONITORS
        !            50: #define INCL_DOSQUEUES
        !            51: #define INCL_DOSSESMGR
        !            52: 
        !            53: #endif /* INCL_DOS */
        !            54: 
        !            55: #ifdef INCL_ERRORS
        !            56: #define INCL_DOSERRORS
        !            57: #endif /* INCL_ERRORS */
        !            58: 
        !            59: #if (defined(INCL_DOSPROCESS) | !defined(INCL_NOCOMMON))
        !            60: 
        !            61: /*** General services */
        !            62: 
        !            63: USHORT APIENTRY DosBeep(USHORT, USHORT);
        !            64: 
        !            65: /*** Process and Thread support */
        !            66: 
        !            67: VOID APIENTRY DosExit(USHORT, USHORT);
        !            68: 
        !            69: /* DosExit codes */
        !            70: 
        !            71: #define EXIT_THREAD         0
        !            72: #define EXIT_PROCESS        1
        !            73: 
        !            74: #endif /* common INCL_DOSPROCESS stuff */
        !            75: 
        !            76: #ifdef INCL_DOSPROCESS
        !            77: 
        !            78: typedef struct _PIDINFO {         /* pidi */
        !            79:     PID pid;
        !            80:     TID tid;
        !            81:     PID pidParent;
        !            82: } PIDINFO;
        !            83: typedef PIDINFO FAR *PPIDINFO;
        !            84: 
        !            85: USHORT APIENTRY DosCreateThread(VOID (FAR *)(VOID), PTID, PBYTE);
        !            86: USHORT APIENTRY DosResumeThread(TID);
        !            87: USHORT APIENTRY DosSuspendThread(TID);
        !            88: 
        !            89: /* Action code values */
        !            90: 
        !            91: #define DCWA_PROCESS        0
        !            92: #define DCWA_PROCESSTREE    1
        !            93: 
        !            94: /* Wait option values */
        !            95: 
        !            96: #define DCWW_WAIT   0
        !            97: #define DCWW_NOWAIT 1
        !            98: 
        !            99: typedef struct _RESULTCODES {     /* resc */
        !           100:     USHORT codeTerminate;
        !           101:     USHORT codeResult;
        !           102: } RESULTCODES;
        !           103: typedef RESULTCODES FAR *PRESULTCODES;
        !           104: 
        !           105: USHORT APIENTRY DosCWait(USHORT, USHORT, PRESULTCODES, PPID, PID);
        !           106: USHORT APIENTRY DosSleep(ULONG);
        !           107: 
        !           108: /* codeTerminate values (also passed to ExitList routines) */
        !           109: 
        !           110: #define TC_EXIT          0
        !           111: #define TC_HARDERROR     1
        !           112: #define TC_TRAP          2
        !           113: #define TC_KILLPROCESS   3
        !           114: 
        !           115: VOID   APIENTRY DosEnterCritSec(VOID);
        !           116: VOID   APIENTRY DosExitCritSec(VOID);
        !           117: USHORT APIENTRY DosExitList(USHORT, VOID (FAR *)(USHORT));
        !           118: 
        !           119: /* DosExitList functions */
        !           120: 
        !           121: #define EXLST_ADD       1
        !           122: #define EXLST_REMOVE    2
        !           123: #define EXLST_EXIT      3
        !           124: 
        !           125: USHORT APIENTRY DosExecPgm(PCHAR, USHORT, USHORT, PSZ, PSZ, PRESULTCODES, PSZ);
        !           126: 
        !           127: /* DosExecPgm functions */
        !           128: 
        !           129: #define EXEC_SYNC           0
        !           130: #define EXEC_ASYNC          1
        !           131: #define EXEC_ASYNCRESULT    2
        !           132: #define EXEC_TRACE          3
        !           133: #define EXEC_BACKGROUND     4
        !           134: #define EXEC_LOAD           5
        !           135: 
        !           136: USHORT APIENTRY DosGetPid(PPIDINFO);
        !           137: 
        !           138: USHORT APIENTRY DosGetPrty(USHORT, PUSHORT, USHORT);
        !           139: USHORT APIENTRY DosSetPrty(USHORT, USHORT, SHORT, USHORT);
        !           140: 
        !           141: /* Priority scopes */
        !           142: 
        !           143: #define PRTYS_PROCESS       0
        !           144: #define PRTYS_PROCESSTREE   1
        !           145: #define PRTYS_THREAD        2
        !           146: 
        !           147: /* Priority classes */
        !           148: 
        !           149: #define PRTYC_NOCHANGE      0
        !           150: #define PRTYC_IDLETIME      1
        !           151: #define PRTYC_REGULAR       2
        !           152: #define PRTYC_TIMECRITICAL  3
        !           153: 
        !           154: USHORT APIENTRY DosKillProcess(USHORT, PID);
        !           155: 
        !           156: #define DKP_PROCESS         0
        !           157: #define DKP_PROCESSTREE     1
        !           158: 
        !           159: #endif /* INCL_DOSPROCESS */
        !           160: 
        !           161: 
        !           162: /*** InfoSeg support */
        !           163: 
        !           164: #ifdef INCL_DOSINFOSEG
        !           165: 
        !           166: /* Global Info Seg */
        !           167: 
        !           168: typedef struct _GINFOSEG {      /* gis */
        !           169:     ULONG   time;
        !           170:     ULONG   msecs;
        !           171:     UCHAR   hour;
        !           172:     UCHAR   minutes;
        !           173:     UCHAR   seconds;
        !           174:     UCHAR   hundredths;
        !           175:     USHORT  timezone;
        !           176:     USHORT  cusecTimerInterval;
        !           177:     UCHAR   day;
        !           178:     UCHAR   month;
        !           179:     USHORT  year;
        !           180:     UCHAR   weekday;
        !           181:     UCHAR   uchMajorVersion;
        !           182:     UCHAR   uchMinorVersion;
        !           183:     UCHAR   chRevisionLetter;
        !           184:     UCHAR   sgCurrent;
        !           185:     UCHAR   sgMax;
        !           186:     UCHAR   cHugeShift;
        !           187:     UCHAR   fProtectModeOnly;
        !           188:     USHORT  pidForeground;
        !           189:     UCHAR   fDynamicSched;
        !           190:     UCHAR   csecMaxWait;
        !           191:     USHORT  cmsecMinSlice;
        !           192:     USHORT  cmsecMaxSlice;
        !           193:     USHORT  bootdrive;
        !           194:     UCHAR   amecRAS[32];
        !           195: } GINFOSEG;
        !           196: typedef GINFOSEG FAR *PGINFOSEG;
        !           197: 
        !           198: /* Local Info Seg */
        !           199: 
        !           200: typedef struct _LINFOSEG {      /* lis */
        !           201:     PID     pidCurrent;
        !           202:     PID     pidParent;
        !           203:     USHORT  prtyCurrent;
        !           204:     TID     tidCurrent;
        !           205:     USHORT  sgCurrent;
        !           206:     USHORT  sgSub;
        !           207:     BOOL    fForeground;
        !           208: } LINFOSEG;
        !           209: typedef LINFOSEG FAR *PLINFOSEG;
        !           210: 
        !           211: /* Process Type codes (local info seg typeProcess field) */
        !           212: 
        !           213: #define PT_FULLSCREEN       0
        !           214: #define PT_REALMODE         1
        !           215: #define PT_WINDOWABLEVIO    2
        !           216: #define PT_PM               3
        !           217: #define PT_DETACHED         4
        !           218: 
        !           219: USHORT APIENTRY DosGetInfoSeg(PSEL, PSEL);
        !           220: 
        !           221: /* Helper macros used to convert selector to PINFOSEG or LINFOSEG */
        !           222: 
        !           223: #define MAKEPGINFOSEG(sel)  ((PGINFOSEG)MAKEP(sel, 0))
        !           224: #define MAKEPLINFOSEG(sel)  ((PLINFOSEG)MAKEP(sel, 0))
        !           225: 
        !           226: #endif /* INCL_DOSINFOSEG */
        !           227: 
        !           228: #if (defined(INCL_DOSFILEMGR) | !defined(INCL_NOCOMMON))
        !           229: 
        !           230: /*** File manager */
        !           231: 
        !           232: USHORT APIENTRY DosOpen(PSZ, PHFILE, PUSHORT, ULONG, USHORT, USHORT, USHORT, ULONG);
        !           233: USHORT APIENTRY DosClose(HFILE);
        !           234: USHORT APIENTRY DosRead(HFILE, PVOID, USHORT, PUSHORT);
        !           235: USHORT APIENTRY DosWrite(HFILE, PVOID, USHORT, PUSHORT);
        !           236: 
        !           237: /* File time and date types */
        !           238: 
        !           239: typedef struct _FILESTATUS {    /* fsts */
        !           240:     FDATE  fdateCreation;
        !           241:     FTIME  ftimeCreation;
        !           242:     FDATE  fdateLastAccess;
        !           243:     FTIME  ftimeLastAccess;
        !           244:     FDATE  fdateLastWrite;
        !           245:     FTIME  ftimeLastWrite;
        !           246:     ULONG  cbFile;
        !           247:     ULONG  cbFileAlloc;
        !           248:     USHORT attrFile;
        !           249: } FILESTATUS;
        !           250: typedef FILESTATUS FAR *PFILESTATUS;
        !           251: 
        !           252: typedef struct _FSALLOCATE {    /* fsalloc */
        !           253:     ULONG  idFileSystem;
        !           254:     ULONG  cSectorUnit;
        !           255:     ULONG  cUnit;
        !           256:     ULONG  cUnitAvail;
        !           257:     USHORT cbSector;
        !           258: } FSALLOCATE;
        !           259: typedef FSALLOCATE FAR *PFSALLOCATE;
        !           260: 
        !           261: typedef SHANDLE HDIR;        /* hdir */
        !           262: typedef HDIR FAR *PHDIR;
        !           263: 
        !           264: USHORT APIENTRY DosDelete(PSZ, ULONG);
        !           265: USHORT APIENTRY DosDupHandle(HFILE, PHFILE);
        !           266: 
        !           267: USHORT APIENTRY DosQFHandState(HFILE, PUSHORT);
        !           268: USHORT APIENTRY DosSetFHandState(HFILE, USHORT);
        !           269: USHORT APIENTRY DosQHandType(HFILE, PUSHORT, PUSHORT);
        !           270: 
        !           271: USHORT APIENTRY DosReadAsync (HFILE, PULONG, PUSHORT, PVOID, USHORT, PUSHORT);
        !           272: USHORT APIENTRY DosWriteAsync(HFILE, PULONG, PUSHORT, PVOID, USHORT, PUSHORT);
        !           273: 
        !           274: USHORT APIENTRY DosFindFirst(PSZ, PHDIR, USHORT, PFILEFINDBUF, USHORT, PUSHORT, ULONG);
        !           275: USHORT APIENTRY DosFindNext(HDIR, PFILEFINDBUF, USHORT, PUSHORT);
        !           276: USHORT APIENTRY DosFindClose(HDIR);
        !           277: 
        !           278: USHORT APIENTRY DosNewSize(HFILE, ULONG);
        !           279: USHORT APIENTRY DosBufReset(HFILE);
        !           280: 
        !           281: USHORT APIENTRY DosChgFilePtr(HFILE, LONG, USHORT, PULONG);
        !           282: 
        !           283: USHORT APIENTRY DosFileLocks(HFILE, PLONG, PLONG);
        !           284: 
        !           285: USHORT APIENTRY DosMove(PSZ, PSZ, ULONG);
        !           286: USHORT APIENTRY DosMkdir(PSZ, ULONG);
        !           287: USHORT APIENTRY DosRmdir(PSZ, ULONG);
        !           288: USHORT APIENTRY DosSelectDisk(USHORT);
        !           289: USHORT APIENTRY DosQCurDisk(PUSHORT, PULONG);
        !           290: 
        !           291: USHORT APIENTRY DosChdir(PSZ, ULONG);
        !           292: USHORT APIENTRY DosQCurDir(USHORT, PBYTE, PUSHORT);
        !           293: 
        !           294: USHORT APIENTRY DosQFSInfo(USHORT, USHORT, PBYTE, USHORT);
        !           295: USHORT APIENTRY DosSetFSInfo(USHORT, USHORT, PBYTE, USHORT);
        !           296: USHORT APIENTRY DosQVerify(PUSHORT);
        !           297: USHORT APIENTRY DosSetVerify(USHORT);
        !           298: USHORT APIENTRY DosSetMaxFH(USHORT);
        !           299: 
        !           300: USHORT APIENTRY DosQFileInfo(HFILE, USHORT, PFILESTATUS, USHORT);
        !           301: USHORT APIENTRY DosSetFileInfo(HFILE, USHORT, PFILESTATUS, USHORT);
        !           302: 
        !           303: USHORT APIENTRY DosQFileMode(PSZ, PUSHORT, ULONG);
        !           304: USHORT APIENTRY DosSetFileMode(PSZ, USHORT, ULONG);
        !           305: 
        !           306: #endif /* common INCL_DOSFILEMGR */
        !           307: 
        !           308: #if (defined(INCL_DOSMEMMGR) | !defined(INCL_NOCOMMON))
        !           309: /*** Memory management */
        !           310: 
        !           311: USHORT APIENTRY DosAllocSeg(USHORT, PSEL, USHORT);
        !           312: USHORT APIENTRY DosReallocSeg(USHORT, SEL);
        !           313: USHORT APIENTRY DosFreeSeg(SEL);
        !           314: USHORT APIENTRY DosGiveSeg(SEL, PID, PSEL);
        !           315: USHORT APIENTRY DosGetSeg(SEL);
        !           316: 
        !           317: /* Segment attribute flags (used with DosAllocSeg) */
        !           318: 
        !           319: #define SEG_GIVEABLE        0x0001
        !           320: #define SEG_GETTABLE        0x0002
        !           321: #define SEG_DISCARDABLE     0x0004
        !           322: 
        !           323: #endif /* common INCL_DOSMEMMGR */
        !           324: 
        !           325: #ifdef INCL_DOSMEMMGR
        !           326: 
        !           327: USHORT APIENTRY DosAllocHuge(USHORT, USHORT, PSEL, USHORT, USHORT);
        !           328: USHORT APIENTRY DosReallocHuge(USHORT, USHORT, SEL);
        !           329: USHORT APIENTRY DosGetHugeShift(PUSHORT);
        !           330: 
        !           331: USHORT APIENTRY DosAllocShrSeg(USHORT, PSZ, PSEL);
        !           332: 
        !           333: USHORT APIENTRY DosLockSeg(SEL);
        !           334: USHORT APIENTRY DosUnlockSeg(SEL);
        !           335: 
        !           336: USHORT APIENTRY DosGetShrSeg(PSZ, PSEL);
        !           337: 
        !           338: USHORT APIENTRY DosMemAvail(PULONG);
        !           339: USHORT APIENTRY DosCreateCSAlias(SEL, PSEL);
        !           340: 
        !           341: USHORT APIENTRY DosSubAlloc(SEL, PUSHORT, USHORT);
        !           342: USHORT APIENTRY DosSubFree(SEL, USHORT, USHORT);
        !           343: USHORT APIENTRY DosSubSet(SEL, USHORT, USHORT);
        !           344: 
        !           345: #endif /* INCL_DOSMEMMGR */
        !           346: 
        !           347: #if (defined(INCL_DOSSEMAPHORES) | !defined(INCL_NOCOMMON))
        !           348: 
        !           349: /*** Semaphore support */
        !           350: 
        !           351: USHORT APIENTRY DosSemClear(HSEM);
        !           352: USHORT APIENTRY DosSemSet(HSEM);
        !           353: USHORT APIENTRY DosSemWait(HSEM, LONG);
        !           354: USHORT APIENTRY DosSemSetWait(HSEM, LONG);
        !           355: USHORT APIENTRY DosSemRequest(HSEM, LONG);
        !           356: 
        !           357: #endif /* common INCL_DOSSEMAPHORES */
        !           358: 
        !           359: #ifdef INCL_DOSSEMAPHORES
        !           360: 
        !           361: typedef LHANDLE HSYSSEM;          /* hssm */
        !           362: typedef HSYSSEM FAR *PHSYSSEM;
        !           363: 
        !           364: USHORT APIENTRY DosCreateSem(USHORT, PHSYSSEM, PSZ);
        !           365: 
        !           366: #define CSEM_PRIVATE    0
        !           367: #define CSEM_PUBLIC     1
        !           368: 
        !           369: USHORT APIENTRY DosOpenSem(PHSEM, PSZ);
        !           370: USHORT APIENTRY DosCloseSem(HSEM);
        !           371: 
        !           372: typedef struct _MUXSEM {        /* mxs */
        !           373:     USHORT zero;
        !           374:     HSEM   hsem;
        !           375: } MUXSEM;
        !           376: typedef MUXSEM FAR *PMUXSEM;
        !           377: 
        !           378: typedef struct _MUXSEMLIST {    /* mxsl */
        !           379:     USHORT  cmxs;
        !           380:     MUXSEM  amxs[16];
        !           381: } MUXSEMLIST;
        !           382: typedef MUXSEMLIST FAR *PMUXSEMLIST;
        !           383: 
        !           384: /*
        !           385:  * Since a MUXSEMLIST structure is actually a variable length
        !           386:  * structure, the following macro may be used to define a MUXSEMLIST
        !           387:  * structure having size elements, named "name".
        !           388:  */
        !           389: #define DEFINEMUXSEMLIST(name, size) \
        !           390:     struct {                         \
        !           391:         USHORT cmxs;                 \
        !           392:         MUXSEM amxs[size];           \
        !           393:     } name;
        !           394: 
        !           395: /*
        !           396:  * This function actually takes a far pointer to a MUXSEMLIST structure
        !           397:  * as its second parameter, but in order to allow its use with the
        !           398:  * DEFINEMUXSEMLIST macro, it is declared here as PVOID.
        !           399:  */
        !           400: USHORT APIENTRY DosMuxSemWait(PUSHORT, PVOID, LONG);
        !           401: 
        !           402: #endif /* INCL_DOSSEMAPHORES */
        !           403: 
        !           404: #if (defined(INCL_DOSDATETIME) | !defined(INCL_NOCOMMON))
        !           405: 
        !           406: /*** Time support */
        !           407: 
        !           408: typedef struct _DATETIME {    /* date */
        !           409:     UCHAR   hours;
        !           410:     UCHAR   minutes;
        !           411:     UCHAR   seconds;
        !           412:     UCHAR   hundredths;
        !           413:     UCHAR   day;
        !           414:     UCHAR   month;
        !           415:     USHORT  year;
        !           416:     SHORT   timezone;
        !           417:     UCHAR   weekday;
        !           418: } DATETIME;
        !           419: typedef DATETIME FAR *PDATETIME;
        !           420: 
        !           421: USHORT APIENTRY DosGetDateTime(PDATETIME);
        !           422: USHORT APIENTRY DosSetDateTime(PDATETIME);
        !           423: 
        !           424: #endif /* common INCL_DOSDATETIME */
        !           425: 
        !           426: #ifdef INCL_DOSDATETIME
        !           427: 
        !           428: typedef SHANDLE HTIMER;
        !           429: typedef HTIMER FAR *PHTIMER;
        !           430: 
        !           431: USHORT APIENTRY DosTimerAsync(ULONG, HSEM, PHTIMER);
        !           432: USHORT APIENTRY DosTimerStart(ULONG, HSEM, PHTIMER);
        !           433: USHORT APIENTRY DosTimerStop(HTIMER);
        !           434: 
        !           435: #endif /* INCL_DOSDATETIME */
        !           436: 
        !           437: 
        !           438: /*** Module manager */
        !           439: 
        !           440: #ifdef INCL_DOSMODULEMGR
        !           441: 
        !           442: USHORT APIENTRY DosLoadModule(PSZ, USHORT, PSZ, PHMODULE);
        !           443: USHORT APIENTRY DosFreeModule(HMODULE);
        !           444: USHORT APIENTRY DosGetProcAddr(HMODULE, PSZ, PPFN);
        !           445: USHORT APIENTRY DosGetModHandle(PSZ, PHMODULE);
        !           446: USHORT APIENTRY DosGetModName(HMODULE, USHORT, PCHAR);
        !           447: 
        !           448: #endif /* INCL_DOSMODULEMGR */
        !           449: 
        !           450: 
        !           451: /*** NLS Support */
        !           452: 
        !           453: #ifdef INCL_DOSNLS
        !           454: 
        !           455: typedef struct _COUNTRYCODE { /* ctryc */
        !           456:     USHORT country;
        !           457:     USHORT codepage;
        !           458: } COUNTRYCODE;
        !           459: typedef COUNTRYCODE FAR *PCOUNTRYCODE;
        !           460: 
        !           461: typedef struct _COUNTRYINFO { /* ctryi */
        !           462:     USHORT country;
        !           463:     USHORT codepage;
        !           464:     USHORT fsDateFmt;
        !           465:     CHAR   szCurrency[5];
        !           466:     CHAR   szThousandsSeparator[2];
        !           467:     CHAR   szDecimal[2];
        !           468:     CHAR   szDateSeparator[2];
        !           469:     CHAR   szTimeSeparator[2];
        !           470:     UCHAR  fsCurrencyFmt;
        !           471:     UCHAR  cDecimalPlace;
        !           472:     UCHAR  fsTimeFmt;
        !           473:     USHORT abReserved1[2];
        !           474:     CHAR   szDataSeparator[2];
        !           475:     USHORT abReserved2[5];
        !           476: } COUNTRYINFO;
        !           477: typedef COUNTRYINFO FAR *PCOUNTRYINFO;
        !           478: 
        !           479: USHORT APIENTRY DosGetCtryInfo(USHORT, PCOUNTRYCODE, PCOUNTRYINFO, PUSHORT);
        !           480: USHORT APIENTRY DosGetDBCSEv(USHORT, PCOUNTRYCODE, PCHAR);
        !           481: USHORT APIENTRY DosCaseMap(USHORT, PCOUNTRYCODE, PCHAR);
        !           482: USHORT APIENTRY DosGetCollate(USHORT, PCOUNTRYCODE, PCHAR, PUSHORT);
        !           483: USHORT APIENTRY DosGetCp(USHORT, PUSHORT, PUSHORT);
        !           484: USHORT APIENTRY DosSetCp(USHORT, USHORT);
        !           485: 
        !           486: #endif /* INCL_DOSNLS */
        !           487: 
        !           488: 
        !           489: /*** Signal support */
        !           490: 
        !           491: #ifdef INCL_DOSSIGNALS
        !           492: 
        !           493: /* Signal Numbers for DosSetSigHandler  */
        !           494: 
        !           495: #define SIG_CTRLC           1       /* Control C            */
        !           496: #define SIG_BROKENPIPE      2       /* Broken Pipe          */
        !           497: #define SIG_KILLPROCESS     3       /* Program Termination  */
        !           498: #define SIG_CTRLBREAK       4       /* Control Break        */
        !           499: #define SIG_PFLG_A          5       /* Process Flag A       */
        !           500: #define SIG_PFLG_B          6       /* Process Flag B       */
        !           501: #define SIG_PFLG_C          7       /* Process Flag C       */
        !           502: #define SIG_CSIGNALS        8       /* number of signals plus one */
        !           503: 
        !           504: /* Flag Numbers for DosFlagProcess      */
        !           505: 
        !           506: #define PFLG_A              0       /* Process Flag A       */
        !           507: #define PFLG_B              1       /* Process Flag B       */
        !           508: #define PFLG_C              2       /* Process Flag C       */
        !           509: 
        !           510: /* Signal actions */
        !           511: 
        !           512: #define SIGA_KILL           0
        !           513: #define SIGA_IGNORE         1
        !           514: #define SIGA_ACCEPT         2
        !           515: #define SIGA_ERROR          3
        !           516: #define SIGA_ACKNOWLEDGE    4
        !           517: 
        !           518: /* DosHoldSignal constants */
        !           519: 
        !           520: #define HLDSIG_ENABLE       0
        !           521: #define HLDSIG_DISABLE      1
        !           522: 
        !           523: /* DosFlagProcess codes */
        !           524: 
        !           525: #define FLGP_SUBTREE        0
        !           526: #define FLGP_PID            1
        !           527: 
        !           528: typedef VOID (FAR PASCAL *PFNSIGHANDLER)(USHORT, USHORT);
        !           529: 
        !           530: USHORT APIENTRY DosSetSigHandler(PFNSIGHANDLER, PFNSIGHANDLER FAR *, PUSHORT, USHORT, USHORT);
        !           531: USHORT APIENTRY DosFlagProcess(PID, USHORT, USHORT, USHORT);
        !           532: USHORT APIENTRY DosHoldSignal(USHORT);
        !           533: USHORT APIENTRY DosSendSignal(USHORT, USHORT);
        !           534: 
        !           535: #endif /* INCL_DOSSIGNALS */
        !           536: 
        !           537: 
        !           538: /*** Monitor support */
        !           539: 
        !           540: #ifdef INCL_DOSMONITORS
        !           541: 
        !           542: typedef SHANDLE HMONITOR;    /* hmon */
        !           543: typedef HMONITOR FAR *PHMONITOR;
        !           544: 
        !           545: USHORT APIENTRY DosMonOpen(PSZ, PHMONITOR);
        !           546: USHORT APIENTRY DosMonClose(HMONITOR);
        !           547: USHORT APIENTRY DosMonReg(HMONITOR, PBYTE, PBYTE, USHORT, USHORT);
        !           548: USHORT APIENTRY DosMonRead(PBYTE, USHORT, PBYTE, PUSHORT);
        !           549: USHORT APIENTRY DosMonWrite(PBYTE, PBYTE, USHORT);
        !           550: 
        !           551: #endif /* INCL_DOSMONITORS */
        !           552: 
        !           553: 
        !           554: /*** Pipe and queue support */
        !           555: 
        !           556: #ifdef INCL_DOSQUEUES
        !           557: 
        !           558: typedef SHANDLE HQUEUE;  /* hq */
        !           559: typedef HQUEUE FAR *PHQUEUE;
        !           560: 
        !           561: USHORT APIENTRY DosMakePipe(PHFILE, PHFILE, USHORT);
        !           562: USHORT APIENTRY DosCloseQueue(HQUEUE);
        !           563: USHORT APIENTRY DosCreateQueue(PHQUEUE, USHORT, PSZ);
        !           564: USHORT APIENTRY DosOpenQueue(PUSHORT, PHQUEUE, PSZ);
        !           565: USHORT APIENTRY DosPeekQueue(HQUEUE, PULONG, PUSHORT, PULONG, PUSHORT, USHORT, PBYTE, HSEM);
        !           566: USHORT APIENTRY DosPurgeQueue(HQUEUE);
        !           567: USHORT APIENTRY DosQueryQueue(HQUEUE, PUSHORT);
        !           568: USHORT APIENTRY DosReadQueue(HQUEUE, PULONG, PUSHORT, PULONG, USHORT, USHORT, PBYTE, HSEM);
        !           569: USHORT APIENTRY DosWriteQueue(HQUEUE, USHORT, USHORT, PBYTE, USHORT);
        !           570: 
        !           571: #endif /* INCL_DOSQUEUES */
        !           572: 
        !           573: 
        !           574: /*** Miscellaneous functions */
        !           575: 
        !           576: #ifdef INCL_DOSMISC
        !           577: 
        !           578: USHORT APIENTRY DosError(USHORT);
        !           579: USHORT APIENTRY DosSetVec(USHORT, PFN, PPFN);
        !           580: USHORT APIENTRY DosGetMessage(PCHAR FAR *, USHORT, PCHAR, USHORT, USHORT, PSZ, PUSHORT);
        !           581: USHORT APIENTRY DosErrClass(USHORT, PUSHORT, PUSHORT, PUSHORT);
        !           582: USHORT APIENTRY DosInsMessage(PCHAR FAR *, USHORT, PSZ, USHORT, PCHAR, USHORT, PUSHORT);
        !           583: USHORT APIENTRY DosPutMessage(HFILE, USHORT, PCHAR);
        !           584: USHORT APIENTRY DosGetEnv(PUSHORT, PUSHORT);
        !           585: USHORT APIENTRY DosScanEnv(PSZ, PSZ  FAR *);
        !           586: USHORT APIENTRY DosSearchPath(USHORT, PSZ, PSZ, PBYTE, USHORT);
        !           587: USHORT APIENTRY DosGetVersion(PUSHORT);
        !           588: USHORT APIENTRY DosGetMachineMode(PBYTE);
        !           589: 
        !           590: #endif /* INCL_DOSMISC */
        !           591: 
        !           592: 
        !           593: /*** Session manager support */
        !           594: 
        !           595: #ifdef INCL_DOSSESMGR
        !           596: 
        !           597: typedef struct _STARTDATA {   /* stdata */
        !           598:     USHORT cb;
        !           599:     USHORT Related;
        !           600:     USHORT FgBg;
        !           601:     USHORT TraceOpt;
        !           602:     PSZ    PgmTitle;
        !           603:     PSZ    PgmName;
        !           604:     PBYTE  PgmInputs;
        !           605:     PBYTE  TermQ;
        !           606: } STARTDATA;
        !           607: typedef STARTDATA FAR *PSTARTDATA;
        !           608: 
        !           609: typedef struct _STATUSDATA { /* stsdata */
        !           610:     USHORT cb;
        !           611:     USHORT SelectInd;
        !           612:     USHORT BindInd;
        !           613: } STATUSDATA;
        !           614: typedef STATUSDATA FAR *PSTATUSDATA;
        !           615: 
        !           616: USHORT APIENTRY DosStartSession(PSTARTDATA, PUSHORT, PUSHORT);
        !           617: USHORT APIENTRY DosSetSession(USHORT, PSTATUSDATA);
        !           618: USHORT APIENTRY DosSelectSession(USHORT, ULONG);
        !           619: USHORT APIENTRY DosStopSession(USHORT, USHORT, ULONG);
        !           620: 
        !           621: #endif /* INCL_DOSSESMGR */
        !           622: 
        !           623: 
        !           624: /*** Device support */
        !           625: 
        !           626: #ifdef INCL_DOSDEVICES
        !           627: 
        !           628: USHORT APIENTRY DosDevConfig(PVOID, USHORT, USHORT);
        !           629: USHORT APIENTRY DosDevIOCtl(PVOID, PVOID, USHORT, USHORT, USHORT);
        !           630: USHORT APIENTRY DosSystemService(USHORT, PVOID, PVOID);
        !           631: 
        !           632: USHORT APIENTRY DosCLIAccess(VOID);
        !           633: USHORT APIENTRY DosPortAccess(USHORT, USHORT, USHORT, USHORT);
        !           634: USHORT APIENTRY DosPhysicalDisk(USHORT, PBYTE, USHORT, PBYTE, USHORT);
        !           635: 
        !           636: #endif /* INCL_DOSDEVICES */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.