home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / borhead.zip / BSEDEV.H < prev    next >
C/C++ Source or Header  |  1994-11-09  |  19KB  |  571 lines

  1. /**************************************************************************\
  2. *                                                                         *
  3. * Module Name: BSEDEV.H                                                   *
  4. *                                                                         *
  5. * OS/2 Structures and constants for use with DosDevIOCtl                  *
  6. *                                                                         *
  7. * Copyright (c) 1987-1992, IBM Corporation                                *
  8. *                                                                         *
  9. \**************************************************************************/
  10.  
  11. #if defined(__IBMC__)
  12. #pragma info( none )
  13.    #ifndef __CHKHDR__
  14.       #pragma info( none )
  15.    #endif
  16. #pragma info( restore )
  17. #endif    /* __IBMC__ */
  18.  
  19. #ifdef __cplusplus
  20.       extern "C" {
  21. #endif
  22.  
  23. #ifndef __BSEDEV__
  24. #define __BSEDEV__
  25.  
  26. #define BSEDEV_INCLUDED
  27.  
  28. /* Input and Output Control Categories */
  29.  
  30. #define IOCTL_ASYNC                        0x0001
  31. #define IOCTL_SCR_AND_PTRDRAW              0x0003
  32. #define IOCTL_KEYBOARD                     0x0004
  33. #define IOCTL_PRINTER                      0x0005
  34. #define IOCTL_LIGHTPEN                     0x0006
  35. #define IOCTL_POINTINGDEVICE               0x0007
  36. #define IOCTL_DISK                         0x0008
  37. #define IOCTL_PHYSICALDISK                 0x0009
  38. #define IOCTL_MONITOR                      0x000A
  39. #define IOCTL_GENERAL                      0x000B
  40.  
  41. /* Serial-Device Control */
  42.  
  43. #define ASYNC_SETBAUDRATE                  0x0041
  44. #define ASYNC_SETLINECTRL                  0x0042
  45. #define ASYNC_TRANSMITIMM                  0x0044
  46. #define ASYNC_SETBREAKOFF                  0x0045
  47. #define ASYNC_SETMODEMCTRL                 0x0046
  48. #define ASYNC_SETBREAKON                   0x004B
  49. #define ASYNC_STOPTRANSMIT                 0x0047
  50. #define ASYNC_STARTTRANSMIT                0x0048
  51. #define ASYNC_SETDCBINFO                   0x0053
  52. #define ASYNC_GETBAUDRATE                  0x0061
  53. #define ASYNC_GETLINECTRL                  0x0062
  54. #define ASYNC_GETCOMMSTATUS                0x0064
  55. #define ASYNC_GETLINESTATUS                0x0065
  56. #define ASYNC_GETMODEMOUTPUT               0x0066
  57. #define ASYNC_GETMODEMINPUT                0x0067
  58. #define ASYNC_GETINQUECOUNT                0x0068
  59. #define ASYNC_GETOUTQUECOUNT               0x0069
  60. #define ASYNC_GETCOMMERROR                 0x006D
  61. #define ASYNC_GETCOMMEVENT                 0x0072
  62. #define ASYNC_GETDCBINFO                   0x0073
  63.  
  64. /* Screen/Pointer-Draw Control */
  65.  
  66. #define SCR_ALLOCLDT                       0x0070
  67. #define SCR_DEALLOCLDT                     0x0071
  68. #define PTR_GETPTRDRAWADDRESS              0x0072
  69. #define SCR_ALLOCLDTOFF                    0x0075
  70.  
  71. /* Keyboard Control */
  72.  
  73. #define KBD_SETTRANSTABLE                  0x0050
  74. #define KBD_SETINPUTMODE                   0x0051
  75. #define KBD_SETINTERIMFLAG                 0x0052
  76. #define KBD_SETSHIFTSTATE                  0x0053
  77. #define KBD_SETTYPAMATICRATE               0x0054
  78. #define KBD_SETFGNDSCREENGRP               0x0055
  79. #define KBD_SETSESMGRHOTKEY                0x0056
  80. #define KBD_SETFOCUS                       0x0057
  81. #define KBD_SETKCB                         0x0058
  82. #define KBD_SETNLS                         0x005C
  83. #define KBD_CREATE                         0x005D
  84. #define KBD_DESTROY                        0x005E
  85. #define KBD_GETINPUTMODE                   0x0071
  86. #define KBD_GETINTERIMFLAG                 0x0072
  87. #define KBD_GETSHIFTSTATE                  0x0073
  88. #define KBD_READCHAR                       0x0074
  89. #define KBD_PEEKCHAR                       0x0075
  90. #define KBD_GETSESMGRHOTKEY                0x0076
  91. #define KBD_GETKEYBDTYPE                   0x0077
  92. #define KBD_GETCODEPAGEID                  0x0078
  93. #define KBD_XLATESCAN                      0x0079
  94.  
  95. /* Printer Control */
  96.  
  97. #define PRT_QUERYJOBHANDLE                 0x0021
  98. #define PRT_SETFRAMECTL                    0x0042
  99. #define PRT_SETINFINITERETRY               0x0044
  100. #define PRT_INITPRINTER                    0x0046
  101. #define PRT_ACTIVATEFONT                   0x0048
  102. #define PRT_GETFRAMECTL                    0x0062
  103. #define PRT_GETINFINITERETRY               0x0064
  104. #define PRT_GETPRINTERSTATUS               0x0066
  105. #define PRT_QUERYACTIVEFONT                0x0069
  106. #define PRT_VERIFYFONT                     0x006A
  107.  
  108. /* Pointing-Device (Mouse) Control */
  109.  
  110. #define MOU_ALLOWPTRDRAW                   0x0050
  111. #define MOU_UPDATEDISPLAYMODE              0x0051
  112. #define MOU_SCREENSWITCH                   0x0052
  113. #define MOU_SETSCALEFACTORS                0x0053
  114. #define MOU_SETEVENTMASK                   0x0054
  115. #define MOU_SETHOTKEYBUTTON                0x0055
  116. #define MOU_SETPTRSHAPE                    0x0056
  117. #define MOU_DRAWPTR                        0x0057
  118. #define MOU_REMOVEPTR                      0x0058
  119. #define MOU_SETPTRPOS                      0x0059
  120. #define MOU_SETPROTDRAWADDRESS             0x005A
  121. #define MOU_SETREALDRAWADDRESS             0x005B
  122. #define MOU_SETMOUSTATUS                   0x005C
  123. #define MOU_DISPLAYMODECHANGE              0x005D
  124. #define MOU_GETBUTTONCOUNT                 0x0060
  125. #define MOU_GETMICKEYCOUNT                 0x0061
  126. #define MOU_GETMOUSTATUS                   0x0062
  127. #define MOU_READEVENTQUE                   0x0063
  128. #define MOU_GETQUESTATUS                   0x0064
  129. #define MOU_GETEVENTMASK                   0x0065
  130. #define MOU_GETSCALEFACTORS                0x0066
  131. #define MOU_GETPTRPOS                      0x0067
  132. #define MOU_GETPTRSHAPE                    0x0068
  133. #define MOU_GETHOTKEYBUTTON                0x0069
  134. #define MOU_VER                            0x006A
  135.  
  136. /* Disk/Diskette Control */
  137.  
  138. #define DSK_LOCKDRIVE                      0x0000
  139. #define DSK_UNLOCKDRIVE                    0x0001
  140. #define DSK_REDETERMINEMEDIA               0x0002
  141. #define DSK_SETLOGICALMAP                  0x0003
  142. #define DSK_BLOCKREMOVABLE                 0x0020
  143. #define DSK_GETLOGICALMAP                  0x0021
  144. #define DSK_SETDEVICEPARAMS                0x0043
  145. #define DSK_WRITETRACK                     0x0044
  146. #define DSK_FORMATVERIFY                   0x0045
  147. #define DSK_GETDEVICEPARAMS                0x0063
  148. #define DSK_READTRACK                      0x0064
  149. #define DSK_VERIFYTRACK                    0x0065
  150.  
  151. /* Physical-Disk Control */
  152.  
  153. #define PDSK_LOCKPHYSDRIVE                 0x0000
  154. #define PDSK_UNLOCKPHYSDRIVE               0x0001
  155. #define PDSK_WRITEPHYSTRACK                0x0044
  156. #define PDSK_GETPHYSDEVICEPARAMS           0x0063
  157. #define PDSK_READPHYSTRACK                 0x0064
  158. #define PDSK_VERIFYPHYSTRACK               0x0065
  159.  
  160. /* Character-Monitor Control */
  161. #define MON_REGISTERMONITOR                0x0040
  162.  
  163. /* General Device Control */
  164. #define DEV_FLUSHINPUT                     0x0001
  165. #define DEV_FLUSHOUTPUT                    0x0002
  166. #define DEV_QUERYMONSUPPORT                0x0060
  167.  
  168.  
  169. /* ASYNC_GETCOMMERROR, ASYNC_SETBREAKOFF, ASYNC_SETBREAKON,
  170.  * ASYNC_SETMODEMCTRL
  171.  */
  172.  
  173. #define RX_QUE_OVERRUN                     0x0001
  174. #define RX_HARDWARE_OVERRUN                0x0002
  175. #define PARITY_ERROR                       0x0004
  176. #define FRAMING_ERROR                      0x0008
  177.  
  178. /* ASYNC_GETCOMMEVENT */
  179. #define CHAR_RECEIVED                      0x0001
  180. #define LAST_CHAR_SENT                     0x0004
  181. #define CTS_CHANGED                        0x0008
  182. #define DSR_CHANGED                        0x0010
  183. #define DCD_CHANGED                        0x0020
  184. #define BREAK_DETECTED                     0x0040
  185. #define ERROR_OCCURRED                     0x0080
  186. #define RI_DETECTED                        0x0100
  187.  
  188. /* ASYNC_GETCOMMSTATUS */
  189. #define TX_WAITING_FOR_CTS                 0x0001
  190. #define TX_WAITING_FOR_DSR                 0x0002
  191. #define TX_WAITING_FOR_DCD                 0x0004
  192. #define TX_WAITING_FOR_XON                 0x0008
  193. #define TX_WAITING_TO_SEND_XON             0x0010
  194. #define TX_WAITING_WHILE_BREAK_ON          0x0020
  195. #define TX_WAITING_TO_SEND_IMM             0x0040
  196. #define RX_WAITING_FOR_DSR                 0x0080
  197.  
  198. /* ASYNC_GETLINESTATUS */
  199. #define WRITE_REQUEST_QUEUED               0x0001
  200. #define DATA_IN_TX_QUE                     0x0002
  201. #define HARDWARE_TRANSMITTING              0x0004
  202. #define CHAR_READY_TO_SEND_IMM             0x0008
  203. #define WAITING_TO_SEND_XON                0x0010
  204. #define WAITING_TO_SEND_XOFF               0x0020
  205.  
  206. /* ASYNC_GETMODEMINPUT */
  207. #define CTS_ON                             0x10
  208. #define DSR_ON                             0x20
  209. #define RI_ON                              0x40
  210. #define DCD_ON                             0x80
  211.  
  212. /* DSK_SETDEVICEPARAMS */
  213. #define BUILD_BPB_FROM_MEDIUM              0x00
  214. #define REPLACE_BPB_FOR_DEVICE             0x01
  215. #define REPLACE_BPB_FOR_MEDIUM             0x02
  216.  
  217. /* KBD_GETINPUTMODE, KBD_PEEKCHAR, KBD_SETINPUTMODE*/
  218. #define ASCII_MODE                         0x00
  219. #define BINARY_MODE                        0x80
  220.  
  221. /* KBD_GETINTERIMFLAG */
  222. #define CONVERSION_REQUEST                 0x20
  223. #define INTERIM_CHAR                       0x80
  224.  
  225. /* KBD_GETSESMGRHOTKEY */
  226. #define HOTKEY_MAX_COUNT                   0x0000
  227. #define HOTKEY_CURRENT_COUNT               0x0001
  228.  
  229. /* KBD_PEEKCHAR */
  230. #define KBD_DATA_RECEIVED                  0x0001
  231. #define KBD_DATA_BINARY                    0x8000
  232.  
  233. /* KBD_READCHAR */
  234. #define KBD_READ_WAIT                      0x0000
  235. #define KBD_READ_NOWAIT                    0x8000
  236.  
  237. /* KBD_SETINPUTMODE */
  238. #define SHIFT_REPORT_MODE                  0x01
  239.  
  240. #ifndef INCL_MOU
  241.  
  242.    #define MOUSE_MOTION                    0x0001
  243.    #define MOUSE_MOTION_WITH_BN1_DOWN      0x0002
  244.    #define MOUSE_BN1_DOWN                  0x0004
  245.    #define MOUSE_MOTION_WITH_BN2_DOWN      0x0008
  246.    #define MOUSE_BN2_DOWN                  0x0010
  247.    #define MOUSE_MOTION_WITH_BN3_DOWN      0x0020
  248.    #define MOUSE_BN3_DOWN                  0x0040
  249.  
  250.    #define MHK_BUTTON1                     0x0001
  251.    #define MHK_BUTTON2                     0x0002
  252.    #define MHK_BUTTON3                     0x0004
  253.  
  254.    #define MOU_NOWAIT                      0x0000
  255.    #define MOU_WAIT                        0x0001
  256.  
  257. #endif /* #ifndef INCL_MOU */
  258.  
  259. /* MOU_GETHOTKEYBUTTON, MOU_SETHOTKEYBUTTON */
  260. #define MHK_NO_HOTKEY                      0x0000
  261.  
  262. /* MOU_GETMOUSTATUS */
  263. #define MOUSE_QUEUEBUSY                    0x0001
  264. #define MOUSE_BLOCKREAD                    0x0002
  265. #define MOUSE_FLUSH                        0x0004
  266. #define MOUSE_UNSUPPORTED_MODE             0x0008
  267. #define MOUSE_DISABLED                     0x0100
  268. #define MOUSE_MICKEYS                      0x0200
  269.  
  270. /* PRT_GETPRINTERSTATUS */
  271. #define PRINTER_TIMEOUT                    0x0001
  272. #define PRINTER_IO_ERROR                   0x0008
  273. #define PRINTER_SELECTED                   0x0010
  274. #define PRINTER_OUT_OF_PAPER               0x0020
  275. #define PRINTER_ACKNOWLEDGED               0x0040
  276. #define PRINTER_NOT_BUSY                   0x0080
  277.  
  278. /* fbCtlHndShake */
  279. #define MODE_DTR_CONTROL                   0x01
  280. #define MODE_DTR_HANDSHAKE                 0x02
  281. #define MODE_CTS_HANDSHAKE                 0x08
  282. #define MODE_DSR_HANDSHAKE                 0x10
  283. #define MODE_DCD_HANDSHAKE                 0x20
  284. #define MODE_DSR_SENSITIVITY               0x40
  285.  
  286. /* fbFlowReplace */
  287. #define MODE_AUTO_TRANSMIT                 0x01
  288. #define MODE_AUTO_RECEIVE                  0x02
  289. #define MODE_ERROR_CHAR                    0x04
  290. #define MODE_NULL_STRIPPING                0x08
  291. #define MODE_BREAK_CHAR                    0x10
  292. #define MODE_RTS_CONTROL                   0x40
  293. #define MODE_RTS_HANDSHAKE                 0x80
  294. #define MODE_TRANSMIT_TOGGLE               0xC0
  295.  
  296. /* fbTimeout */
  297. #define MODE_NO_WRITE_TIMEOUT              0x01
  298. #define MODE_READ_TIMEOUT                  0x02
  299. #define MODE_WAIT_READ_TIMEOUT             0x04
  300. #define MODE_NOWAIT_READ_TIMEOUT           0x06
  301.  
  302. typedef struct _DCBINFO         /* dcbinf */
  303.         {
  304.         USHORT usWriteTimeout;
  305.         USHORT usReadTimeout;
  306.         BYTE   fbCtlHndShake;
  307.         BYTE   fbFlowReplace;
  308.         BYTE   fbTimeout;
  309.         BYTE   bErrorReplacementChar;
  310.         BYTE   bBreakReplacementChar;
  311.         BYTE   bXONChar;
  312.         BYTE   bXOFFChar;
  313.         } DCBINFO, *PDCBINFO;
  314.  
  315. #pragma pack(1)
  316.  
  317. typedef struct _TRACKLAYOUT     /* trckl */
  318.         {
  319.         BYTE   bCommand;
  320.         USHORT usHead;
  321.         USHORT usCylinder;
  322.         USHORT usFirstSector;
  323.         USHORT cSectors;
  324.         struct {
  325.                USHORT usSectorNumber;
  326.                USHORT usSectorSize;
  327.                } TrackTable[1];
  328.         } TRACKLAYOUT, *PTRACKLAYOUT;
  329.  
  330.  
  331. #define DEVTYPE_48TPI                      0x0000
  332. #define DEVTYPE_96TPI                      0x0001
  333. #define DEVTYPE_35                         0x0002
  334. #define DEVTYPE_8SD                        0x0003
  335. #define DEVTYPE_8DD                        0x0004
  336. #define DEVTYPE_FIXED                      0x0005
  337. #define DEVTYPE_TAPE                       0x0006
  338. #define DEVTYPE_UNKNOWN                    0x0007
  339.  
  340.  
  341. #pragma pack(1)
  342.  
  343. typedef struct _BIOSPARAMETERBLOCK      /* bspblk */
  344.         {
  345.         USHORT usBytesPerSector;
  346.         BYTE   bSectorsPerCluster;
  347.         USHORT usReservedSectors;
  348.         BYTE   cFATs;
  349.         USHORT cRootEntries;
  350.         USHORT cSectors;
  351.         BYTE   bMedia;
  352.         USHORT usSectorsPerFAT;
  353.         USHORT usSectorsPerTrack;
  354.         USHORT cHeads;
  355.         ULONG  cHiddenSectors;
  356.         ULONG  cLargeSectors;
  357.         BYTE   abReserved[6];
  358.         USHORT cCylinders;
  359.         BYTE   bDeviceType;
  360.         USHORT fsDeviceAttr;
  361.         } BIOSPARAMETERBLOCK;
  362. typedef BIOSPARAMETERBLOCK *PBIOSPARAMETERBLOCK;
  363.  
  364. typedef struct _SCREENGROUP     /* scrgrp */
  365.         {
  366.         USHORT idScreenGrp;
  367.         USHORT fTerminate;
  368.         } SCREENGROUP;
  369. typedef  SCREENGROUP *PSCREENGROUP;
  370.  
  371. typedef struct _FRAME           /* frm */
  372.         {
  373.         BYTE bCharsPerLine;
  374.         BYTE bLinesPerInch;
  375.         } FRAME;
  376. typedef FRAME *PFRAME;
  377.  
  378. typedef struct _KBDTYPE         /* kbdtyp */
  379.         {
  380.         USHORT usType;
  381.         USHORT reserved1;
  382.         USHORT reserved2;
  383.         } KBDTYPE;
  384. typedef KBDTYPE *PKBDTYPE;
  385.  
  386. typedef struct _LINECONTROL     /* lnctl */
  387.         {
  388.         BYTE bDataBits;
  389.         BYTE bParity;
  390.         BYTE bStopBits;
  391.         BYTE fTransBreak;
  392.         } LINECONTROL;
  393. typedef LINECONTROL *PLINECONTROL;
  394.  
  395. /* MODEMSTATUS.fbModemOn, ASYNC_GETMODEMOUTPUT */
  396. #define DTR_ON                             0x01
  397. #define RTS_ON                             0x02
  398.  
  399. /* MODEMSTATUS.fbModemOff */
  400. #define DTR_OFF                            0xFE
  401. #define RTS_OFF                            0xFD
  402.  
  403. typedef struct _MODEMSTATUS     /* mdmst */
  404.         {
  405.         BYTE fbModemOn;
  406.         BYTE fbModemOff;
  407.         } MODEMSTATUS;
  408. typedef MODEMSTATUS *PMODEMSTATUS;
  409.  
  410. #pragma pack(1)
  411.  
  412. typedef struct _TRACKFORMAT     /* trckfmt */
  413.         {
  414.         BYTE bCommand;
  415.         USHORT usHead;
  416.         USHORT usCylinder;
  417.         USHORT usReserved;
  418.         USHORT cSectors;
  419.         struct {
  420.                BYTE bCylinder;
  421.                BYTE bHead;
  422.                BYTE idSector;
  423.                BYTE bBytesSector;
  424.                } FormatTable[1];
  425.         } TRACKFORMAT;
  426.  
  427. typedef TRACKFORMAT *PTRACKFORMAT;
  428.  
  429. typedef struct _RXQUEUE         /* rxq */
  430.         {
  431.         USHORT cch;
  432.         USHORT cb;
  433.         } RXQUEUE;
  434. typedef RXQUEUE *PRXQUEUE;
  435.  
  436. typedef struct _DEVICEPARAMETERBLOCK    /* dvpblck */
  437.         {
  438.         USHORT reserved1;
  439.         USHORT cCylinders;
  440.         USHORT cHeads;
  441.         USHORT cSectorsPerTrack;
  442.         USHORT reserved2;
  443.         USHORT reserved3;
  444.         USHORT reserved4;
  445.         USHORT reserved5;
  446.         } DEVICEPARAMETERBLOCK;
  447.  
  448. typedef DEVICEPARAMETERBLOCK     *PDEVICEPARAMETERBLOCK;
  449.  
  450. /* The following must be packed on 2 bytes boundary */
  451. #pragma pack(2)
  452.  
  453. typedef struct _PTRDRAWFUNCTION         /* ptrdfnc */
  454.         {
  455.         USHORT usReturnCode;
  456.         PFN pfnDraw;
  457.         PCH pchDataSeg;
  458.         } PTRDRAWFUNCTION;
  459.  
  460. typedef PTRDRAWFUNCTION *PPTRDRAWFUNCTION;
  461.  
  462. typedef struct _PTRDRAWADDRESS          /* ptrdaddr */
  463.         {
  464.         USHORT reserved;
  465.         PTRDRAWFUNCTION ptrdfnc;
  466.         } PTRDRAWADDRESS;
  467.  
  468. typedef PTRDRAWADDRESS  *PPTRDRAWADDRESS;
  469.  
  470. typedef struct _SHIFTSTATE      /* shftst */
  471.         {
  472.         USHORT fsState;
  473.         BYTE   fNLS;
  474.         } SHIFTSTATE;
  475.  
  476. typedef SHIFTSTATE  *PSHIFTSTATE;
  477.  
  478.  
  479.  
  480. /* HOTKEY.fsHotKey/SHIFTSTATE.fsState */
  481. #define RIGHTSHIFT                         0x0001
  482. #define LEFTSHIFT                          0x0002
  483. #define CONTROL                            0x0004
  484. #define ALT                                0x0008
  485. #define SCROLLLOCK_ON                      0x0010
  486. #define NUMLOCK_ON                         0x0020
  487. #define CAPSLOCK_ON                        0x0040
  488. #define INSERT_ON                          0x0080
  489. #define LEFTCONTROL                        0x0100
  490. #define LEFTALT                            0x0200
  491. #define RIGHTCONTROL                       0x0400
  492. #define RIGHTALT                           0x0800
  493. #define SCROLLLOCK                         0x1000
  494. #define NUMLOCK                            0x2000
  495. #define CAPSLOCK                           0x4000
  496. #define SYSREQ                             0x8000
  497.  
  498. typedef struct _HOTKEY          /* htky */
  499.         {
  500.         USHORT fsHotKey;
  501.         UCHAR  uchScancodeMake;
  502.         UCHAR  uchScancodeBreak;
  503.         USHORT idHotKey;
  504.         } HOTKEY;
  505.  
  506. typedef HOTKEY *PHOTKEY;
  507.  
  508. typedef struct _MONITORPOSITION         /* mnpos */
  509.         {
  510.         USHORT fPosition;
  511.         USHORT index;
  512.         ULONG  pbInBuf;
  513.         USHORT offOutBuf;
  514.         } MONITORPOSITION;
  515.  
  516. typedef MONITORPOSITION  *PMONITORPOSITION;
  517.  
  518. typedef struct _RATEDELAY       /* rtdly */
  519.         {
  520.         USHORT usDelay;
  521.         USHORT usRate;
  522.         } RATEDELAY;
  523. typedef RATEDELAY  *PRATEDELAY;
  524.  
  525. typedef struct _CODEPAGEINFO    /* cpi */
  526.         {
  527.         PBYTE pbTransTable;
  528.         USHORT idCodePage;
  529.         USHORT idTable;
  530.         } CODEPAGEINFO;
  531. typedef *PCODEPAGEINFO;
  532.  
  533. typedef struct _CPID    /* cpid */
  534.         {
  535.         USHORT idCodePage;
  536.         USHORT Reserved;
  537.         } CPID;
  538. typedef CPID *PCPID;
  539.  
  540. typedef struct _LDTADDRINFO     /* ldtaddr */
  541.         {
  542.         PULONG pulPhysAddr;
  543.         USHORT cb;
  544.         } LDTADDRINFO;
  545.  
  546. typedef LDTADDRINFO *PLDTADDRINFO;
  547.  
  548. typedef struct _PTRDRAWDATA     /* ptrdd */
  549.         {
  550.         USHORT cb;
  551.         USHORT usConfig;
  552.         USHORT usFlag;
  553.         } PTRDRAWDATA;
  554. #pragma pack()                           /*restore default packing */
  555.  
  556. typedef PTRDRAWDATA *PPTRDRAWDATA;
  557.  
  558. #endif /* __BSEDEV__ */
  559.  
  560. #ifdef __cplusplus
  561.         }
  562. #endif
  563.  
  564. #if defined(__IBMC__)
  565. #pragma info( none )
  566.    #ifndef __CHKHDR__
  567.       #pragma info( restore )
  568.    #endif
  569. #pragma info( restore )
  570. #endif    /* __IBMC__ */
  571.