home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l230 / 3.ddi / INCLUDE / OS2DEF.IN$ / OS2DEF.bin
Encoding:
Text File  |  1991-02-28  |  5.1 KB  |  189 lines

  1. ;
  2. ; Module Name: OS2DEF.INC
  3. ;
  4. ; OS/2 Common Definitions file
  5. ;
  6. ; Copyright (c) 1987-1990, Microsoft Corporation.  All rights reserved.
  7. ;
  8.  
  9. OS2DEF_INCLUDED EQU             1
  10.  
  11. SHANDLE         TYPEDEF         WORD
  12. LHANDLE         TYPEDEF         FAR PTR
  13.  
  14. EXPENTRY        TEXTEQU         <EXPORT PASCAL>
  15. APIENTRY        TEXTEQU         <FAR PASCAL>
  16.  
  17. ;  Backwards compatability with 1.1
  18. CALLBACK        TEXTEQU         <EXPORT PASCAL !<LOADDS!>> ;??
  19.  
  20. CHAR            TYPEDEF         SBYTE   ; ch
  21. ; In C, this type is called SHORT, but SHORT is a keyword in assembler
  22. SSHORT          TYPEDEF         SWORD   ; s
  23. LONG            TYPEDEF         SDWORD  ; l
  24. IFNDEF INCL_SAADEFS
  25. ; In C, this type is called INT, but INT is a keyword in assembler
  26. IF (@WordSize EQ 2)
  27. INTEGER         TYPEDEF         SWORD   ; i
  28. ELSE
  29. INTEGER         TYPEDEF         SDWORD  ; i
  30. ENDIF ; @WordSize
  31. ENDIF ; INCL_SAADEFS
  32.  
  33. UCHAR           TYPEDEF         BYTE    ; uch
  34. USHORT          TYPEDEF         WORD    ; us
  35. ULONG           TYPEDEF         DWORD   ; ul
  36. IFNDEF INCL_SAADEFS
  37. IF (@WordSize EQ 2)
  38. UINTEGER        TYPEDEF         WORD    ; ui
  39. ELSE
  40. UINTEGER        TYPEDEF         DWORD   ; ui
  41. ENDIF ; @WordSize
  42. ENDIF ; INCL_SAADEFS
  43. ;BYTE already defined for assembler     ; b
  44.  
  45. ; NULL pointer value
  46. NULL            EQU             0
  47.  
  48. PSZ        TYPEDEF        FAR PTR BYTE
  49. NPSZ        TYPEDEF        NEAR PTR BYTE
  50.  
  51. PCH        TYPEDEF        FAR PTR BYTE
  52. NPCH        TYPEDEF        NEAR PTR BYTE
  53.  
  54. ;???
  55.  
  56. PF              TYPEDEF         PROTO FAR PASCAL
  57. PFN             TYPEDEF         PTR PF
  58.  
  59. NPF             TYPEDEF         PROTO NEAR PASCAL
  60. NPFN            TYPEDEF         PTR NPF
  61.  
  62. PPFN            TYPEDEF         FAR PTR PFN
  63.  
  64. PBYTE        TYPEDEF        FAR PTR BYTE
  65. NPBYTE        TYPEDEF        NEAR PTR BYTE
  66.  
  67. PCHAR           TYPEDEF         FAR PTR CHAR
  68. PSBYTE          TYPEDEF         FAR PTR SBYTE
  69. PSSHORT         TYPEDEF         FAR PTR SSHORT
  70. PSWORD          TYPEDEF         FAR PTR SWORD
  71. PLONG           TYPEDEF         FAR PTR LONG
  72. PSDWORD         TYPEDEF         FAR PTR SDWORD
  73. IFNDEF INCL_SAADEFS
  74. PINTEGER        TYPEDEF         FAR PTR INTEGER
  75. ENDIF ; INCL_SAADEFS
  76.  
  77. PUCHAR          TYPEDEF         FAR PTR UCHAR
  78. PUSHORT         TYPEDEF         FAR PTR USHORT
  79. PWORD           TYPEDEF         FAR PTR WORD
  80. PULONG          TYPEDEF         FAR PTR ULONG
  81. PDWORD          TYPEDEF         FAR PTR DWORD
  82. IFNDEF INCL_SAADEFS
  83. PUINTEGER       TYPEDEF         FAR PTR UINTEGER
  84. ENDIF ; INCL_SAADEFS
  85.  
  86. PVOID           TYPEDEF         FAR PTR
  87.  
  88. BOOL            TYPEDEF         WORD    ; f
  89. PBOOL           TYPEDEF         FAR PTR BOOL
  90.  
  91. IFNDEF TRUE
  92. TRUE            EQU             1
  93. ENDIF
  94.  
  95. IFNDEF FALSE
  96. FALSE           EQU             0
  97. ENDIF
  98.  
  99. HFILE   TYPEDEF WORD    ; hf
  100. PHFILE  TYPEDEF FAR PTR HFILE
  101.  
  102. IFNDEF INCL_SAADEFS
  103. SEL             TYPEDEF         WORD    ; sel
  104. PSEL            TYPEDEF         FAR PTR SEL
  105. ENDIF  ; INCL_SAADEFS
  106.  
  107. ;comment ^
  108. ; Useful Helper Macros
  109.  
  110. ; Create untyped far pointer from selector and offset
  111. MAKEP   MACRO   sel, off, nam
  112.         .DATA
  113. nam     PVOID   ?
  114.         .CODE
  115.         mov     ax, off
  116.         mov     nam[2], ax
  117.         mov     ax, sel
  118.         mov     nam[0], ax
  119. ENDM
  120.  
  121.  
  122. ; Extract selector or offset from far pointer
  123. SELECTOROF      MACRO   p
  124.         EXITM   <NPVOID PTR p[0]>
  125. ENDM
  126.  
  127. OFFSETOF        MACRO   p
  128.         EXITM   <NPVOID PTR p[2]>
  129. ENDM
  130.  
  131. ; Combine l and h to form a 32 bit quantity. Both must be constants.
  132. MAKEULONG  MACRO l, h
  133.     EXITM <(LOWWORD l) OR ((LOWWORD h) SHL 16)>
  134. ENDM
  135.  
  136. ; Combine l & h to form a 16 bit quantity. Both must be constants.
  137. MAKEUSHORT MACRO l, h
  138.     EXITM <(LOW l) OR ((LOW h) SHL 8)>
  139. ENDM
  140.  
  141. ; ** Common Error definitions **
  142. ERRORID         TYPEDEF         DWORD   ; errid
  143. PERRORID        TYPEDEF         FAR PTR ERRORID
  144.  
  145. ; Combine severity and error code to produce ERRORID
  146. MAKEERRORID     MACRO sev, error
  147.         EXITM   %MAKEULONG( (error), (sev) )
  148. ENDM
  149.  
  150. ; Extract error number from an errorid
  151. ERRORIDERROR    MACRO errid
  152.         EXITM   <LOWWORD (errid)>
  153. ENDM
  154.  
  155. ; Extract severity from an errorid
  156. ERRORIDSEV      MACRO errid
  157.         EXITM   <HIGHWORD (errid)>
  158. ENDM
  159.  
  160. ;  Severity codes
  161. SEVERITY_NOERROR        EQU     0000h
  162. SEVERITY_WARNING        EQU     0004h
  163. SEVERITY_ERROR          EQU     0008h
  164. SEVERITY_SEVERE         EQU     000Ch
  165. SEVERITY_UNRECOVERABLE  EQU     0010h
  166.  
  167. ;  Base component error values
  168. WINERR_BASE             EQU     1000h   ; Window Manager
  169. GPIERR_BASE             EQU     2000h   ; Graphics Presentation Interface
  170. DEVERR_BASE             EQU     3000h   ; Device Manager
  171. SPLERR_BASE             EQU     4000h   ; Spooler
  172.  
  173. ; ** Common types used across components
  174.  
  175. ; ** Common DOS types
  176. HMODULE         TYPEDEF         WORD    ; hmod
  177. PHMODULE        TYPEDEF         FAR PTR HMODULE
  178.  
  179. IFNDEF INCL_SAADEFS
  180. PID             TYPEDEF         WORD    ; pid
  181. PPID            TYPEDEF         FAR PTR PID
  182.  
  183. TID             TYPEDEF         WORD    ; tid
  184. PTID            TYPEDEF         FAR PTR TID
  185.  
  186. HSEM            TYPEDEF         FAR PTR ; hsem
  187. PHSEM           TYPEDEF         FAR PTR HSEM
  188. ENDIF ; INCL_SAADEFS
  189.