⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsedos.mh

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 MH
📖 第 1 页 / 共 4 页
字号:
#define QSV_INT10ENABLED          31
#define QSV_MAX                   QSV_INT10ENABLED

#define DSP_IMPLIEDCUR   1
#define DSP_PATHREF      2
#define DSP_IGNORENETERR 4

#define SPU_DISABLESUPPRESSION 0
#define SPU_ENABLESUPPRESSION  1
#define SPU_NOLOGCHANGE        2

#define BEGIN_LIBPATH 1
#define END_LIBPATH   2
#define LIBPATHSTRICT 3

APIRET APIENTRY DosErrClass(ULONG,PULONG,PULONG,PULONG);
APIRET APIENTRY DosError(ULONG);
APIRET APIENTRY DosGetMessage(PCHAR*,ULONG,PCHAR,ULONG,ULONG,PCSZ,PULONG);
APIRET APIENTRY DosInsertMessage(PCHAR*,ULONG,PCSZ,ULONG,PCHAR,ULONG,PULONG);
APIRET APIENTRY DosPutMessage(HFILE,ULONG,PCHAR);
APIRET APIENTRY DosQueryExtLIBPATH(PSZ,ULONG);
APIRET APIENTRY DosQueryMessageCP(PCHAR,ULONG,PCSZ,PULONG);
APIRET APIENTRY DosQuerySysInfo(ULONG,ULONG,PVOID,ULONG);
APIRET APIENTRY DosScanEnv(PCSZ,PSZ*);
APIRET APIENTRY DosSearchPath(ULONG,PCSZ,PCSZ,PBYTE,ULONG);
APIRET APIENTRY DosSetExtLIBPATH(PCSZ,ULONG);
APIRET APIENTRY DosSuppressPopUps(ULONG,CHAR);

#endif

#if defined(INCL_DOSSESMGR) || defined(INCL_DOSFILEMGR)

#define FAPPTYP_NOTSPEC         0x0000
#define FAPPTYP_NOTWINDOWCOMPAT 0x0001
#define FAPPTYP_WINDOWCOMPAT    0x0002
#define FAPPTYP_WINDOWAPI       0x0003
#define FAPPTYP_BOUND           0x0008
#define FAPPTYP_DLL             0x0010
#define FAPPTYP_DOS             0x0020
#define FAPPTYP_PHYSDRV         0x0040
#define FAPPTYP_VIRTDRV         0x0080
#define FAPPTYP_PROTDLL         0x0100
#define FAPPTYP_WINDOWSREAL     0x0200
#define FAPPTYP_WINDOWSPROT     0x0400
#define FAPPTYP_WINDOWSPROT31   0x1000
#define FAPPTYP_32BIT           0x4000
#define FAPPTYP_EXETYPE         0x0003

#endif

#ifdef INCL_DOSSESMGR

#define SSF_RELATED_INDEPENDENT 0
#define SSF_RELATED_CHILD       1

#define SSF_FGBG_FORE          0
#define SSF_FGBG_BACK          1

#define SSF_TRACEOPT_NONE      0
#define SSF_TRACEOPT_TRACE     1
#define SSF_TRACEOPT_TRACEALL  2

#define SSF_INHERTOPT_SHELL    0
#define SSF_INHERTOPT_PARENT   1

#define SSF_TYPE_DEFAULT       0
#define SSF_TYPE_FULLSCREEN    1
#define SSF_TYPE_WINDOWABLEVIO 2
#define SSF_TYPE_PM            3
#define SSF_TYPE_VDM           4
#define SSF_TYPE_GROUP         5
#define SSF_TYPE_DLL           6
#define SSF_TYPE_WINDOWEDVDM   7
#define SSF_TYPE_PDD           8
#define SSF_TYPE_VDD           9

#define SSF_CONTROL_VISIBLE     0x0000
#define SSF_CONTROL_INVISIBLE   0x0001
#define SSF_CONTROL_MAXIMIZE    0x0002
#define SSF_CONTROL_MINIMIZE    0x0004
#define SSF_CONTROL_NOAUTOCLOSE 0x0008
#define SSF_CONTROL_SETPOS      0x8000

