home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddrivers.zip / VDD / BASEDEF.H next >
C/C++ Source or Header  |  1993-02-17  |  5KB  |  226 lines

  1. /***    BASEDEF.H
  2.  *
  3.  *    Basic constants and types
  4.  *
  5.  *    To control what is included use the following:
  6.  *
  7.  *        INCL_TYPES         basic typedefs
  8.  */
  9.  
  10.  
  11. /*** Basic constants
  12.  */
  13.  
  14. //c-begin
  15. #include "os2std.h"
  16. //c-end
  17.  
  18. //masm-begin
  19. //NULL    equ    0
  20. //TRUE    equ    -1
  21. //FALSE    equ    0
  22. //masm-end
  23.  
  24. #define CTRUE    1
  25.  
  26. #define KSIZE    1024
  27.  
  28. #ifdef    INCL_PAGE
  29. #define PAGESIZE 4096
  30. #endif
  31.  
  32.  
  33. /*** Basic data types
  34.  */
  35.  
  36. //c-begin
  37. #define CDECL    _cdecl
  38. //#define PASCAL    _pascal
  39. #define PASCAL    _Pascal
  40. #define VOID    void
  41. #define CONST    const
  42. #define VOLATILE volatile
  43.  
  44. #ifdef    M_I386
  45. #define FAR    _near            // p  (32-bit pointer)
  46. #define NEAR    _near            // np (near pointer)
  47. #define FAR32    _Far32            // fp (48-bit pointer, restricted)
  48. #else
  49. #define FAR    _far
  50. #define NEAR    _near
  51. #endif
  52. //c-end
  53.  
  54. //masm-begin
  55. //DefType VOID
  56. //masm-end
  57.  
  58. #define CENTRY CDECL FAR        // to declare misc. C-based interfaces
  59. #define PRIVENTRY PASCAL FAR        // to declare private routines
  60. #define EXPENTRY PASCAL FAR        // to declare exported routines
  61. #define API32ENTRY PASCAL FAR        // to declare exported API routines
  62. #define DYNENTRY PASCAL FAR _export    // to declare exported dynlink routines
  63.  
  64. #ifdef    INCL_TYPES
  65.  
  66. typedef int INT;            // i
  67. typedef unsigned int UINT;        // u
  68. typedef INT BOOL;            // f
  69.  
  70. typedef unsigned char BYTE;        // b
  71. typedef unsigned short WORD;        // w
  72. typedef unsigned long DWORD;        // dw
  73.  
  74. typedef char CHAR;            // ch
  75. typedef unsigned char UCHAR;        // uch
  76. typedef short SHORT;            // s
  77. typedef unsigned short USHORT;        // us
  78. typedef long LONG;            // l
  79. typedef unsigned long ULONG;        // ul
  80.  
  81. typedef UCHAR BBOOL;            // bf
  82. typedef USHORT SBOOL;            // sf
  83. typedef ULONG LBOOL;            // lf
  84.  
  85. typedef ULONG FLAGS;            // fl
  86. typedef ULONG PORT;            // port
  87.  
  88.  
  89. /*** Basic pointer types
  90.  */
  91. typedef VOID FAR *PVOID;        // p
  92. typedef VOID NEAR *NPVOID;        // np
  93.  
  94.  
  95. /*** Basic pointer-to-basic-data types
  96.  */
  97. typedef INT FAR *PINT;            // pi
  98. typedef INT NEAR *NPINT;        // npi
  99.  
  100. typedef UINT FAR *PUINT;        // pu
  101. typedef UINT NEAR *NPUINT;        // npu
  102.  
  103. typedef BYTE FAR *PBYTE;        // pb
  104. typedef BYTE NEAR *NPBYTE;        // npb
  105.  
  106. typedef WORD FAR *PWORD;        // pw
  107. typedef WORD NEAR *NPWORD;        // npw
  108.  
  109. typedef DWORD FAR *PDWORD;        // pdw
  110. typedef DWORD NEAR *NPDWORD;        // npdw
  111.  
  112. typedef CHAR FAR *PCHAR;        // pch
  113. typedef CHAR NEAR *NPCHAR;        // npch
  114.  
  115. typedef SHORT FAR *PSHORT;        // ps
  116. typedef SHORT NEAR *NPSHORT;        // nps
  117.  
  118. typedef LONG FAR *PLONG;        // pl
  119. typedef LONG NEAR *NPLONG;        // npl
  120.  
  121. typedef UCHAR FAR *PUCHAR;        // puch
  122. typedef UCHAR NEAR *NPUCHAR;        // npuch
  123.  
  124. typedef USHORT FAR *PUSHORT;        // pus
  125. typedef USHORT NEAR *NPUSHORT;        // npus
  126.  
  127. typedef ULONG FAR *PULONG;        // pul
  128. typedef ULONG NEAR *NPULONG;        // npul
  129.  
  130. typedef BOOL FAR *PBOOL;        // pf
  131. typedef BOOL NEAR *NPBOOL;        // npf
  132.  
  133. typedef BBOOL FAR *PBBOOL;        // pbf
  134. typedef BBOOL NEAR *NPBBOOL;        // npbf
  135.  
  136. typedef SBOOL FAR *PSBOOL;        // psf
  137. typedef SBOOL NEAR *NPSBOOL;        // npsf
  138.  
  139. typedef LBOOL FAR *PLBOOL;        // plf
  140. typedef LBOOL NEAR *NPLBOOL;        // nplf
  141.  
  142. typedef FLAGS FAR *PFLAGS;        // pfl
  143. typedef FLAGS NEAR *NPFLAGS;        // npfl
  144.  
  145. typedef PVOID FAR *PPVOID;        // pp
  146. typedef PVOID NEAR *NPPVOID;        // npp
  147.  
  148.  
  149. /*** Other common types (and their pointers)
  150.  */
  151. typedef BYTE BUF[];            // buf
  152. typedef BUF FAR *PBUF;            // pbuf
  153.  
  154. typedef CHAR NAM[8];            // nam
  155. typedef CHAR SZ[];            // sz
  156. typedef CHAR FAR *PSZ;            // psz
  157. typedef CHAR NEAR *NPSZ;        // npsz
  158. typedef CHAR SZZ[];            // szz
  159. typedef CHAR FAR *PSZZ;         // pszz
  160. typedef CHAR NEAR *NPSZZ;        // npszz
  161.  
  162. typedef USHORT SEL;            // sel
  163. typedef SEL FAR *PSEL;            // psel
  164. typedef SEL NEAR *NPSEL;        // npsel
  165.  
  166. typedef USHORT SOFFSET;            // soff
  167. typedef ULONG OFFSET;            // off
  168.  
  169. typedef ULONG PPHYS;            // pphys
  170.  
  171. typedef (* PASCAL FAR PFN)();        // pfn
  172. typedef (* PASCAL NEAR NPFN)();        // npfn
  173. typedef (* FAR32 PASCAL FPFN)();     // fpfn
  174. typedef (* FAR32 PASCAL FPVOID)();    // fp (the only kind of FPVOID allowed)
  175.  
  176. typedef PFN FAR *PPFN;            // ppfn
  177. typedef PFN NEAR *NPPFN;        // nppfn
  178. typedef FPFN FAR *PFPFN;        // pfpfn
  179. typedef FPFN NEAR *NPFPFN;        // npfpfn
  180.  
  181. typedef USHORT SHANDLE;            // sh
  182. typedef PVOID  HANDLE;            // h
  183.  
  184. typedef struct _POINTL    {        // ptl
  185.     LONG  x;
  186.     LONG  y;
  187. } POINTL;
  188. typedef POINTL FAR *PPOINTL;
  189.  
  190. typedef struct _RECTL {         // rcl
  191.     LONG  xLeft;
  192.     LONG  yBottom;
  193.     LONG  xRight;
  194.     LONG  yTop;
  195. } RECTL;
  196. typedef RECTL FAR *PRECTL;
  197.  
  198. typedef struct _RGB {            // rgb
  199.     BYTE bBlue;
  200.     BYTE bGreen;
  201.     BYTE bRed;
  202. } RGB;
  203. typedef RGB FAR *PRGB;
  204.  
  205.  
  206. /*** OS/2-specific types
  207.  */
  208. typedef ULONG ERRCODE;            // errc
  209. typedef ULONG RETCODE;            // rc
  210. typedef USHORT SRETCODE;        // src
  211.  
  212. typedef USHORT PID;            // pid
  213. typedef USHORT SGID;            // sgid
  214. typedef USHORT TID;            // tid
  215.  
  216. typedef struct _RESULTCODES {        // rsc
  217.     USHORT codeTerminate;
  218.     USHORT codeResult;
  219. } RESULTCODES;
  220. typedef RESULTCODES FAR *PRESULTCODES;
  221.  
  222. typedef SHANDLE HFILE;            // shf
  223. typedef HFILE FAR *PHFILE;        // pshf
  224.  
  225. #endif    // INCL_TYPES
  226.