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

📄 bsedos.mh

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

:include readonly.sp
:include cpluspro.sp

#ifdef INCL_DOS
  #define INCL_DOSDATETIME
  #define INCL_DOSDEVICES
  #define INCL_DOSFILEMGR
  #define INCL_DOSINFOSEG
  #define INCL_DOSMEMMGR
  #define INCL_DOSMISC
  #define INCL_DOSMODULEMGR
  #define INCL_DOSMONITORS
  #define INCL_DOSNLS
  #define INCL_DOSNMPIPES
  #define INCL_DOSPROCESS
  #define INCL_DOSQUEUES
  #define INCL_DOSRESOURCES
  #define INCL_DOSSEMAPHORES
  #define INCL_DOSSESMGR
  #define INCL_DOSSIGNALS
#endif

#define CCHMAXPATH          260
#define CCHMAXPATHCOMP      256

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

#define EXIT_THREAD  0
#define EXIT_PROCESS 1

#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 EXLST_ADD    1
#define EXLST_REMOVE 2
#define EXLST_EXIT   3

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

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

#define PRTYD_MINIMUM (-31)
#define PRTYD_MAXIMUM   31

#define DCWA_PROCESS     0
#define DCWA_PROCESSTREE 1

#define DCWW_WAIT   0
#define DCWW_NOWAIT 1

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

typedef struct _PIDINFO {
    PID pid;
    TID tid;
    PID pidParent;
} PIDINFO, FAR *PPIDINFO;

typedef VOID (FAR *PFNTHREAD)(VOID);
typedef VOID (PASCAL FAR *PFNEXITLIST)(USHORT);

USHORT APIENTRY DosBeep(USHORT,USHORT);
USHORT APIENTRY DosCreateThread(PFNTHREAD,PTID,PBYTE);
USHORT APIENTRY DosCwait(USHORT,USHORT,PRESULTCODES,PPID,PID);
USHORT APIENTRY DosEnterCritSec(VOID);
USHORT APIENTRY DosExecPgm(PCHAR,SHORT,USHORT,PSZ,PSZ,PRESULTCODES,PSZ);
VOID   APIENTRY DosExit(USHORT,USHORT);
USHORT APIENTRY DosExitCritSec(VOID);
USHORT APIENTRY DosExitList(USHORT,PFNEXITLIST);
USHORT APIENTRY DosGetPID(PPIDINFO);
USHORT APIENTRY DosGetPPID(USHORT,PUSHORT);
USHORT APIENTRY DosGetPrty(USHORT,PUSHORT,USHORT);
USHORT APIENTRY DosKillProcess(USHORT,PID);
USHORT APIENTRY DosResumeThread(TID);
USHORT APIENTRY DosSetPrty(USHORT,USHORT,SHORT,USHORT);
USHORT APIENTRY DosSleep(ULONG);
USHORT APIENTRY DosSuspendThread(TID);

#endif

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

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

#define HDIR_SYSTEM   0x0001
#define HDIR_CREATE   0xFFFF

#define DCPY_EXISTING 1
#define DCPY_APPEND   2

#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_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 SEARCH_PATH          0
#define SEARCH_CUR_DIRECTORY 1
#define SEARCH_ENVIRONMENT   2
#define SEARCH_IGNORENETERRS 4

#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 FEA_NEEDEA  0x80

#define EAT_BINARY       0xFFFE
#define EAT_ASCII        0xFFFD
#define EAT_BITMAP       0xFFFB
#define EAT_METAFILE     0xFFFA
#define EAT_ICON         0xFFF9
#define EAT_EA           0xFFEE

#define EAT_MVMT         0xFFDF
#define EAT_MVST         0xFFDE
#define EAT_ASN1         0xFFDD

#define HANDTYPE_FILE       0x0000
#define HANDTYPE_DEVICE     0x0001
#define HANDTYPE_PIPE       0x0002
#define HANDTYPE_NETWORK    0x8000

typedef SHANDLE     HDIR;
typedef HDIR FAR    *PHDIR;

typedef struct _DENA1 {
    UCHAR  reserved;
    UCHAR  cbName;
    USHORT cbValue;
    UCHAR  szName[1];
} DENA1;