#define SET_SESSION_UNCHANGED      0
#define SET_SESSION_SELECTABLE     1
#define SET_SESSION_NON_SELECTABLE 2
#define SET_SESSION_BOND           1
#define SET_SESSION_NO_BOND        2

#define STOP_SESSION_SPECIFIED     0
#define STOP_SESSION_ALL           1

typedef struct _STATUSDATA {
    USHORT Length;
    USHORT SelectInd;
    USHORT BondInd;
} STATUSDATA, *PSTATUSDATA;

typedef struct _STARTDATA {
    USHORT Length;
    USHORT Related;
    USHORT FgBg;
    USHORT TraceOpt;
    PSZ    PgmTitle;
    PSZ    PgmName;
    PBYTE  PgmInputs;
    PBYTE  TermQ;
    PBYTE  Environment;
    USHORT InheritOpt;
    USHORT SessionType;
    PSZ    IconFile;
    ULONG  PgmHandle;
    USHORT PgmControl;
    USHORT InitXPos;
    USHORT InitYPos;
    USHORT InitXSize;
    USHORT InitYSize;
    USHORT Reserved;
    PSZ    ObjectBuffer;
    ULONG  ObjectBuffLen;
} STARTDATA, *PSTARTDATA;

APIRET APIENTRY DosQueryAppType(PCSZ,PULONG);
APIRET APIENTRY DosSelectSession(ULONG);
APIRET APIENTRY DosSetSession(ULONG,PSTATUSDATA);
APIRET APIENTRY DosStartSession(PSTARTDATA,PULONG,PPID);
APIRET APIENTRY DosStopSession(ULONG,ULONG);

#endif

#ifdef INCL_DOSDEVICES

#define DEVINFO_PRINTER     0
#define DEVINFO_RS232       1
#define DEVINFO_FLOPPY      2
#define DEVINFO_COPROCESSOR 3
#define DEVINFO_SUBMODEL    4
#define DEVINFO_MODEL       5
#define DEVINFO_ADAPTER     6

#define INFO_COUNT_PARTITIONABLE_DISKS 1
#define INFO_GETIOCTLHANDLE            2
#define INFO_FREEIOCTLHANDLE           3

APIRET APIENTRY DosDevConfig(PVOID,ULONG);
APIRET APIENTRY DosDevIOCtl(HFILE,ULONG,ULONG,PVOID,ULONG,PULONG,PVOID,ULONG,PULONG);
APIRET APIENTRY DosPhysicalDisk(ULONG,PVOID,ULONG,PVOID,ULONG);

#endif

#ifdef INCL_DOSMVDM

typedef LHANDLE HVDD, *PHVDD;

APIRET APIENTRY DosCloseVDD(HVDD);
APIRET APIENTRY DosOpenVDD(PCSZ,PHVDD);
APIRET APIENTRY DosQueryDOSProperty(SGID,PCSZ,ULONG,PCSZ);
APIRET APIENTRY DosRequestVDD(HVDD,SGID,ULONG,ULONG,PVOID,ULONG,PVOID);
APIRET APIENTRY DosSetDOSProperty(SGID,PCSZ,ULONG,PCSZ);

#endif

#ifdef INCL_DOSPROFILE

#define PROF_ORDINAL 133

#define PROF_SYSTEM  0
#define PROF_USER    1
#define PROF_USEDD   2
#define PROF_KERNEL  4
#define PROF_VERBOSE 8
#define PROF_ENABLE  16

#define PROF_ALLOC         0
#define PROF_CLEAR         1
#define PROF_ON            2
#define PROF_OFF           3
#define PROF_DUMP          4
#define PROF_FREE          5
#define PROF_SHIFT         2
#define PROF_MOD_NAME_SIZE 10
#define PROF_END_OF_DATA   13

#define QS_PROCESS   0x0001
#define QS_SEMAPHORE 0x0002
#define QS_MTE       0x0004
#define QS_FILESYS   0x0008
#define QS_SHMEMORY  0x0010
#define QS_DISK      0x0020
#define QS_HWCONFIG  0x0040
#define QS_NAMEDPIPE 0x0080
#define QS_THREAD    0x0100
#define QS_MODVER    0x0200

