home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / MISC / scsiutil.lzh / SCSIUTIL / scsi_priv.h < prev    next >
Text File  |  1997-01-20  |  4KB  |  160 lines

  1. /*
  2.  *    scsi_priv.h
  3.  */
  4. extern errno;
  5. typedef unsigned char uchar;
  6. typedef unsigned long ulong;
  7. #include "dcmd.h"
  8. typedef char BYTE;
  9. typedef unsigned char UBYTE;
  10. typedef unsigned short UWORD;
  11. typedef unsigned long ULONG;
  12. #define AllocMem(x,y) malloc(x)
  13. #define FreeMem(x,y) free(x)
  14. #define SCSIF_READ INPUT
  15. #define SCSIF_WRITE OUTPUT
  16. #define SCSIF_AUTOSENSE 0
  17. #define TD_SECTOR 512
  18.  
  19. #define BYTES_PER_LINE    16
  20. #define SENSE_LEN 252
  21. #define MAX_DATA_LEN 252
  22. #define MAX_TOC_LEN 804        /* max TOC size = 100 TOC track descriptors */
  23. #define PAD 0
  24. #define    LINE_BUF    (128)
  25. /* #define NUM_OF_CDDAFRAMES 75    /* 75 frames per second audio */
  26. #define NUM_OF_CDDAFRAMES 75    /* 75 frames per second audio */
  27. #define CDDALEN 2352             /* 1 frame has 2352 bytes */
  28. /*#define CDDALEN 2448            /* 1 frame has max. 2448 bytes (subcode 2) */
  29. #define MAX_CDDALEN CDDALEN * NUM_OF_CDDAFRAMES
  30.  
  31. #define OFFS_KEY 2
  32. #define OFFS_CODE 12
  33.  
  34. /*
  35.  * we open ( if no -d option) the first *scsi*.device in the device list.
  36.  */
  37.  
  38. #define SCSI_STRING "/cdr@"
  39.  
  40. typedef struct MsgPort MSGPORT;
  41. typedef struct IOStdReq IOSTDREQ;
  42. typedef struct List LIST;
  43. typedef struct Node NODE;
  44. typedef struct SCSICmd SCSICMD;
  45.  
  46. typedef struct
  47.  {
  48.    BYTE   code;
  49.    UBYTE  *ptr;
  50.  } IDTOSTRING;
  51.  
  52.  
  53. #undef  FALSE
  54. #undef TRUE
  55. typedef enum
  56. {
  57.   FALSE = 0, TRUE
  58. } BOOLEAN;
  59.  
  60. typedef enum
  61. {
  62.   UNKNOWN      = -1,
  63.   APPLECD300   =  0,
  64.   APPLECD150   =  1,
  65.   TOSHIBA3401  =  2
  66. } DRIVETYPE;
  67.  
  68. /* type used for a 6 byte SCSI command */
  69. typedef struct
  70.  {
  71.    UBYTE  opcode;
  72.    UBYTE  b1;
  73.    UBYTE  b2;
  74.    UBYTE  b3;
  75.    UBYTE  b4;
  76.    UBYTE  control;
  77.  } SCSICMD6;
  78.  
  79. /* type used for a 10 byte SCSI command */
  80. typedef struct
  81.  {
  82.    UBYTE  opcode;
  83.    UBYTE  b1;
  84.    UBYTE  b2;
  85.    UBYTE  b3;
  86.    UBYTE  b4;
  87.    UBYTE  b5;
  88.    UBYTE  b6;
  89.    UBYTE  b7;
  90.    UBYTE  b8;
  91.    UBYTE  control;
  92.  } SCSICMD10;
  93.  
  94. /* type used for a 12 byte SCSI command */
  95. typedef struct
  96.  {
  97.    UBYTE  opcode;
  98.    UBYTE  b1;
  99.    UBYTE  b2;
  100.    UBYTE  b3;
  101.    UBYTE  b4;
  102.    UBYTE  b5;
  103.    UBYTE  b6;
  104.    UBYTE  b7;
  105.    UBYTE  b8;
  106.    UBYTE  b9;
  107.    UBYTE  b10;
  108.    UBYTE  control;
  109.  } SCSICMD12;
  110.  
  111.  
  112. /* SCSI commands */
  113.  
  114. #define    SCSI_CMD_TUR    0x00    /* Test Unit Ready    */
  115. #define    SCSI_CMD_RZU    0x01    /* Rezero Unit        */
  116. #define    SCSI_CMD_RQS    0x03    /* Request Sense    */
  117. #define    SCSI_CMD_FMU    0x04    /* Format unit        */
  118. #define    SCSI_CMD_RAB    0x07    /* Reassign Block    */
  119. #define    SCSI_CMD_RD    0x08    /* Read            */
  120. #define    SCSI_CMD_WR    0x0A    /* Write        */
  121. #define    SCSI_CMD_SK    0x0B    /* Seek            */
  122. #define    SCSI_CMD_INQ    0x12    /*  6B: Inquiry        */
  123. #define    SCSI_CMD_MSL    0x15    /* Mode Select        */
  124. #define    SCSI_CMD_RU    0x16    /* Reserve Unit        */
  125. #define    SCSI_CMD_RLU    0x17    /* Release Unit        */
  126. #define    SCSI_CMD_MSE    0x1A    /*  6B: Mode Sense    */
  127. #define    SCSI_CMD_SSU    0x1B    /*  6B: Start/Stop Unit    */
  128. #define    SCSI_CMD_RDI    0x1C    /* Receive Diagnostic    */
  129. #define    SCSI_CMD_SDI    0x1D    /* Send Diagnostic    */
  130. #define SCSI_CMD_PAMR    0x1E    /*  6B: Prevent Allow Medium Removal */
  131. #define    SCSI_CMD_RCP    0x25    /* Read Capacity    */
  132. #define    SCSI_CMD_RXT    0x28    /* Read Extended    */
  133. #define    SCSI_CMD_WXT    0x2A    /* Write Extended    */
  134. #define    SCSI_CMD_SKX    0x2B    /* Seek Extended    */
  135. #define    SCSI_CMD_WVF    0x2E    /* Write & Verify    */
  136. #define    SCSI_CMD_VF    0x2F    /* Verify        */
  137. #define    SCSI_CMD_RDD    0x37    /* Read Defect Data    */
  138. #define    SCSI_CMD_WDB    0x3B    /* Write Data Buffer    */
  139. #define    SCSI_CMD_RDB    0x3C    /* Read Data Buffer    */
  140.  
  141. #define SCSI_CMD_COPY        0x18    /*  6B: Copy */
  142. #define SCSI_CMD_COMPARE    0x39    /* 10B: Compare */
  143. #define SCSI_CMD_COPYANDVERIFY    0x3A    /* 10B: Copy and Verify */
  144. #define SCSI_CMD_CHGEDEF    0x40    /* 10B: Change Definition */
  145. #define SCSI_CMD_READSUBCHANNEL    0x42    /* 10B: Read Sub-Channel */
  146. #define SCSI_CMD_READTOC    0x43    /* Read TOC from CD Audio */
  147. #define SCSI_CMD_READHEADER    0x44    /* 10B: Read data block address header */
  148. #define SCSI_CMD_PLAYAUDIO10    0x45    /* Play CD Audio */
  149. #define SCSI_CMD_PLAYAUDIOTRACKINDEX    0x48    /* Play CD Audio Track */
  150.  
  151. /* Toshiba XM3x0x specific commands */
  152.  
  153. #define SCSI_CMD_READ12        0xA8    /* 12B: Read */
  154.  
  155. /* Sony CDU 561 / Sony CDU 8003 = Apple CD 300 specific commands */
  156.  
  157. #define SCSI_CMD_READCDDA    0xD8    /* 12B: read digital audio */
  158. #define SCSI_CMD_READCDDAMSF    0xD9    /* 12B: read digital audio */
  159.  
  160.