typedef struct _FDATE {
    unsigned day   : 5;
    unsigned month : 4;
    unsigned year  : 7;
} FDATE;

typedef struct _FTIME {
    unsigned twosecs : 5;
    unsigned minutes : 6;
    unsigned hours   : 5;
} FTIME;

typedef struct _FILEFINDBUF {
    FDATE  fdateCreation;
    FTIME  ftimeCreation;
    FDATE  fdateLastAccess;
    FTIME  ftimeLastAccess;
    FDATE  fdateLastWrite;
    FTIME  ftimeLastWrite;
    ULONG  cbFile;
    ULONG  cbFileAlloc;
    USHORT attrFile;
    UCHAR  cchName;
    CHAR   achName[CCHMAXPATHCOMP];
} FILEFINDBUF, FAR *PFILEFINDBUF;

typedef struct _FILEFINDBUF2 {
    FDATE  fdateCreation;
    FTIME  ftimeCreation;
    FDATE  fdateLastAccess;
    FTIME  ftimeLastAccess;
    FDATE  fdateLastWrite;
    FTIME  ftimeLastWrite;
    ULONG  cbFile;
    ULONG  cbFileAlloc;
    USHORT attrFile;
    ULONG  cbList;
    UCHAR  cchName;
    CHAR   achName[CCHMAXPATHCOMP];
} FILEFINDBUF2, FAR *PFILEFINDBUF2;

typedef struct _FILESTATUS {
    FDATE  fdateCreation;
    FTIME  ftimeCreation;
    FDATE  fdateLastAccess;
    FTIME  ftimeLastAccess;
    FDATE  fdateLastWrite;
    FTIME  ftimeLastWrite;
    ULONG  cbFile;
    ULONG  cbFileAlloc;
    USHORT attrFile;
} FILESTATUS, FAR *PFILESTATUS;

typedef struct _FSALLOCATE {
    ULONG  idFileSystem;
    ULONG  cSectorUnit;
    ULONG  cUnit;
    ULONG  cUnitAvail;
    USHORT cbSector;
} FSALLOCATE, FAR *PFSALLOCATE;

typedef struct _GEA {
    BYTE cbName;
    CHAR szName[1];
} GEA, FAR *PGEA;

typedef struct _GEALIST {
    ULONG  cbList;
    GEA list[1];
} GEALIST, FAR *PGEALIST;

typedef struct _FEA {
    BYTE fEA;
    BYTE cbName;
    USHORT cbValue;
} FEA, FAR *PFEA;

typedef struct _FEALIST {
    ULONG  cbList;
    FEA list[1];
} FEALIST, FAR *PFEALIST;

typedef struct _EAOP {
    PGEALIST fpGEAList;
    PFEALIST fpFEAList;
    ULONG    oError;
} EAOP, FAR *PEAOP;

typedef struct _VOLUMELABEL {
    BYTE cch;
    CHAR szVolLabel[12];
} VOLUMELABEL, FAR *PVOLUMELABEL;

typedef struct _FSINFO {
    FDATE fdateCreation;
    FTIME ftimeCreation;
    VOLUMELABEL vol;
} FSINFO, FAR *PFSINFO;

USHORT APIENTRY DosBufReset(HFILE);
USHORT APIENTRY DosChDir(PSZ,ULONG);
USHORT APIENTRY DosChgFilePtr(HFILE,LONG,USHORT,PULONG);
USHORT APIENTRY DosClose(HFILE);
USHORT APIENTRY DosCopy(PSZ,PSZ,USHORT,ULONG);
USHORT APIENTRY DosDelete(PSZ,ULONG);
USHORT APIENTRY DosDupHandle(HFILE,PHFILE);
USHORT APIENTRY DosEditName(USHORT,PSZ,PSZ,PBYTE,USHORT);
USHORT APIENTRY DosEnumAttribute(USHORT,PVOID,ULONG,PVOID,ULONG,PULONG,ULONG,ULONG);
USHORT APIENTRY DosFileIO(HFILE,PBYTE,USHORT,PLONG);
USHORT APIENTRY DosFileLocks(HFILE,PLONG,PLONG);
USHORT APIENTRY DosFindClose(HDIR);
USHORT APIENTRY DosFindFirst(PSZ,PHDIR,USHORT,PFILEFINDBUF,USHORT,PUSHORT,ULONG);
USHORT APIENTRY DosFindFirst2(PSZ,PHDIR,USHORT,PVOID,USHORT,PUSHORT,USHORT,ULONG);
USHORT APIENTRY DosFindNext(HDIR,PFILEFINDBUF,USHORT,PUSHORT);
USHORT APIENTRY DosFSAttach(PSZ,PSZ,PBYTE,USHORT,USHORT,ULONG);
USHORT APIENTRY DosFSCtl(PBYTE,USHORT,PUSHORT,PBYTE,USHORT,PUSHORT,USHORT,PSZ,HFILE,USHORT,ULONG);
USHORT APIENTRY DosMkDir(PSZ,ULONG);
USHORT APIENTRY DosMkDir2(PSZ,PEAOP,ULONG);
USHORT APIENTRY DosMove(PSZ,PSZ,ULONG);
USHORT APIENTRY DosNewSize(HFILE,ULONG);
USHORT APIENTRY DosOpen(PSZ,PHFILE,PUSHORT,ULONG,USHORT,USHORT,USHORT,ULONG);
USHORT APIENTRY DosOpen2(PSZ,PHFILE,PUSHORT,ULONG,USHORT,USHORT,USHORT,PEAOP,ULONG);
USHORT APIENTRY DosQCurDir(USHORT,PBYTE,PUSHORT);
USHORT APIENTRY DosQCurDisk(PUSHORT,PULONG);
USHORT APIENTRY DosQFHandState(HFILE,PUSHORT);
USHORT APIENTRY DosQFileInfo(HFILE,USHORT,PBYTE,USHORT);
USHORT APIENTRY DosQFileMode(PSZ,PUSHORT,ULONG);
USHORT APIENTRY DosQFSAttach(PSZ,USHORT,USHORT,PBYTE,PUSHORT,ULONG);
USHORT APIENTRY DosQFSInfo(USHORT,USHORT,PBYTE,USHORT);
USHORT APIENTRY DosQHandType(HFILE,PUSHORT,PUSHORT);
USHORT APIENTRY DosQPathInfo(PSZ,USHORT,PBYTE,USHORT,ULONG);
USHORT APIENTRY DosQVerify(PUSHORT);
USHORT APIENTRY DosRead(HFILE,PVOID,USHORT,PUSHORT);
USHORT APIENTRY DosReadAsync(HFILE,PULONG,PUSHORT,PVOID,USHORT,PUSHORT);
USHORT APIENTRY DosRmDir(PSZ,ULONG);
USHORT APIENTRY DosSelectDisk(USHORT);
USHORT APIENTRY DosSetFHandState(HFILE,USHORT);
USHORT APIENTRY DosSetFileInfo(HFILE,USHORT,PBYTE,USHORT);
USHORT APIENTRY DosSetFileMode(PSZ,USHORT,ULONG);
USHORT APIENTRY DosSetFSInfo(USHORT,USHORT,PBYTE,USHORT);
USHORT APIENTRY DosSetMaxFH(USHORT);
USHORT APIENTRY DosSetPathInfo(PSZ,USHORT,PBYTE,USHORT,USHORT,ULONG);
USHORT APIENTRY DosSetVerify(USHORT);
USHORT APIENTRY DosShutdown(ULONG);
USHORT APIENTRY DosWrite(HFILE,PVOID,USHORT,PUSHORT);
USHORT APIENTRY DosWriteAsync(HFILE,PULONG,PUSHORT,PVOID,USHORT,PUSHORT);

#endif

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

#define SEG_NONSHARED    0
#define SEG_GIVEABLE     1
#define SEG_GETTABLE     2
#define SEG_DISCARDABLE  4

USHORT APIENTRY DosAllocHuge(USHORT,USHORT,PSEL,USHORT,USHORT);
USHORT APIENTRY DosAllocSeg(USHORT,PSEL,USHORT);
USHORT APIENTRY DosAllocShrSeg(USHORT,PSZ,PSEL);
USHORT APIENTRY DosCreateCSAlias(SEL,PSEL);

⌨️ 快捷键说明

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