#define QS_SUPPORTED (QS_PROCESS|QS_SEMAPHORE|QS_MTE|QS_FILESYS|QS_SHMEMORY|QS_MODVER)

#define QS_SYSSEM_WAITING           0x01
#define QS_SYSSEM_MUXWAITING        0x02
#define QS_SYSSEM_OWNER_DIED        0x04
#define QS_SYSSEM_EXCLUSIVE         0x08
#define QS_SYSSEM_NAME_CLEANUP      0x10
#define QS_SYSSEM_THREAD_OWNER_DIED 0x20
#define QS_SYSSEM_EXITLIST_OWNER    0x40

#define QS_DC_SEM_SHARED 0x0001
#define QS_DCMW_WAIT_ANY 0x0002
#define QS_DCMW_WAIT_ALL 0x0004
#define QS_DCM_MUTEX_SEM 0x0008
#define QS_DCE_EVENT_SEM 0x0010
#define QS_DCMW_MUX_SEM  0x0020
#define QS_DC_SEM_PM     0x0040
#define QS_DE_POSTED     0x0040
#define QS_DM_OWNER_DIED 0x0080
#define QS_DMW_MTX_MUX   0x0100
#define QS_DHO_SEM_OPEN  0x0200
#define QS_DE_16BIT_MW   0x0400
#define QS_DCE_POSTONE   0x0800
#define QS_DCE_AUTORESET 0x1000

#define QS_END          0

#define PADSHORT USHORT pad_sh
#define PADCHAR  UCHAR  pad_ch

#define CMD_KI_RDCNT 0x63

typedef struct _QSGREC {
    ULONG cThrds;
    ULONG c32SSem;
    ULONG cMFTNodes;
} QSGREC;

typedef struct _QSTREC {
    ULONG     RecType;
    USHORT    tid;
    USHORT    slot;
    ULONG     sleepid;
    ULONG     priority;
    ULONG     systime;
    ULONG     usertime;
    UCHAR     state;
    PADCHAR;
    PADSHORT;
} QSTREC;

typedef struct _QSPREC {
    ULONG      RecType;
    QSTREC FAR *pThrdRec;
    USHORT     pid;
    USHORT     ppid;
    ULONG      type;
    ULONG      stat;
    ULONG      sgid;
    USHORT     hMte;
    USHORT     cTCB;
    ULONG      c32PSem;
    VOID   FAR *p32SemRec;
    USHORT     c16Sem;
    USHORT     cLib;
    USHORT     cShrMem;
    USHORT     cFH;
    USHORT FAR *p16SemRec;
    USHORT FAR *pLibRec;
    USHORT FAR *pShrMemRec;
    USHORT FAR *pFSRec;
} QSPREC;

typedef struct _QSS16REC {
    ULONG  NextRec;
    USHORT SysSemOwner ;
    UCHAR  SysSemFlag ;
    UCHAR  SysSemRefCnt ;
    UCHAR  SysSemProcCnt ;
    UCHAR  SysSemPad ;
    USHORT pad_sh;
    USHORT SemPtr;
    CHAR   SemName;
} QSS16REC;

typedef struct _QSS16HEADREC {
    ULONG SRecType;
    ULONG SpNextRec;
    ULONG S32SemRec;
    ULONG S16TblOff;
    ULONG pSem16Rec;
} QSS16HEADREC;

typedef struct _QSMREC {
    ULONG  MemNextRec;
    USHORT hmem;
    USHORT sel;
    USHORT refcnt;
    CHAR   Memname;
} QSMREC;

typedef struct _QSOPENQ {
    USHORT pidOpener;
    USHORT OpenCt;
} QSOPENQ;

typedef struct _QSEVENT {
    ULONG  *pMuxQ;
    USHORT PostCt;
} QSEVENT;

typedef struct _QSMUTEX {
    ULONG  *pMuxQ;
    USHORT ReqCt;
    USHORT SlotNum;
} QSMUTEX;

typedef struct _QSMUX {
    VOID   *pSemRec;
    USHORT cSemRec;
    USHORT WaitCt;
} QSMUX;

typedef union _QSHUN {
    QSEVENT qsSEvt;
    QSMUTEX qsSMtx;
    QSMUX   qsSMux;
} QSHUN;

