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

📄 bsedos.mh

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 MH
📖 第 1 页 / 共 4 页
字号:
/*
 *  bsedos.h    OS/2 Base DOS include file for 32-bit development.
 *
:include crwatcnt.sp
 */

#ifndef __BSEDOS_H__
#define __BSEDOS_H__

:include readonly.sp
:include cpluspro.sp

#ifdef INCL_DOS
    #define INCL_DOSDATETIME
    #define INCL_DOSDEVICES
    #define INCL_DOSEXCEPTIONS
    #define INCL_DOSFILEMGR
    #define INCL_DOSMEMMGR
    #define INCL_DOSMISC
    #define INCL_DOSMODULEMGR
    #define INCL_DOSMONITORS
    #define INCL_DOSMVDM
    #define INCL_DOSNLS
    #define INCL_DOSNMPIPES
    #define INCL_DOSPROCESS
    #define INCL_DOSPROFILE
    #define INCL_DOSQUEUES
    #define INCL_DOSRESOURCES
    #define INCL_DOSSEMAPHORES
    #define INCL_DOSSESMGR
#endif

#define CCHMAXPATH          260
#define CCHMAXPATHCOMP      256

#if defined(INCL_DOSPROCESS) || !defined(INCL_NOCOMMON)

#define EXIT_THREAD      0
#define EXIT_PROCESS     1

APIRET APIENTRY DosBeep(ULONG,ULONG);
VOID   APIENTRY DosExit(ULONG,ULONG);

#endif

#ifdef INCL_DOSPROCESS

#define DosCwait          DosWaitChild
#define DosSetPrty        DosSetPriority

#define EXEC_SYNC          0
#define EXEC_ASYNC         1
#define EXEC_ASYNCRESULT   2
#define EXEC_TRACE         3
#define EXEC_BACKGROUND    4
#define EXEC_LOAD          5
#define EXEC_ASYNCRESULTDB 6

#define PRTYC_NOCHANGE         0
#define PRTYC_IDLETIME         1
#define PRTYC_REGULAR          2
#define PRTYC_TIMECRITICAL     3
#define PRTYC_FOREGROUNDSERVER 4

#define PRTYS_PROCESS     0
#define PRTYS_PROCESSTREE 1
#define PRTYS_THREAD      2

#define PRTYD_MINIMUM     (-31)
#define PRTYD_MAXIMUM     31

#define EXLST_ADD        1
#define EXLST_REMOVE     2
#define EXLST_EXIT       3

#define DKP_PROCESSTREE  0
#define DKP_PROCESS      1

#define CREATE_READY     0
#define CREATE_SUSPENDED 1
#define STACK_SPARSE     0
#define STACK_COMMITTED  2

#define PT_FULLSCREEN    0
#define PT_REALMODE      1
#define PT_WINDOWABLEVIO 2
#define PT_PM            3
#define PT_DETACHED      4

#define PS_EXITLIST      1

#define TC_EXIT          0
#define TC_HARDERROR     1
#define TC_TRAP          2
#define TC_KILLPROCESS   3
#define TC_EXCEPTION     4

#define DCWA_PROCESS     0
#define DCWA_PROCESSTREE 1

#define DCWW_WAIT        0
#define DCWW_NOWAIT      1

#define AFNTY_THREAD     0
#define AFNTY_SYSTEM     1

typedef VOID APIENTRY FNTHREAD (ULONG);
typedef FNTHREAD *PFNTHREAD;
typedef VOID APIENTRY FNEXITLIST (ULONG);
typedef FNEXITLIST *PFNEXITLIST;

typedef struct _RESULTCODES {
    ULONG codeTerminate;
    ULONG codeResult;
} RESULTCODES, *PRESULTCODES;

typedef struct _THREADCREATE {
    ULONG     cbSize;
    PTID      pTid;
    PFNTHREAD pfnStart;
    ULONG     lParam;
    ULONG     lFlag;
    PBYTE     pStack;
    ULONG     cbStack;
} THREADCREATE, *PTHREADCREATE;

typedef struct _MPAFFINITY {
    ULONG mask[2];
} MPAFFINITY, *PMPAFFINITY;

