home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / LIBSRC.ZOO / libsrc / local / os2.h < prev    next >
Text File  |  1992-03-14  |  8KB  |  300 lines

  1. typedef unsigned long ULONG;
  2. typedef unsigned short USHORT;
  3. #define SHORT short
  4. typedef char *PSZ;
  5. typedef unsigned char BYTE;
  6. typedef BYTE *PBYTE;
  7. #define VOID void
  8. typedef VOID *PVOID;
  9. #define CHAR char
  10. typedef CHAR *PCHAR;
  11. typedef unsigned char UCHAR;
  12. typedef unsigned long TID;
  13. typedef unsigned long PID;
  14.  
  15. #ifndef NULL
  16. #define NULL 0
  17. #endif
  18.  
  19. #if (defined(INCL_DOSFILEMGR) || !defined(INCL_NOCOMMON))
  20.  
  21. typedef unsigned long HFILE;
  22. typedef HFILE *PHFILE;
  23. typedef unsigned long HDIR;
  24.  
  25. #define FILE_NORMAL             0x0000
  26. #define FILE_READONLY           0x0001
  27. #define FILE_DIRECTORY          0x0010
  28. #define FILE_OPEN               0x0001
  29. #define FILE_TRUNCATE           0x0002
  30. #define FILE_CREATE             0x0010
  31. #define OPEN_ACCESS_READONLY    0x0000
  32. #define OPEN_ACCESS_WRITEONLY   0x0001
  33. #define OPEN_ACCESS_READWRITE   0x0002
  34. #define OPEN_SHARE_DENYNONE     0x0040
  35.  
  36. #define FILE_BEGIN              0x0000
  37. #define FILE_CURRENT            0x0001
  38. #define FILE_END                0x0002
  39.  
  40. #define SEARCH_CUR_DIRECTORY    0x0001
  41. #define SEARCH_ENVIRONMENT      0x0002
  42.  
  43. typedef struct _FDATE {
  44.     USHORT day   : 5;
  45.     USHORT month : 4;
  46.     USHORT year  : 7;
  47. } FDATE;
  48.  
  49. typedef FDATE *PFDATE;
  50.  
  51. typedef struct _FTIME {
  52.     USHORT twosecs : 5;
  53.     USHORT minutes : 6;
  54.     USHORT hours   : 5;
  55. } FTIME;
  56.  
  57. typedef FTIME *PFTIME;
  58.  
  59. typedef struct _FILESTATUS {
  60.     FDATE  fdateCreation;
  61.     FTIME  ftimeCreation;
  62.     FDATE  fdateLastAccess;
  63.     FTIME  ftimeLastAccess;
  64.     FDATE  fdateLastWrite;
  65.     FTIME  ftimeLastWrite;
  66.     ULONG  cbFile;
  67.     ULONG  cbFileAlloc;
  68.     USHORT attrFile;
  69. } FILESTATUS;
  70.  
  71. typedef FILESTATUS *PFILESTATUS;
  72.  
  73. #define CCHMAXPATHCOMP 256
  74.  
  75. typedef struct _FILEFINDBUF3 {
  76.     ULONG oNextEntryOffset;
  77.     FDATE fdateCreation;
  78.     FTIME ftimeCreation;
  79.     FDATE fdateLastAccess;
  80.     FTIME ftimeLastAccess;
  81.     FDATE fdateLastWrite;
  82.     FTIME ftimeLastWrite;
  83.     ULONG cbFile;
  84.     ULONG cbFileAlloc;
  85.     ULONG attrFile;
  86.     UCHAR cchName;
  87.     CHAR  achName[CCHMAXPATHCOMP];
  88. } FILEFINDBUF3;
  89.  
  90. #define HDIR_CREATE (-1)
  91.  
  92. #endif
  93.  
  94. #ifdef INCL_DOSERRORS
  95.  
  96. #define ERROR_FILE_NOT_FOUND              2
  97. #define ERROR_PATH_NOT_FOUND              3
  98. #define ERROR_TOO_MANY_OPEN_FILES         4
  99. #define ERROR_ACCESS_DENIED               5
  100. #define ERROR_INVALID_HANDLE              6
  101. #define ERROR_NOT_ENOUGH_MEMORY           8
  102. #define ERROR_INVALID_ACCESS             12
  103. #define ERROR_NOT_SAME_DEVICE            17
  104. #define ERROR_SHARING_VIOLATION          32
  105. #define ERROR_LOCK_VIOLATION             33
  106. #define ERROR_INVALID_PARAMETER          87
  107. #define ERROR_BROKEN_PIPE               109
  108. #define ERROR_OPEN_FAILED               110
  109. #define ERROR_DISK_FULL                 112
  110. #define ERROR_WAIT_NO_CHILDREN          128
  111. #define ERROR_NO_CHILD_PROCESS          184
  112. #define ERROR_FILENAME_EXCED_RANGE      206
  113. #define ERROR_CIRCULARITY_REQUESTED     250
  114.  
  115. #endif
  116.  
  117. #ifdef INCL_DOSSIGNALS
  118.  
  119. #define XCPT_CONTINUE_SEARCH    0x00000000
  120. #define XCPT_CONTINUE_EXECUTION 0xFFFFFFFF
  121.  
  122. #define XCPT_GUARD_PAGE_VIOLATION        0x80000001
  123. #define XCPT_UNABLE_TO_GROW_STACK        0x80010001
  124. #define XCPT_ACCESS_VIOLATION            0xC0000005
  125. #define XCPT_IN_PAGE_ERROR               0xC0000006
  126. #define XCPT_ILLEGAL_INSTRUCTION         0xC000001C
  127. #define XCPT_INVALID_LOCK_SEQUENCE       0xC000001D
  128. #define XCPT_NONCONTINUABLE_EXCEPTION    0xC0000024
  129. #define XCPT_INVALID_DISPOSITION         0xC0000025
  130. #define XCPT_UNWIND                      0xC0000026
  131. #define XCPT_BAD_STACK                   0xC0000027
  132. #define XCPT_INVALID_UNWIND_TARGET       0xC0000028
  133. #define XCPT_ARRAY_BOUNDS_EXCEEDED       0xC0000093
  134. #define XCPT_FLOAT_DENORMAL_OPERAND      0xC0000094
  135. #define XCPT_FLOAT_DIVIDE_BY_ZERO        0xC0000095
  136. #define XCPT_FLOAT_INEXACT_RESULT        0xC0000096
  137. #define XCPT_FLOAT_INVALID_OPERATION     0xC0000097
  138. #define XCPT_FLOAT_OVERFLOW              0xC0000098
  139. #define XCPT_FLOAT_STACK_CHECK           0xC0000099
  140. #define XCPT_FLOAT_UNDERFLOW             0xC000009A
  141. #define XCPT_INTEGER_DIVIDE_BY_ZERO      0xC000009B
  142. #define XCPT_INTEGER_OVERFLOW            0xC000009C
  143. #define XCPT_PRIVILEGED_INSTRUCTION      0xC000009D
  144. #define XCPT_DATATYPE_MISALIGNMENT       0xC000009E
  145. #define XCPT_BREAKPOINT                  0xC000009F
  146. #define XCPT_SINGLE_STEP                 0xC00000A0
  147. #define XCPT_PROCESS_TERMINATE           0xC0010001
  148. #define XCPT_ASYNC_PROCESS_TERMINATE     0xC0010002
  149. #define XCPT_SIGNAL                      0xC0010003
  150.  
  151. #define XCPT_FATAL_EXCEPTION             0xC0000000
  152. #define XCPT_CUSTOMER_CODE               0x20000000
  153.  
  154. struct _fpreg {
  155.     ULONG losig;
  156.     ULONG hisig;
  157.     USHORT signexp;
  158. };
  159.  
  160. typedef struct _fpreg FPREG;
  161.  
  162. struct _CONTEXT {
  163.     ULONG ContextFlags;
  164.     ULONG ctx_env[7];
  165.     struct _fpreg ctx_stack[8];
  166.     ULONG ctx_SegGs;
  167.     ULONG ctx_SegFs;
  168.     ULONG ctx_SegEs;
  169.     ULONG ctx_SegDs;
  170.     ULONG ctx_RegEdi;
  171.     ULONG ctx_RegEsi;
  172.     ULONG ctx_RegEax;
  173.     ULONG ctx_RegEbx;
  174.     ULONG ctx_RegEcx;
  175.     ULONG ctx_RegEdx;
  176.     ULONG ctx_RegEbp;
  177.     ULONG ctx_RegEip;
  178.     ULONG ctx_SegCs;
  179.     ULONG ctx_EFlags;
  180.     ULONG ctx_RegEsp;
  181.     ULONG ctx_SegSs;
  182. };
  183. typedef struct _CONTEXT CONTEXTRECORD;
  184. typedef struct _CONTEXT *PCONTEXTRECORD;
  185.  
  186. #define EXCEPTION_MAXIMUM_PARAMETERS 4
  187.  
  188. struct _EXCEPTIONREPORTRECORD {
  189.     ULONG  ExceptionNum;
  190.     ULONG  fHandlerFlags;
  191.     struct _EXCEPTIONREPORTRECORD *NestedExceptionReportRecord;
  192.     PVOID  ExceptionAddress;
  193.     ULONG  cParameters;
  194.     ULONG  ExceptionInfo[EXCEPTION_MAXIMUM_PARAMETERS];
  195. };
  196.  
  197. typedef struct _EXCEPTIONREPORTRECORD EXCEPTIONREPORTRECORD;
  198. typedef struct _EXCEPTIONREPORTRECORD *PEXCEPTIONREPORTRECORD;
  199.  
  200. struct _EXCEPTIONREGISTRATIONRECORD {
  201.     struct _EXCEPTIONREGISTRATIONRECORD *prev_structure;
  202.     ULONG (* ExceptionHandler)(PEXCEPTIONREPORTRECORD,
  203.                    struct _EXCEPTIONREGISTRATIONRECORD *,
  204.                    PCONTEXTRECORD,
  205.                    PVOID);
  206. };
  207.  
  208. typedef struct _EXCEPTIONREGISTRATIONRECORD EXCEPTIONREGISTRATIONRECORD;
  209. typedef struct _EXCEPTIONREGISTRATIONRECORD *PEXCEPTIONREGISTRATIONRECORD;
  210.  
  211. #endif
  212.  
  213. #ifdef INCL_DOSMISC
  214.  
  215. #define FERR_DISABLEEXCEPTION 0x00000002L
  216.  
  217. #define QSV_TIME_LOW          15
  218.  
  219. #endif
  220.  
  221. #ifdef INCL_DOSPROCESS
  222.  
  223. #define DCWA_PROCESS       0
  224. #define DCWW_WAIT          0
  225.  
  226. typedef struct _RESULTCODES {
  227.     ULONG codeTerminate;
  228.     ULONG codeResult;
  229. } RESULTCODES;
  230.  
  231. typedef RESULTCODES *PRESULTCODES;
  232.  
  233. #define EXEC_SYNC          0
  234. #define EXEC_ASYNCRESULT   2
  235.  
  236. struct pib_s {
  237.     ULONG    pib_ulpid;
  238.     ULONG    pib_ulppid;
  239.     ULONG    pib_hmte;
  240.     PCHAR    pib_pchcmd;
  241.     PCHAR    pib_pchenv;
  242.     ULONG    pib_flstatus;
  243.     ULONG    pib_ultype;
  244. };
  245.  
  246. typedef struct pib_s    PIB;
  247. typedef struct pib_s    *PPIB;
  248.  
  249. struct tib2_s {
  250.     ULONG  tib2_ultid;
  251.     ULONG  tib2_ulpri;
  252.     ULONG  tib2_version;
  253.     USHORT tib2_usMCCount;
  254.     USHORT tib2_fMCForceFlag;
  255. };
  256.  
  257. typedef struct tib2_s TIB2;
  258. typedef struct tib2_s *PTIB2;
  259.  
  260. struct tib_s {
  261.     PVOID tib_pexchain;
  262.     PVOID tib_pstack;
  263.     PVOID tib_pstacklimit;
  264.     PTIB2 tib_ptib2;
  265.     ULONG tib_version;
  266.     PVOID tib_arbpointer;
  267. };
  268.  
  269. typedef struct tib_s    TIB;
  270. typedef struct tib_s    *PTIB;
  271.  
  272. #endif
  273.  
  274. #ifdef INCL_DOSDATETIME
  275.  
  276. typedef struct _DATETIME {
  277.     UCHAR   hours;
  278.     UCHAR   minutes;
  279.     UCHAR   seconds;
  280.     UCHAR   hundredths;
  281.     UCHAR   day;
  282.     UCHAR   month;
  283.     USHORT  year;
  284.     SHORT   timezone;
  285.     UCHAR   weekday;
  286. } DATETIME;
  287.  
  288. typedef DATETIME *PDATETIME;
  289.  
  290. #endif
  291.  
  292. #if (defined(INCL_DOSMEMMGR) || !defined(INCL_NOCOMMON))
  293.  
  294. #define PAG_READ       0x00000001
  295. #define PAG_WRITE      0x00000002
  296. #define PAG_COMMIT     0x00000010
  297.  
  298. #endif
  299.  
  300.