typedef struct _QSS32REC {
    VOID      *pNextRec;
    USHORT    flags;
    PADSHORT;
    UCHAR     *pName;
    QSHUN     qsh;
    ULONG     blockid;
    USHORT    index;
    USHORT    OpenCt;
    QSOPENQ   OpenQ[1];
} QSS32REC;

typedef struct _QSLOBJREC {
    ULONG oaddr;
    ULONG osize;
    ULONG oflags;
} QSLOBJREC;

typedef struct _QSLREC {
    VOID      FAR *pNextRec;
    USHORT        hmte;
    USHORT        fFlat;
    ULONG         ctImpMod;
    ULONG         ctObj;
    QSLOBJREC FAR *pObjInfo;
    UCHAR     FAR *pName;
} QSLREC;

typedef _Packed struct _QSEXLREC {
    struct    _QSEXLREC *next;
    USHORT    hndmod;
    USHORT    pid;
    USHORT    type;
    ULONG     refcnt;
    ULONG     segcnt;
    VOID      *_reserved_;
    UCHAR FAR *name;
    ULONG     ModuleVersion;
    UCHAR FAR *ShortModName;
    ULONG     modref;
} QSEXLREC;

typedef struct _QSSFT {
    USHORT sfn;
    USHORT refcnt;
    USHORT flags;
    USHORT flags2;
    USHORT mode;
    USHORT mode2;
    ULONG  size;
    USHORT hVPB;
    USHORT attr;
    PADSHORT;
} QSSFT;

typedef struct _QSFREC {
    ULONG RecType;
    VOID  *pNextRec;
    ULONG ctSft;
    QSSFT *pSft;
} QSFREC;

typedef struct _QSPTRREC {
    QSGREC       *pGlobalRec;
    QSPREC       *pProcRec;
    QSS16HEADREC *p16SemRec;
    QSS32REC     *p32SemRec;
    QSMREC       *pMemRec;
    QSLREC       *pLibRec;
    QSMREC       *pShrMemRec;
    QSFREC       *pFSRec;
} QSPTRREC;

typedef struct _CPUUTIL {
    ULONG ulTimeLow;
    ULONG ulTimeHigh;
    ULONG ulIdleLow;
    ULONG ulIdleHigh;
    ULONG ulBusyLow;
    ULONG ulBusyHigh;
    ULONG ulIntrLow;
    ULONG ulIntrHigh;
} CPUUTIL, *PCPUUTIL;

APIRET APIENTRY DosAliasPerfCtrs(ULONG,ULONG,PBYTE*,PULONG);
APIRET APIENTRY DosConfigurePerf(ULONG,ULONG,ULONG,ULONG,PCSZ,BOOL32);
APIRET APIENTRY DosDeconPerf(VOID);
APIRET APIENTRY DosPerfSysCall(ULONG,ULONG,ULONG,ULONG);
APIRET APIENTRY DosQuerySysState(ULONG,ULONG,PID,TID,PVOID,ULONG);
APIRET APIENTRY DosRegisterPerfCtrs(PBYTE,PBYTE,ULONG);
APIRET APIENTRY DosTmrQueryFreq(PULONG);
APIRET APIENTRY DosTmrQueryTime(PQWORD);

#endif

#ifdef INCL_DOSSPINLOCK

#define PROC_OFFLINE 0
#define PROC_ONLINE  1

typedef ULONG HSPINLOCK, *PHSPINLOCK;

VOID   APIENTRY DosAcquireSpinLock(HSPINLOCK);
APIRET APIENTRY DosCreateSpinLock(PHSPINLOCK);
APIRET APIENTRY DosFreeSpinLock(HSPINLOCK);
APIRET APIENTRY DosGetProcessorStatus(ULONG,PULONG);
APIRET APIENTRY DosPerfSysCall(ULONG,ULONG,ULONG,ULONG);
VOID   APIENTRY DosReleaseSpinLock(HSPINLOCK);
APIRET APIENTRY DosSetProcessorStatus(ULONG,ULONG);
APIRET APIENTRY DosTestPSD(PCSZ);

#endif

:include cplusepi.sp

#ifdef INCL_BDCALLS

#include <bdcalls.h>

#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -