📄 bsedos.mh
字号:
/*
* 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 + -