typedef struct _PIB {
    ULONG pib_ulpid;
    ULONG pib_ulppid;
    ULONG pib_hmte;
    PCHAR pib_pchcmd;
    PCHAR pib_pchenv;
    ULONG pib_flstatus;
    ULONG pib_ultype;
} PIB, *PPIB;

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;

#ifndef DBG_INCL_DOSDEBUG

#define DBG_INCL_DOSDEBUG

#define DBG_C_Null            0
#define DBG_C_ReadMem         1
#define DBG_C_ReadMem_I       1
#define DBG_C_ReadMem_D       2
#define DBG_C_ReadReg         3
#define DBG_C_WriteMem        4
#define DBG_C_WriteMem_I      4
#define DBG_C_WriteMem_D      5
#define DBG_C_WriteReg        6
#define DBG_C_Go              7
#define DBG_C_Term            8
#define DBG_C_SStep           9
#define DBG_C_Stop            10
#define DBG_C_Freeze          11
#define DBG_C_Resume          12
#define DBG_C_NumToAddr       13
#define DBG_C_ReadCoRegs      14
#define DBG_C_WriteCoRegs     15
#define DBG_C_ThrdStat        17
#define DBG_C_MapROAlias      18
#define DBG_C_MapRWAlias      19
#define DBG_C_UnMapAlias      20
#define DBG_C_Connect         21
#define DBG_C_ReadMemBuf      22
#define DBG_C_WriteMemBuf     23
#define DBG_C_SetWatch        24
#define DBG_C_ClearWatch      25
#define DBG_C_RangeStep       26
#define DBG_C_Continue        27
#define DBG_C_AddrToObject    28
#define DBG_C_XchgOpcode      29
#define DBG_C_LinToSel        30
#define DBG_C_SelToLin        31
#define DBG_C_RegisterSemList 32
#define DBG_C_Attach          33
#define DBG_C_Detach          34
#define DBG_C_RegDebug        35
#define DBG_C_QueryDebug      36

#define JIT_REG_INHERIT   0x00010000
#define JIT_REG_NOINHERIT 0x00020000
#define JIT_REG_DETACH    0x00030000
#define JIT_REG_FG        0x00040000
#define DBGQ_JIT_GLOBAL   0x10000000
#define DBGQ_JIT_PERPROC  0x20000000

#define DBG_N_Success      0
#define DBG_N_Error        (-1L)
#define DBG_N_ProcTerm     (-6L)
#define DBG_N_Exception    (-7L)
#define DBG_N_ModuleLoad   (-8L)
#define DBG_N_CoError      (-9L)
#define DBG_N_ThreadTerm   (-10L)
#define DBG_N_AsyncStop    (-11L)
#define DBG_N_NewProc      (-12L)
#define DBG_N_AliasFree    (-13L)
#define DBG_N_Watchpoint   (-14L)
#define DBG_N_ThreadCreate (-15L)
#define DBG_N_ModuleFree   (-16L)
#define DBG_N_RangeStep    (-17L)

#define DBG_CO_387      1
#define DBG_D_Thawed    0
#define DBG_D_Frozen    1
#define DBG_L_386       1
#define DBG_LEN_387     108
#define DBG_T_Runnable  0
#define DBG_T_Suspended 1
#define DBG_T_Blocked   2
#define DBG_T_CritSec   3
#define DBG_W_Global    1
#define DBG_W_Local     2
#define DBG_W_Execute   0x00010000
#define DBG_W_Write     0x00020000
#define DBG_W_ReadWrite 0x00030000
#define DBG_O_OBJMTE    0x10000000

#define DBG_X_PRE_FIRST_CHANCE 0
#define DBG_X_FIRST_CHANCE     1
#define DBG_X_LAST_CHANCE      2
#define DBG_X_STACK_INVALID    3

typedef struct _uDB {
    unsigned long  Pid;
    unsigned long  Tid;
    long           Cmd;
    long           Value;
    unsigned long  Addr;
    unsigned long  Buffer;
    unsigned long  Len;
    unsigned long  Index;
    unsigned long  MTE;
    unsigned long  EAX;
    unsigned long  ECX;
    unsigned long  EDX;
    unsigned long  EBX;
    unsigned long  ESP;
    unsigned long  EBP;
    unsigned long  ESI;
    unsigned long  EDI;
    unsigned long  EFlags;
    unsigned long  EIP;
    unsigned long  CSLim;
    unsigned long  CSBase;
    unsigned char  CSAcc;
    unsigned char  CSAtr;
    unsigned short CS;
    unsigned long  DSLim;
    unsigned long  DSBase;
    unsigned char  DSAcc;
    unsigned char  DSAtr;
    unsigned short DS;
    unsigned long  ESLim;
    unsigned long  ESBase;
    unsigned char  ESAcc;
    unsigned char  ESAtr;
    unsigned short ES;
    unsigned long  FSLim;
    unsigned long  FSBase;
    unsigned char  FSAcc;
    unsigned char  FSAtr;
    unsigned short FS;
    unsigned long  GSLim;
    unsigned long  GSBase;
    unsigned char  GSAcc;
    unsigned char  GSAtr;
    unsigned short GS;
    unsigned long  SSLim;
    unsigned long  SSBase;
    unsigned char  SSAcc;
    unsigned char  SSAtr;
    unsigned short SS;
} uDB_t;

typedef struct _TStat {
    unsigned char  DbgState;
    unsigned char  TState;
    unsigned short TPriority;
} TStat_t;

#endif

APIRET APIENTRY DosAllocThreadLocalMemory(ULONG,PULONG*);
APIRET APIENTRY DosCreateThread(PTID,PFNTHREAD,ULONG,ULONG,ULONG);
APIRET APIENTRY DosCreateThread2(PTHREADCREATE);
APIRET APIENTRY DosDebug(PVOID);
APIRET APIENTRY DosEnterCritSec(VOID);
APIRET APIENTRY DosExecPgm(PCHAR,LONG,ULONG,PCSZ,PCSZ,PRESULTCODES,PCSZ);
APIRET APIENTRY DosExitCritSec(VOID);
APIRET APIENTRY DosExitList(ULONG,PFNEXITLIST);
APIRET APIENTRY DosFreeThreadLocalMemory(PULONG);
APIRET APIENTRY DosGetInfoBlocks(PTIB*,PPIB*);
APIRET APIENTRY DosKillProcess(ULONG,PID);
APIRET APIENTRY DosKillThread(TID);
APIRET APIENTRY DosQueryThreadAffinity(ULONG,PMPAFFINITY);
APIRET APIENTRY DosResumeThread(TID);
APIRET APIENTRY DosSetPriority(ULONG,ULONG,LONG,ULONG);
APIRET APIENTRY DosSetThreadAffinity(PMPAFFINITY);
APIRET APIENTRY DosSleep(ULONG);
APIRET APIENTRY DosSuspendThread(TID);
APIRET APIENTRY DosWaitChild(ULONG,ULONG,PRESULTCODES,PPID,PID);
APIRET APIENTRY DosWaitThread(PTID,ULONG);

#endif

#if defined(INCL_DOSFILEMGR) || !defined(INCL_NOCOMMON)

#define DosBufReset    DosResetBuffer
#define DosChDir       DosSetCurrentDir
#define DosChgFilePtr  DosSetFilePtr
#define DosFindFirst2  DosFindFirst
#define DosMkDir       DosCreateDir
#define DosMkDir2      DosCreateDir
#define DosNewSize     DosSetFileSize
#define DosOpen2       DosOpen
#define DosProtectChgFilePtr DosProtectSetFilePtr
#define DosProtectQFileInfo DosProtectQueryFileInfo
#define DosProtectQFHandState DosProtectQueryFHState
#define DosProtectNewSize DosProtectSetFileSize
#define DosProtectSetFHandState DosProtectSetFHState
#define DosQCurDir     DosQueryCurrentDir
#define DosQCurDisk    DosQueryCurrentDisk
#define DosQFileInfo   DosQueryFileInfo
#define DosQFHandState DosQueryFHState
#define DosQFSAttach   DosQueryFSAttach
#define DosQFSInfo     DosQueryFSInfo
#define DosQHandType   DosQueryHType
#define DosQPathInfo   DosQueryPathInfo
#define DosQVerify     DosQueryVerify
#define DosRmDir       DosDeleteDir
#define DosSelectDisk  DosSetDefaultDisk
#define DosSetFHandState DosSetFHState

