home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / CMDLIN.ZIP / STDDD.H < prev   
Text File  |  1992-02-07  |  4KB  |  144 lines

  1. /*
  2.  *      stddd.h        Date=920207
  3.  *
  4.  *        standard def's for 'C' device drivers
  5.  */
  6.  
  7. /*=====================================================================*/
  8.  
  9. #define DAW_CHAR        0x8000                    // 1=char, 0=block
  10. #define DAW_IDC      0x4000                    // 1=IDC avail
  11. #define DAW_IBM      0x2000                    // 1=non-IBM block
  12. #define DAW_SHR      0x1000                    // 1=sup shared dev
  13. #define DAW_OPN      0x0800                    // 1=open/close, rm
  14. #define DAW_OS2LEVEL 0x0080                    // level; 001 OS/2
  15. #define DAW_IOCTL        0x0040                    // 1=generic IOCtl
  16. #define DAW_CLK      0x0008                    // 1=CLOCK device
  17. #define DAW_NUL      0x0004                    // 1=NUL device
  18. #define DAW_SCR      0x0002                    // 1=STDOUT (screen)
  19. #define DAW_KBD      0x0001                    // 1=STDIN  (keybd)
  20.  
  21. //    device driver request packet command constants
  22.  
  23. #define RP_INIT            0x00            // init proc
  24. #define RP_MEDIACHK        0x01            // media check proc
  25. #define RP_BLDBPB         0x02            // build BPB proc
  26. #define RP_READ            0x04            // read proc
  27. #define RP_PEEK            0x05            // nondestructive read proc
  28. #define RP_INSTATUS        0x06            // input status proc
  29. #define RP_INFLUSH        0x07            // input flush proc
  30. #define RP_WRITE            0x08            // write proc
  31. #define RP_WRITEV         0x09            // write with verify proc
  32. #define RP_OUTSTATUS        0x0a            // output status proc
  33. #define RP_OUTFLUSH        0x0b            // output flush proc
  34. #define RP_OPEN            0x0d            // open proc
  35. #define RP_CLOSE            0x0e            // close proc
  36. #define RP_MEDIAREM        0x0f            // removable media proc
  37. #define RP_IOCTL            0x10            // generic IOCtl proc
  38. #define RP_MEDIARES        0x11            // reset media proc
  39. #define RP_GETLDM         0x12            // get logical drive mapping proc
  40. #define RP_SETLDM         0x13            // set logical drive mapping proc
  41. #define RP_DEINSTALL        0x14            // deinstall proc
  42. #define RP_PORTACCESS    0x15            // port access proc
  43. #define RP_PARTITION        0x16            // partitionable fixed disks
  44. #define RP_GETLUM         0x17            // get fixed disk/logical unit map
  45.                                                 
  46. //    device driver return code constants
  47.  
  48. #define RC_ERROR                0x8000
  49. #define RC_DEV_ERROR            0x4000
  50. #define RC_BUSY                0x0200
  51. #define RC_DONE                0x0100
  52. #define RC_WRITE_PROT        0x0000
  53. #define RC_UNKOWN_UNIT        0x0001
  54. #define RC_NOT_READY            0x0002
  55. #define RC_UNKNOWN_CMD        0x0003
  56. #define RC_CRC_ERROR           0x0004
  57. #define RC_BAD_REQ_LENGTH    0x0005
  58. #define RC_SEEK_ERROR        0x0006
  59. #define RC_UNKNOWN_MEDIA    0x0007
  60. #define RC_UNKNOWN_SECTOR    0x0008
  61. #define RC_OUT_OF_PAPER        0x0009
  62. #define RC_WRITE_FAULT        0x000a
  63. #define RC_READ_FAULT       0x000b
  64. #define RC_GENERAL_FAULT    0x000c
  65. #define RC_CHANGE_DISK        0x000d
  66. #define RC_UNCERTAIN_MEDIA    0x0010
  67. #define RC_CHAR_IO_INTER    0x0011
  68. #define RC_NO_MONITORS        0x0012
  69. #define RC_INVALID_PARM        0x0013
  70.  
  71. #define DEV_NAME_LEN            8
  72.  
  73. /*=====================================================================*/
  74.  
  75. typedef struct _DEVICE_HDR {
  76.     ULONG               next;
  77. //    struct _DEVICE_HDR  *pNextDev;
  78.     USHORT              devAttr;
  79.     VOID NEAR           *pStratProc;
  80.     VOID NEAR           *pIDCProc;
  81.     CHAR                devName[8];
  82.     CHAR                resv[8];
  83.     } DEVICE_HDR;
  84.  
  85. typedef struct _REQ_HEADER {
  86.     UCHAR     reqLength;
  87.     UCHAR     blockUnit;
  88.     UCHAR     command;
  89.     USHORT    status;
  90.     ULONG     resv;
  91.     VOID FAR  *pQueue;
  92.     } REQ_HEADER;
  93.  
  94. typedef struct _INIT_IN {
  95.     UCHAR      logicalUnits;
  96.     VOID FAR   *devHlp;
  97.     UCHAR FAR  *initArgs;
  98.     UCHAR      firstUnit;
  99.     } INIT_IN;
  100.  
  101. typedef struct _INIT_OUT {
  102.     UCHAR      logicalUnits;
  103.     VOID NEAR  *endCS;
  104.     VOID NEAR  *endDS;
  105.     UCHAR      resv;
  106.     } INIT_OUT;
  107.  
  108. typedef union _INIT_DATA {
  109.     INIT_IN   inData;
  110.     INIT_OUT  outData;
  111.     } INIT_DATA;
  112.  
  113. typedef struct _INIT_PACKET {
  114.     REQ_HEADER  header;
  115.     INIT_DATA   data;
  116.     } INIT_PACKET;
  117.  
  118. typedef struct _IO_PACKET {
  119.     REQ_HEADER  header;
  120.     UCHAR       media;
  121.     ULONG       ioAddr;
  122.     USHORT      count; 
  123.     ULONG       start;
  124.     USHORT      sysFileNo;
  125.     } IO_PACKET;
  126.  
  127. typedef struct _IOCTL_PACKET {
  128.     REQ_HEADER  header;
  129.     UCHAR       category;
  130.     UCHAR       function;
  131.     VOID FAR    *paramBufr;
  132.     VOID FAR    *dataBufr;
  133.     USHORT      sysFileNo;
  134.     } IOCTL_PACKET;
  135.  
  136. typedef union _REQ_PACKET {
  137.     REQ_HEADER    header;
  138.     INIT_PACKET   initPacket;
  139.     IO_PACKET     ioPacket;
  140.     IOCTL_PACKET  ioctlPacket;
  141.     } REQ_PACKET;
  142.  
  143. /*=====================================================================*/
  144.