home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v2.zip / DDKX86 / DBCSDD / INC / MI.INC < prev    next >
Text File  |  1995-04-14  |  9KB  |  367 lines

  1. ;*DDK*************************************************************************/
  2. ;
  3. ; COPYRIGHT    Copyright (C) 1995 IBM Corporation
  4. ;
  5. ;    The following IBM OS/2 WARP source code is provided to you solely for
  6. ;    the purpose of assisting you in your development of OS/2 WARP device
  7. ;    drivers. You may use this code in accordance with the IBM License
  8. ;    Agreement provided in the IBM Device Driver Source Kit for OS/2. This
  9. ;    Copyright statement may not be removed.;
  10. ;*****************************************************************************/
  11. F_ID    EQU    00200000H       
  12. F_VIP    EQU    00100000H       
  13. F_VIF    EQU    00080000H       
  14. F_AC    EQU    00040000H       
  15. F_VM    EQU    00020000H       
  16. F_RF    EQU    00010000H       
  17. F_NT    EQU    00004000H       
  18. F_NTCLEAR    EQU    ( NOT F_NT)
  19. F_IOPL0    EQU    0 
  20. F_IOPL1    EQU    00001000H 
  21. F_IOPL2    EQU    00002000H 
  22. F_IOPL3    EQU    00003000H 
  23. F_IOPLMASK    EQU    00003000H       
  24. F_IOPLSYS    EQU    F_IOPL3         
  25. F_IOPLclear    EQU    ( NOT F_IOPLMASK)
  26. F_OVERFLOW    EQU    00000800H 
  27. F_DIRECTION    EQU    00000400H 
  28. F_INTERRUPT    EQU    00000200H 
  29. F_TRACE    EQU    00000100H 
  30. F_SIGN    EQU    00000080H 
  31. F_ZERO    EQU    00000040H 
  32. F_AUX    EQU    00000010H 
  33. F_PARITY    EQU    00000004H 
  34. F_CARRY    EQU    00000001H 
  35. F_UNDEFINED    EQU    0000802AH 
  36. CR0_PE    EQU    00000001H       
  37. CR0_MP    EQU    00000002H       
  38. CR0_EM    EQU    00000004H       
  39. CR0_TS    EQU    00000008H       
  40. CR0_ET    EQU    00000010H       
  41. CR0_NE    EQU    00000020H       
  42. CR0_WP    EQU    00010000H       
  43. CR0_AM    EQU    00040000H       
  44. CR0_NW    EQU    20000000H       
  45. CR0_CD    EQU    40000000H       
  46. CR0_PG    EQU    80000000H       
  47. CR0_RESERVED    EQU    1ffaffc0H       
  48. MSW_PE    EQU    CR0_PE
  49. MSW_MP    EQU    CR0_MP
  50. MSW_EM    EQU    CR0_EM
  51. MSW_TS    EQU    CR0_TS
  52. MSW_ET    EQU    CR0_ET
  53. CR3_WRITETHROUGH    EQU    00000008H      
  54. CR3_CACHEDISABLE    EQU    00000010H      
  55. CR3_FRAME    EQU    0fffff000H      
  56. CR3_RESERVED    EQU    00000fe7H      
  57. CR4_VME    EQU    00000001H 
  58. CR4_PVI    EQU    00000002H 
  59. DR_COUNT    EQU    4H              
  60. DR6_B0    EQU    00000001H       
  61. DR6_B1    EQU    00000002H       
  62. DR6_B2    EQU    00000004H       
  63. DR6_B3    EQU    00000008H       
  64. DR6_BD    EQU    00002000H       
  65. DR6_BS_BIT_INDEX    EQU    0eH       
  66. DR6_BS    EQU    (1   SHL  DR6_BS_BIT_INDEX)
  67. DR6_BT    EQU    00008000H       
  68. DR6_VALID    EQU    (DR6_B0 OR DR6_B1 OR DR6_B2 OR DR6_B3 OR DR6_BD OR DR6_BS OR DR6_BT)
  69. DR6_RESERVED    EQU     NOT (DR6_VALID)
  70. DR7_L0    EQU    00000001H       
  71. DR7_G0    EQU    00000002H       
  72. DR7_L1    EQU    00000004H       
  73. DR7_G1    EQU    00000008H       
  74. DR7_L2    EQU    00000010H       
  75. DR7_G2    EQU    00000020H       
  76. DR7_L3    EQU    00000040H       
  77. DR7_G3    EQU    00000080H       
  78. DR7_LE    EQU    00000100H       
  79. DR7_GE    EQU    00000200H       
  80. DR7_RW0    EQU    00030000H       
  81. DR7_LEN0    EQU    000c0000H       
  82. DR7_RW1    EQU    00300000H       
  83. DR7_LEN1    EQU    00c00000H       
  84. DR7_RW2    EQU    03000000H       
  85. DR7_LEN2    EQU    0c000000H       
  86. DR7_RW3    EQU    30000000H       
  87. DR7_LEN3    EQU    0c0000000H       
  88. DR7_RESERVED    EQU    0000fc00H       
  89. DR7_EXECUTE    EQU    0H              
  90. DR7_WRITE    EQU    1H              
  91. DR7_READWRITE    EQU    3H              
  92. DR7_LEN_1    EQU    0H              
  93. DR7_LEN_2    EQU    1H              
  94. DR7_LEN_4    EQU    3H              
  95. MI_ARPL    EQU    63H             
  96. MI_HLT    EQU    0f4H             
  97. MI_OPERANDSIZE    EQU    66H             
  98. MI_ADDRESSSIZE    EQU    67H             
  99. MI_TWOBYTEOP    EQU    0fH             
  100. MI_POP_DS    EQU    1fH 
  101. MI_POP_ES    EQU    07H 
  102. MI_POP_FS    EQU    0A1H             
  103. MI_POP_GS    EQU    0A9H             
  104. MI_INT3    EQU    0CCH 
  105. MI_INT    EQU    0CDH 
  106. MI_IRET    EQU    0CFH 
  107. MI_LONG_JMP    EQU    0EAH 
  108. MI_LONG_CALL    EQU    9AH 
  109. MI_LONG_RET    EQU    0CBH 
  110. MI_LONG_RETn    EQU    0CAH 
  111. MI_NEAR_RET    EQU    0C3H 
  112. MI_IN_PORT_AL    EQU    0E4H             
  113. MI_IN_PORT_AX    EQU    0E5H             
  114. MI_OUT_PORT_AL    EQU    0E6H             
  115. MI_OUT_PORT_AX    EQU    0E7H             
  116. MI_IN_DX_AL    EQU    0ECH             
  117. MI_IN_DX_AX    EQU    0EDH             
  118. MI_OUT_DX_AL    EQU    0EEH             
  119. MI_OUT_DX_AX    EQU    0EFH             
  120. MI_GROUP5    EQU    0FFH             
  121. MI_SEGES    EQU    26H             
  122. MI_SEGCS    EQU    2EH             
  123. MI_SEGSS    EQU    36H             
  124. MI_SEGDS    EQU    3EH             
  125. MI_SEGFS    EQU    64H             
  126. MI_SEGGS    EQU    65H             
  127. MI_ESCMASK    EQU    0F8H 
  128. MI_ESC    EQU    0D8H 
  129. MI_MODMASK    EQU    0C0H             
  130. MI_MODSHIFT    EQU    6                
  131. MI_MODNONE    EQU    00H             
  132. MI_MODBYTE    EQU    40H             
  133. MI_MODWORD    EQU    80H             
  134. MI_MODREG    EQU    0C0H             
  135. MI_REGMASK    EQU    38H             
  136. MI_REGSHIFT    EQU    3                
  137. MI_REGAX    EQU    00H             
  138. MI_REGCX    EQU    08H             
  139. MI_REGDX    EQU    10H             
  140. MI_REGBX    EQU    18H             
  141. MI_REG3    EQU    18H             
  142. MI_REGSP    EQU    20H             
  143. MI_REGBP    EQU    28H             
  144. MI_REGSI    EQU    30H             
  145. MI_REGDI    EQU    38H             
  146. MI_REGES    EQU    00H             
  147. MI_REGCS    EQU    08H             
  148. MI_REGSS    EQU    10H             
  149. MI_REGDS    EQU    18H             
  150. MI_REGFS    EQU    20H             
  151. MI_REGGS    EQU    28H             
  152. MI_RMMASK    EQU    07H             
  153. MI_RMSHIFT    EQU    0                
  154. MI_RMBXSI    EQU    00H             
  155. MI_RMBXDI    EQU    01H             
  156. MI_RMBPSI    EQU    02H             
  157. MI_RMBPDI    EQU    03H             
  158. MI_RMSI    EQU    04H             
  159. MI_RMDI    EQU    05H             
  160. MI_RMBP    EQU    06H             
  161. MI_RMBX    EQU    07H             
  162. MI_SIB_SSMASK    EQU    0c0H 
  163. MI_SIB_SSSHIFT    EQU    06H 
  164. MI_SIB_INDEXMASK    EQU    38H 
  165. MI_SIB_INDEXSHIFT    EQU    03H 
  166. MI_SIB_INDEXNONE    EQU    20H 
  167. MI_SIB_BASEMASK    EQU    07H 
  168. MI_SIB_BASESHIFT    EQU    00H 
  169. MI_SIB_BASEESP    EQU    04H 
  170. MI_SIB_BASENONE    EQU    05H 
  171. MI_RMEDX    EQU    02H 
  172. MI_RMSIB    EQU    04H 
  173. MI_RMDISP    EQU    05H 
  174. MI_RMEBP    EQU    05H 
  175. MI_REG6    EQU    30H 
  176. MI_REGCR0    EQU    00H 
  177. MI_PUSH_AX    EQU    50H     
  178. MI_PUSH_IMM    EQU    68H     
  179. MI_MOV_REG_IMM    EQU    0B8H     
  180. MI_MOV_REG_IMMEDIATE    EQU    0B8H     
  181. MI_MOV_REG_REGMEM    EQU    8BH     
  182. MI_ADD_AX_IMM    EQU    05H     
  183. MI_CALL_NEAR_REL    EQU    0E8H     
  184. SIZE_CALL_NEAR_REL    EQU    5        
  185. MI_LMSW_OPCODE    EQU    01H     
  186. MI_GET_CRx_OPCODE    EQU    20H     
  187. MI_GET_DRx_OPCODE    EQU    21H     
  188. MI_SET_CRx_OPCODE    EQU    22H     
  189. MI_SET_DRx_OPCODE    EQU    23H     
  190. MI_GET_TRx_OPCODE    EQU    24H     
  191. MI_SET_TRx_OPCODE    EQU    26H     
  192. MI_MOV_REG8_MEM8    EQU    8AH     
  193. MI_MOV_SEG_MEM_OPCODE    EQU    8eH     
  194.  
  195. w_s    STRUC
  196. lobyte    DB    ?
  197. hibyte    DB    ?
  198. w_s    ENDS
  199.  
  200. LowByte    EQU    lobyte
  201. HighByte    EQU    hibyte
  202.  
  203. dw_s    STRUC
  204. loword    DW    ?
  205. hiword    DW    ?
  206. dw_s    ENDS
  207.  
  208. LowWord    EQU    loword
  209. HighWord    EQU    hiword
  210.  
  211. FarPtr    STRUC
  212. Offst    DW    ?
  213. Segmt    DW    ?
  214. FarPtr    ENDS
  215.  
  216.  
  217. FarPtr32    STRUC
  218. Offst32    DD    ?
  219. Segmt32    DW    ?
  220. Pad32    DW    ?
  221. FarPtr32    ENDS
  222.  
  223.  
  224. retf16_s    STRUC
  225. retf16_ip    DW    ?
  226. retf16_cs    DW    ?
  227. retf16_s    ENDS
  228.  
  229.  
  230. retf32_s    STRUC
  231. retf32_eip    DD    ?
  232. retf32_cs    DW    ?
  233. retf32_padcs    DW    ?
  234. retf32_s    ENDS
  235.  
  236.  
  237. iret16_s    STRUC
  238. iret16_ip    DW    ?
  239. iret16_cs    DW    ?
  240. iret16_flag    DW    ?
  241. iret16_s    ENDS
  242.  
  243.  
  244. Iret_s    STRUC
  245. I_CSIP    DB    SIZE FarPtr DUP (?)
  246. I_FLAGS    DW    ?
  247. Iret_s    ENDS
  248.  
  249.  
  250. IretFrame    STRUC
  251. IretIP    DW    ?
  252. IretCS    DW    ?
  253. IretFLAGS    DW    ?
  254. IretFrame    ENDS
  255.  
  256. IretCSIP EQU     <DWORD PTR IretIP>   
  257.  
  258. iret32_s    STRUC
  259. iret32_eip    DD    ?
  260. iret32_cs    DW    ?
  261. iret32_padcs    DW    ?
  262. iret32_eflag    DD    ?
  263. iret32_s    ENDS
  264.  
  265.  
  266. Iret32_s    STRUC
  267. I32_CSEIP    DB    SIZE FarPtr32 DUP (?)
  268. I32_EFLAGS    DD    ?
  269. Iret32_s    ENDS
  270.  
  271. I32_CS          EQU     <I32_CSEIP.Segmt32>
  272. I32_EIP         EQU     <I32_CSEIP.Offst32>
  273. I32_IP          EQU     <I32_CSEIP.Offst32.loword>
  274. I32_FLAGS       EQU     <I32_EFLAGS.loword>
  275.  
  276.  
  277. pltiret16_s    STRUC
  278. pltiret16_ip    DW    ?
  279. pltiret16_cs    DW    ?
  280. pltiret16_flag    DW    ?
  281. pltiret16_sp    DW    ?
  282. pltiret16_ss    DW    ?
  283. pltiret16_s    ENDS
  284.  
  285.  
  286. PLTIret_s    STRUC
  287. PI_CSIP    DB    SIZE FarPtr DUP (?)
  288. PI_FLAGS    DW    ?
  289. PI_SSSP    DB    SIZE FarPtr DUP (?)
  290. PLTIret_s    ENDS
  291.  
  292.  
  293. PLTIretFrame    STRUC
  294. PLTIretIP    DW    ?
  295. PLTIretCS    DW    ?
  296. PLTIretFLAGS    DW    ?
  297. PLTIretSP    DW    ?
  298. PLTIretSS    DW    ?
  299. PLTIretFrame    ENDS
  300.  
  301. PLTIretCSIP     EQU     DWORD PTR PLTIretIP
  302. PLTIretSSSP     EQU     DWORD PTR PLTIretSP
  303.  
  304.  
  305. pltiret32_s    STRUC
  306. pltiret32_eip    DD    ?
  307. pltiret32_cs    DW    ?
  308. pltiret32_padcs    DW    ?
  309. pltiret32_eflag    DD    ?
  310. pltiret32_esp    DD    ?
  311. pltiret32_ss    DW    ?
  312. pltiret32_padss    DW    ?
  313. pltiret32_s    ENDS
  314.  
  315.  
  316. PLTIret32_s    STRUC
  317. PI32_CSEIP    DB    SIZE FarPtr32 DUP (?)
  318. PI32_EFLAGS    DD    ?
  319. PI32_SSESP    DB    SIZE FarPtr32 DUP (?)
  320. PLTIret32_s    ENDS
  321.  
  322. PI32_CS         EQU     <PI32_CSEIP.Segmt32>
  323. PI32_EIP        EQU     <PI32_CSEIP.Offst32>
  324. PI32_SS         EQU     <PI32_SSESP.Segmt32>
  325. PI32_ESP        EQU     <PI32_SSESP.Offst32>
  326. PI32_FLAGS      EQU     <WORD PTR PI32_EFLAGS>
  327.  
  328. ptr_t   STRUC
  329.         ptr_flat        DD      ?
  330. ptr_t   ENDS
  331. ptr_off         equ     <ptr_flat.Offst>
  332. ptr_sel         equ     <ptr_flat.Segmt>
  333.  
  334.  
  335. pusha_s    STRUC
  336. pas_di    DW    ?
  337. pas_si    DW    ?
  338. pas_bp    DW    ?
  339. pas_sp    DW    ?
  340. pas_bx    DW    ?
  341. pas_dx    DW    ?
  342. pas_cx    DW    ?
  343. pas_ax    DW    ?
  344. pusha_s    ENDS
  345.  
  346.  
  347. pushad_s    STRUC
  348. pads_edi    DD    ?
  349. pads_esi    DD    ?
  350. pads_ebp    DD    ?
  351. pads_esp    DD    ?
  352. pads_ebx    DD    ?
  353. pads_edx    DD    ?
  354. pads_ecx    DD    ?
  355. pads_eax    DD    ?
  356. pushad_s    ENDS
  357.  
  358. pads_di EQU     <WORD PTR pads_edi>
  359. pads_si EQU     <WORD PTR pads_esi>
  360. pads_bp EQU     <WORD PTR pads_ebp>
  361. pads_sp EQU     <WORD PTR pads_esp>
  362. pads_bx EQU     <WORD PTR pads_ebx>
  363. pads_dx EQU     <WORD PTR pads_edx>
  364. pads_cx EQU     <WORD PTR pads_ecx>
  365. pads_ax EQU     <WORD PTR pads_eax>
  366.  
  367.