⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scsi.h

📁 用于TM1300/PNX1300系列DSP(主要用于视频处理)的操作系统pSOS。包括全部源码
💻 H
📖 第 1 页 / 共 4 页
字号:
        wbus16:1,                   /* support for 16 bit wide scsi   */        wbus32:1,                   /* support for 32 bit wide scsi   */        reladr:1;                   /* support for relative address   */    unsigned char vendor[8];        /* Vendor identification.          */    unsigned char product[16];      /* Product identification          */    unsigned char revision[4];      /* Revision level.                 */} INQUIRY_RET_STRUCT;#elsetypedef struct    {                               /* Common returned data header     */    unsigned char device;           /* Device type code.               */    unsigned char rmb:1,            /* Removeable media.               */     qualifier:7;                   /* Device type qualifier.          */    unsigned char isiovers:2,       /* ISO version.                    */           ecmavers:3,              /* ECMA version.                   */           ansivers:3;              /* ANSI version.                   */    unsigned char :4,               /* Reserved                        */     format:4;                      /* Response format.                */    unsigned char length;           /* Additional Data length.         */    unsigned char :8;               /* Reserved                        */    unsigned char :8;               /* Reserved                        */    unsigned char reladr:1,         /* support for relative address   */                  wbus32:1,         /* support for 32 bit wide scsi   */                  wbus16:1,         /* support for 16 bit wide scsi   */                  sync:1,           /* support for synchronous trans  */                  linked:1,         /* support for linked commands    */                  res:1,            /* reserved                       */                  cmdque:1,         /* support for command queuing    */                  stffre:1;         /* support for soft reset alter   */    unsigned char vendor[8];        /* Vendor identification.          */    unsigned char product[16];      /* Product identification          */    unsigned char revision[4];      /* Revision level.                 */} INQUIRY_RET_STRUCT;#endif/*---------------------------------------------------------------------*//* Device type codes.                                                  *//*---------------------------------------------------------------------*/#define TYPE_DIRECT      0x00       /* direct access (disk)            */#define TYPE_SEQUENTIAL  0x01       /* sequential access (tape)        */#define TYPE_PRINTER     0x02       /* printer                         */#define TYPE_PROCESSOR   0x03       /* processor board                 */#define TYPE_WORM        0x04       /* write once (optical disk)       */#define TYPE_CDROM       0x05       /* cd rom                          */#define TYPE_SCANNER     0x06       /* scanner                         */#define TYPE_OMEM        0x07       /* optical memory (some disks)     */#define TYPE_CHANGER     0x08       /* medium changer (jukeboxes)      */#define TYPE_COMM        0x09       /* communication device            */#define TYPE_UNKNOWN     0x1F       /* unknown device type             */#define TYPE_HOST        0xFF       /* target id of host system        *//***********************************************************************//* Format command --                                                   *//***********************************************************************/#define FORMAT 0x04#define FORMAT_DLEN 0x6typedef struct    {    unsigned char code:8;           /* Command number                  */    unsigned char lun:3,            /* Logical unit number             */           fmtdat:1,                /* Format data provided            */            clist:1,                /* Complete list provided          */             dfmt:3;                /* Defects provide                 */    unsigned char  pat;             /* Pattern to write to disk        */    unsigned char  ileave[2];       /* Interleave factor               */    unsigned char     vu:2,         /* Vendor unique                   */                 :4,             flag:1,                /* Flagged command                 */             link:1;                /* Linked command                  */    } FORMAT_STRUCT;/***********************************************************************//* Prevent/Allow Medium Removal -- Removable devices                   *//***********************************************************************/#define PREVENT_ALLOW_MEDIUM_REMOVAL 0x1E#define PREVENT_ALLOW_MEDIUM_REMOVAL_DLEN 6 typedef struct    {    unsigned char       code;    unsigned char       lun     :3,                                :5;    unsigned char       reserved[2];    unsigned char               :7,                        prevent :1;     /* 0 - allowed 1 - prevented   */    unsigned char       vu      :2,                                :4,                        flag    :1,                        link    :1;    } PREVENT_ALLOW_MEDIUM_REMOVAL_STRUCT; /***********************************************************************//* Start/Stop Unit                                                     *//***********************************************************************/#define START_STOP_UNIT 0x1B#define START_STOP_DLEN 6typedef struct    {    unsigned char       code;    unsigned char       lun     :3,                                :4,                       immediate:1;     /* 0 - wait for operation     */                                        /* 1 - return w/o waiting     */    unsigned char       reserved[2];    unsigned char               :6,                      load_eject:1,     /* These two form one command  */                       start   :1;     /* 01 - Start spindle          */                                        /* 00 - Stop  spindle          */                                        /* 11 - Load medium            */                                        /* 10 - Stop and eject medium  */    unsigned char       vu      :2,                                :4,                        flag    :1,                        link    :1;    } START_STOP_UNIT_STRUCT;/***********************************************************************//* Mode Select command --                                              *//***********************************************************************/#define MODE_SELECT 0x15#define MODE_SELECT_DLEN 0x6typedef struct    {    unsigned char code;             /* Command number.                 */    unsigned char   lun:3,          /* Logical Unit Number.            */              pf:1,                 /* Page Format.                    */                :3,                 /* Reserved                        */              sp:1;                 /* Save Parameters.                */    unsigned char res[2];           /* Reserved                        */    unsigned char dlen;             /* Parameter List Length           */    unsigned char    vu:2,          /* Vendor unique                   */                :4,                 /* Reserved                        */            flag:1,                 /* Flag command bit.               */            link:1;                 /* Linked command bit.             */    } MODE_SELECT_STRUCT;/***********************************************************************//* Mode Sense Command -- COMMON TO MOST DEVICES                        *//***********************************************************************/#define MODE_SENSE 0x1A#define MODE_SENSE_DLEN 0x06typedef struct    {    unsigned char code;             /* Command number.                 */    unsigned char   lun:3,          /* Logical Unit Number.            */                :5;                 /* Reserved                        */    unsigned char   pcf:2,          /* Page control field.             */            page:6;                 /* Page code.                      */    unsigned char      :8;    unsigned char  dlen;            /* Bytes alloc. for data.          */    unsigned char    vu:2,          /* Vendor unique                   */                :4,                 /* Reserved                        */            flag:1,                 /* Flag command bit.               */            link:1;                 /* Linked command bit.             */    } MODE_SENSE_STRUCT;/*---------------------------------------------------------------------*//* Mode sense page control field options.                              *//*---------------------------------------------------------------------*/#define CURRENT    0#define CHANGEABLE 1#define DEFAULT    2#define SAVED      3/***********************************************************************//* Mode Sense/Select page formats                                      *//***********************************************************************/#ifdef	MRItypedef packed struct#endif#ifdef	GHS#pragma pack(1)typedef struct#endif#if _SDS#pragma maxalign(1)typedef struct#endif    {    unsigned char res[2];    unsigned char RSVD:1,         buffered_mode:3,                 speed:4;    unsigned char bdl;             /* Block Descriptor Length always 8*/    unsigned char density_code;    /* 0x00 default no error checking  */    unsigned char number_of_blocks[3]; /* not used in select */    unsigned char res2;    unsigned char block_length[3];    /* 0 variable or # of fixed bytes  */    } TAPE_MODE_SELECT_HD;#ifdef	GHS#pragma pack()#endif#if _SDS#pragma maxalign()#endif/*---------------------------------------------------------------------*//* Mode Header used for Sequential access devices (Tape Drives)        *//*---------------------------------------------------------------------*//*---------------------------------------------------------------------*//* modeheader used for vendor specific floppy type for teac FC1        *//*---------------------------------------------------------------------*/struct header_descriptor{    unsigned char reserved0;    unsigned char medium_type;    unsigned char reserved1;    unsigned char blk_descriptor_len;    unsigned char density_code;    unsigned char msb_blocks;        /* # of logical blocks 0x00 - all */    unsigned char midsb_blocks;    unsigned char lsb_blocks;    unsigned char reservedr2;    unsigned char msb_blklen;        /* block lenght for medium        */    unsigned char midsb_blklen;    unsigned char lsb_blklen;};/*---------------------------------------------------------------------*//* Read-Write Error Recovery Page                                      *//*---------------------------------------------------------------------*/#define RW_ERROR_RECOVERY_PC 0x01#define RW_ERROR_RECOVERY_DLEN 12typedef struct    {    unsigned char      ps:1,        /* Page saveable mode sense only   */                  :1,               /* Reserved                        */         page_code:6;               /* Page code (0x01)                */    unsigned char page_length;      /* Additional page length          */    unsigned char awre:1,           /* Auto write reallocation enable  */          arre:1,                   /* Auto read reallocation enable   */            tb:1,                   /* Transfer Block (on error)       */            rc:1,                   /* Read continuous                 */           err:1,                   /* Enable early recovery           */           per:1,                   /* Post error (of recovered err)   */           dte:1,                   /* disable transfer on error       */           dcr:1;                   /* disable correction              */    unsigned char retry_count;      /* times to retry operation        */    unsigned char correction_span;  /* max size of correction area     */    unsigned char head_offset;      /* head position after err rec     */    unsigned char data_strobe_offset; /* data strobe position after err*/    unsigned char :8;               /* Reserved                        */    unsigned char write_retry_count;/* Max retries to write data       */    unsigned char :8;               /* Reserved                        */    unsigned short recovery_time;   /* milliseconds max recovery time  */    } RW_ERROR_RECOVERY_STRUCT;/*---------------------------------------------------------------------*//* Disconnect-Reconnect page                                           *//*---------------------------------------------------------------------*/#define DISCONNECT_RECONNECT_PC 0x02#define DISCONNECT_RECONNECT_DLEN 16typedef struct    {    unsigned char      ps:1,        /* Page saveable mode sense only   */                  :1,               /* Reserved                        */         page_code:6;               /* Page code (0x02)                */    unsigned char page_length;      /* Additional page length          */    unsigned char buf_full_ratio;   /* min in buf before reselection   */                                    /* on read operation               */    unsigned char buf_empty_ratio;  /* min in buf before reselection   */                                    /* on write operation              */    unsigned short bus_inactive_lim;/* disconnect after no activity    */    unsigned short disconnect_time_lim;/* min time to wait to reselect */                                    /* after disconnect                */    unsigned short connect_time_lim;/* max time bus may be used        */                                    /* before target must disconnect   */    unsigned short max_burst_size;  /* max data transfered by target   */                                    /* before target must disconnect   */    unsigned char :6,               /* Reserved                        */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -