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

📄 advansys.c

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
#define SCSICMD_ReadLong          0x3E#define SCSICMD_WriteLong         0x3F#define SCSICMD_ReadTOC           0x43#define SCSICMD_ReadHeader        0x44#define SCSICMD_ModeSelect10      0x55#define SCSICMD_ModeSense10       0x5A#define SCSI_TYPE_DASD     0x00#define SCSI_TYPE_SASD     0x01#define SCSI_TYPE_PRN      0x02#define SCSI_TYPE_PROC     0x03#define SCSI_TYPE_WORM     0x04#define SCSI_TYPE_CDROM    0x05#define SCSI_TYPE_SCANNER  0x06#define SCSI_TYPE_OPTMEM   0x07#define SCSI_TYPE_MED_CHG  0x08#define SCSI_TYPE_COMM     0x09#define SCSI_TYPE_UNKNOWN  0x1F#define SCSI_TYPE_NO_DVC   0xFF#define INQ_CLOCKING_ST_ONLY    0x0#define INQ_CLOCKING_DT_ONLY    0x1#define INQ_CLOCKING_ST_AND_DT  0x3#define ASC_SCSIDIR_NOCHK    0x00#define ASC_SCSIDIR_T2H      0x08#define ASC_SCSIDIR_H2T      0x10#define ASC_SCSIDIR_NODATA   0x18#define SCSI_SENKEY_NO_SENSE      0x00#define SCSI_SENKEY_UNDEFINED     0x01#define SCSI_SENKEY_NOT_READY     0x02#define SCSI_SENKEY_MEDIUM_ERR    0x03#define SCSI_SENKEY_HW_ERR        0x04#define SCSI_SENKEY_ILLEGAL       0x05#define SCSI_SENKEY_ATTENTION     0x06#define SCSI_SENKEY_PROTECTED     0x07#define SCSI_SENKEY_BLANK         0x08#define SCSI_SENKEY_V_UNIQUE      0x09#define SCSI_SENKEY_CPY_ABORT     0x0A#define SCSI_SENKEY_ABORT         0x0B#define SCSI_SENKEY_EQUAL         0x0C#define SCSI_SENKEY_VOL_OVERFLOW  0x0D#define SCSI_SENKEY_MISCOMP       0x0E#define SCSI_SENKEY_RESERVED      0x0F#define SCSI_ASC_NOMEDIA          0x3A#define ASC_SRB_HOST(x)  ((uchar)((uchar)(x) >> 4))#define ASC_SRB_TID(x)   ((uchar)((uchar)(x) & (uchar)0x0F))#define ASC_SRB_LUN(x)   ((uchar)((uint)(x) >> 13))#define PUT_CDB1(x)   ((uchar)((uint)(x) >> 8))#define SS_GOOD              0x00#define SS_CHK_CONDITION     0x02#define SS_CONDITION_MET     0x04#define SS_TARGET_BUSY       0x08#define SS_INTERMID          0x10#define SS_INTERMID_COND_MET 0x14#define SS_RSERV_CONFLICT    0x18#define SS_CMD_TERMINATED    0x22#define SS_QUEUE_FULL        0x28#define MS_CMD_DONE    0x00#define MS_EXTEND      0x01#define MS_SDTR_LEN    0x03#define MS_SDTR_CODE   0x01#define MS_WDTR_LEN    0x02#define MS_WDTR_CODE   0x03#define MS_MDP_LEN    0x05#define MS_MDP_CODE   0x00#define M1_SAVE_DATA_PTR        0x02#define M1_RESTORE_PTRS         0x03#define M1_DISCONNECT           0x04#define M1_INIT_DETECTED_ERR    0x05#define M1_ABORT                0x06#define M1_MSG_REJECT           0x07#define M1_NO_OP                0x08#define M1_MSG_PARITY_ERR       0x09#define M1_LINK_CMD_DONE        0x0A#define M1_LINK_CMD_DONE_WFLAG  0x0B#define M1_BUS_DVC_RESET        0x0C#define M1_ABORT_TAG            0x0D#define M1_CLR_QUEUE            0x0E#define M1_INIT_RECOVERY        0x0F#define M1_RELEASE_RECOVERY     0x10#define M1_KILL_IO_PROC         0x11#define M2_QTAG_MSG_SIMPLE      0x20#define M2_QTAG_MSG_HEAD        0x21#define M2_QTAG_MSG_ORDERED     0x22#define M2_IGNORE_WIDE_RESIDUE  0x23typedef struct {    uchar               peri_dvc_type:5;    uchar               peri_qualifier:3;} ASC_SCSI_INQ0;typedef struct {    uchar               dvc_type_modifier:7;    uchar               rmb:1;} ASC_SCSI_INQ1;typedef struct {    uchar               ansi_apr_ver:3;    uchar               ecma_ver:3;    uchar               iso_ver:2;} ASC_SCSI_INQ2;typedef struct {    uchar               rsp_data_fmt:4;    uchar               res:2;    uchar               TemIOP:1;    uchar               aenc:1;} ASC_SCSI_INQ3;typedef struct {    uchar               StfRe:1;    uchar               CmdQue:1;    uchar               Reserved:1;    uchar               Linked:1;    uchar               Sync:1;    uchar               WBus16:1;    uchar               WBus32:1;    uchar               RelAdr:1;} ASC_SCSI_INQ7;typedef struct {    ASC_SCSI_INQ0       byte0;    ASC_SCSI_INQ1       byte1;    ASC_SCSI_INQ2       byte2;    ASC_SCSI_INQ3       byte3;    uchar               add_len;    uchar               res1;    uchar               res2;    ASC_SCSI_INQ7       byte7;    uchar               vendor_id[8];    uchar               product_id[16];    uchar               product_rev_level[4];} ASC_SCSI_INQUIRY;typedef struct asc_req_sense {    uchar               err_code:7;    uchar               info_valid:1;    uchar               segment_no;    uchar               sense_key:4;    uchar               reserved_bit:1;    uchar               sense_ILI:1;    uchar               sense_EOM:1;    uchar               file_mark:1;    uchar               info1[4];    uchar               add_sense_len;    uchar               cmd_sp_info[4];    uchar               asc;    uchar               ascq;    uchar               fruc;    uchar               sks_byte0:7;    uchar               sks_valid:1;    uchar               sks_bytes[2];    uchar               notused[2];    uchar               ex_sense_code;    uchar               info2[4];} ASC_REQ_SENSE;#define ASC_SG_LIST_PER_Q   7#define QS_FREE        0x00#define QS_READY       0x01#define QS_DISC1       0x02#define QS_DISC2       0x04#define QS_BUSY        0x08#define QS_ABORTED     0x40#define QS_DONE        0x80#define QC_NO_CALLBACK   0x01#define QC_SG_SWAP_QUEUE 0x02#define QC_SG_HEAD       0x04#define QC_DATA_IN       0x08#define QC_DATA_OUT      0x10#define QC_URGENT        0x20#define QC_MSG_OUT       0x40#define QC_REQ_SENSE     0x80#define QCSG_SG_XFER_LIST  0x02#define QCSG_SG_XFER_MORE  0x04#define QCSG_SG_XFER_END   0x08#define QD_IN_PROGRESS       0x00#define QD_NO_ERROR          0x01#define QD_ABORTED_BY_HOST   0x02#define QD_WITH_ERROR        0x04#define QD_INVALID_REQUEST   0x80#define QD_INVALID_HOST_NUM  0x81#define QD_INVALID_DEVICE    0x82#define QD_ERR_INTERNAL      0xFF#define QHSTA_NO_ERROR               0x00#define QHSTA_M_SEL_TIMEOUT          0x11#define QHSTA_M_DATA_OVER_RUN        0x12#define QHSTA_M_DATA_UNDER_RUN       0x12#define QHSTA_M_UNEXPECTED_BUS_FREE  0x13#define QHSTA_M_BAD_BUS_PHASE_SEQ    0x14#define QHSTA_D_QDONE_SG_LIST_CORRUPTED 0x21#define QHSTA_D_ASC_DVC_ERROR_CODE_SET  0x22#define QHSTA_D_HOST_ABORT_FAILED       0x23#define QHSTA_D_EXE_SCSI_Q_FAILED       0x24#define QHSTA_D_EXE_SCSI_Q_BUSY_TIMEOUT 0x25#define QHSTA_D_ASPI_NO_BUF_POOL        0x26#define QHSTA_M_WTM_TIMEOUT         0x41#define QHSTA_M_BAD_CMPL_STATUS_IN  0x42#define QHSTA_M_NO_AUTO_REQ_SENSE   0x43#define QHSTA_M_AUTO_REQ_SENSE_FAIL 0x44#define QHSTA_M_TARGET_STATUS_BUSY  0x45#define QHSTA_M_BAD_TAG_CODE        0x46#define QHSTA_M_BAD_QUEUE_FULL_OR_BUSY  0x47#define QHSTA_M_HUNG_REQ_SCSI_BUS_RESET 0x48#define QHSTA_D_LRAM_CMP_ERROR        0x81#define QHSTA_M_MICRO_CODE_ERROR_HALT 0xA1#define ASC_FLAG_SCSIQ_REQ        0x01#define ASC_FLAG_BIOS_SCSIQ_REQ   0x02#define ASC_FLAG_BIOS_ASYNC_IO    0x04#define ASC_FLAG_SRB_LINEAR_ADDR  0x08#define ASC_FLAG_WIN16            0x10#define ASC_FLAG_WIN32            0x20#define ASC_FLAG_ISA_OVER_16MB    0x40#define ASC_FLAG_DOS_VM_CALLBACK  0x80#define ASC_TAG_FLAG_EXTRA_BYTES               0x10#define ASC_TAG_FLAG_DISABLE_DISCONNECT        0x04#define ASC_TAG_FLAG_DISABLE_ASYN_USE_SYN_FIX  0x08#define ASC_TAG_FLAG_DISABLE_CHK_COND_INT_HOST 0x40#define ASC_SCSIQ_CPY_BEG              4#define ASC_SCSIQ_SGHD_CPY_BEG         2#define ASC_SCSIQ_B_FWD                0#define ASC_SCSIQ_B_BWD                1#define ASC_SCSIQ_B_STATUS             2#define ASC_SCSIQ_B_QNO                3#define ASC_SCSIQ_B_CNTL               4#define ASC_SCSIQ_B_SG_QUEUE_CNT       5#define ASC_SCSIQ_D_DATA_ADDR          8#define ASC_SCSIQ_D_DATA_CNT          12#define ASC_SCSIQ_B_SENSE_LEN         20#define ASC_SCSIQ_DONE_INFO_BEG       22#define ASC_SCSIQ_D_SRBPTR            22#define ASC_SCSIQ_B_TARGET_IX         26#define ASC_SCSIQ_B_CDB_LEN           28#define ASC_SCSIQ_B_TAG_CODE          29#define ASC_SCSIQ_W_VM_ID             30#define ASC_SCSIQ_DONE_STATUS         32#define ASC_SCSIQ_HOST_STATUS         33#define ASC_SCSIQ_SCSI_STATUS         34#define ASC_SCSIQ_CDB_BEG             36#define ASC_SCSIQ_DW_REMAIN_XFER_ADDR 56#define ASC_SCSIQ_DW_REMAIN_XFER_CNT  60#define ASC_SCSIQ_B_FIRST_SG_WK_QP    48#define ASC_SCSIQ_B_SG_WK_QP          49#define ASC_SCSIQ_B_SG_WK_IX          50#define ASC_SCSIQ_W_ALT_DC1           52#define ASC_SCSIQ_B_LIST_CNT          6#define ASC_SCSIQ_B_CUR_LIST_CNT      7#define ASC_SGQ_B_SG_CNTL             4#define ASC_SGQ_B_SG_HEAD_QP          5#define ASC_SGQ_B_SG_LIST_CNT         6#define ASC_SGQ_B_SG_CUR_LIST_CNT     7#define ASC_SGQ_LIST_BEG              8#define ASC_DEF_SCSI1_QNG    4#define ASC_MAX_SCSI1_QNG    4#define ASC_DEF_SCSI2_QNG    16#define ASC_MAX_SCSI2_QNG    32#define ASC_TAG_CODE_MASK    0x23#define ASC_STOP_REQ_RISC_STOP      0x01#define ASC_STOP_ACK_RISC_STOP      0x03#define ASC_STOP_CLEAN_UP_BUSY_Q    0x10#define ASC_STOP_CLEAN_UP_DISC_Q    0x20#define ASC_STOP_HOST_REQ_RISC_HALT 0x40#define ASC_TIDLUN_TO_IX(tid, lun)  (ASC_SCSI_TIX_TYPE)((tid) + ((lun)<<ASC_SCSI_ID_BITS))#define ASC_TID_TO_TARGET_ID(tid)   (ASC_SCSI_BIT_ID_TYPE)(0x01 << (tid))#define ASC_TIX_TO_TARGET_ID(tix)   (0x01 << ((tix) & ASC_MAX_TID))#define ASC_TIX_TO_TID(tix)         ((tix) & ASC_MAX_TID)#define ASC_TID_TO_TIX(tid)         ((tid) & ASC_MAX_TID)#define ASC_TIX_TO_LUN(tix)         (((tix) >> ASC_SCSI_ID_BITS) & ASC_MAX_LUN)#define ASC_QNO_TO_QADDR(q_no)      ((ASC_QADR_BEG)+((int)(q_no) << 6))typedef struct asc_scisq_1 {    uchar               status;    uchar               q_no;    uchar               cntl;    uchar               sg_queue_cnt;    uchar               target_id;    uchar               target_lun;    ASC_PADDR           data_addr;    ASC_DCNT            data_cnt;    ASC_PADDR           sense_addr;    uchar               sense_len;    uchar               extra_bytes;} ASC_SCSIQ_1;typedef struct asc_scisq_2 {    ASC_VADDR           srb_ptr;    uchar               target_ix;    uchar               flag;    uchar               cdb_len;    uchar               tag_code;    ushort              vm_id;} ASC_SCSIQ_2;typedef struct asc_scsiq_3 {    uchar               done_stat;    uchar               host_stat;    uchar               scsi_stat;    uchar               scsi_msg;} ASC_SCSIQ_3;typedef struct asc_scsiq_4 {    uchar               cdb[ASC_MAX_CDB_LEN];    uchar               y_first_sg_list_qp;    uchar               y_working_sg_qp;    uchar               y_working_sg_ix;    uchar               y_res;    ushort              x_req_count;    ushort              x_reconnect_rtn;    ASC_PADDR           x_saved_data_addr;    ASC_DCNT            x_saved_data_cnt;} ASC_SCSIQ_4;typedef struct asc_q_done_info {    ASC_SCSIQ_2         d2;    ASC_SCSIQ_3         d3;    uchar               q_status;    uchar               q_no;    uchar               cntl;    uchar               sense_len;    uchar               extra_bytes;    uchar               res;    ASC_DCNT            remain_bytes;} ASC_QDONE_INFO;typedef struct asc_sg_list {    ASC_PADDR           addr;    ASC_DCNT            bytes;} ASC_SG_LIST;typedef struct asc_sg_head {    ushort              entry_cnt;    ushort              queue_cnt;    ushort              entry_to_copy;    ushort              res;    ASC_SG_LIST         sg_list[ASC_MAX_SG_LIST];} ASC_SG_HEAD;#define ASC_MIN_SG_LIST   2typedef struct asc_min_sg_head {    ushort              entry_cnt;    ushort              queue_cnt;

⌨️ 快捷键说明

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