#define FILE_BEGIN    0
#define FILE_CURRENT  1
#define FILE_END      2

#define HDIR_SYSTEM   1
#define HDIR_CREATE   (-1)

#define DCPY_EXISTING 1
#define DCPY_APPEND   2
#define DCPY_FAILEAS  4

#define FILE_NORMAL    0x0000
#define FILE_READONLY  0x0001
#define FILE_HIDDEN    0x0002
#define FILE_SYSTEM    0x0004
#define FILE_DIRECTORY 0x0010
#define FILE_ARCHIVED  0x0020
#define FILE_IGNORE    0x10000

#define MUST_HAVE_READONLY  ((FILE_READONLY  << 8) | FILE_READONLY)
#define MUST_HAVE_HIDDEN    ((FILE_HIDDEN    << 8) | FILE_HIDDEN)
#define MUST_HAVE_SYSTEM    ((FILE_SYSTEM    << 8) | FILE_SYSTEM)
#define MUST_HAVE_DIRECTORY ((FILE_DIRECTORY << 8) | FILE_DIRECTORY)
#define MUST_HAVE_ARCHIVED  ((FILE_ARCHIVED  << 8) | FILE_ARCHIVED)

#define FILE_EXISTED   1
#define FILE_CREATED   2
#define FILE_TRUNCATED 3

#define FILE_OPEN     0x0001
#define FILE_TRUNCATE 0x0002
#define FILE_CREATE   0x0010

#define OPEN_ACTION_FAIL_IF_EXISTS    0
#define OPEN_ACTION_OPEN_IF_EXISTS    1
#define OPEN_ACTION_REPLACE_IF_EXISTS 2

#define OPEN_ACTION_FAIL_IF_NEW     0x0000
#define OPEN_ACTION_CREATE_IF_NEW   0x0010

#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_NO_LOCALITY      0x0000
#define OPEN_FLAGS_SEQUENTIAL       0x0100
#define OPEN_FLAGS_RANDOM           0x0200
#define OPEN_FLAGS_RANDOMSEQUENTIAL 0x0300
#define OPEN_FLAGS_NO_CACHE         0x1000
#define OPEN_FLAGS_FAIL_ON_ERROR    0x2000
#define OPEN_FLAGS_WRITE_THROUGH    0x4000
#define OPEN_FLAGS_DASD             0x8000
#define OPEN_FLAGS_NONSPOOLED       0x00040000
#define OPEN_SHARE_DENYLEGACY       0x10000000
#define OPEN_FLAGS_PROTECTED_HANDLE 0x40000000

#define SEARCH_PATH          0
#define SEARCH_CUR_DIRECTORY 1
#define SEARCH_ENVIRONMENT   2
#define SEARCH_IGNORENETERRS 4

#define FIL_STANDARD           1
#define FIL_QUERYEASIZE        2
#define FIL_QUERYEASFROMLIST   3
#define FIL_QUERYFULLNAME      5
#define FIL_STANDARDL         11
#define FIL_QUERYEASIZEL      12
#define FIL_QUERYEASFROMLISTL 13

#define FIO_LOCK      0
#define FIO_UNLOCK    1
#define FIO_SEEK      2
#define FIO_READ      3
#define FIO_WRITE     4

#define FIO_NOSHARE   0
#define FIO_SHAREREAD 1

#define FSIL_ALLOC    1
#define FSIL_VOLSER   2

#define FHT_DISKFILE  0
#define FHT_CHRDEV    1
#define FHT_PIPE      2

#define FHB_DSKREMOTE    0x8000
#define FHB_CHRDEVREMOTE 0x8000
#define FHB_PIPEREMOTE   0x8000

#define FS_ATTACH      0
#define FS_DETACH      1

⌨️ 快捷键说明

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