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

📄 advansys.c

📁 GNU Mach 微内核源代码, 基于美国卡内基美隆大学的 Mach 研究项目
💻 C
📖 第 1 页 / 共 5 页
字号:
#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_SG_WK_QP          49#define ASC_SCSIQ_B_SG_WK_IX          50#define ASC_SCSIQ_W_REQ_COUNT         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;    ulong               data_addr;    ulong               data_cnt;    ulong               sense_addr;    uchar               sense_len;    uchar               extra_bytes;} ASC_SCSIQ_1;typedef struct asc_scisq_2 {    ulong               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;    ulong               x_saved_data_addr;    ulong               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;    ulong               remain_bytes;} ASC_QDONE_INFO;typedef struct asc_sg_list {    ulong               addr;    ulong               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;    ushort              entry_to_copy;    ushort              res;    ASC_SG_LIST         sg_list[ASC_MIN_SG_LIST];} ASC_MIN_SG_HEAD;#define QCX_SORT        (0x0001)#define QCX_COALEASE    (0x0002)typedef struct asc_scsi_q {    ASC_SCSIQ_1         q1;    ASC_SCSIQ_2         q2;    uchar               *cdbptr;    ASC_SG_HEAD         *sg_head;} ASC_SCSI_Q;typedef struct asc_scsi_req_q {    ASC_SCSIQ_1         r1;    ASC_SCSIQ_2         r2;    uchar       *cdbptr;    ASC_SG_HEAD *sg_head;    uchar               *sense_ptr;    ASC_SCSIQ_3         r3;    uchar               cdb[ASC_MAX_CDB_LEN];    uchar               sense[ASC_MIN_SENSE_LEN];} ASC_SCSI_REQ_Q;typedef struct asc_scsi_bios_req_q {    ASC_SCSIQ_1         r1;    ASC_SCSIQ_2         r2;    uchar               *cdbptr;    ASC_SG_HEAD         *sg_head;    uchar               *sense_ptr;    ASC_SCSIQ_3         r3;    uchar               cdb[ASC_MAX_CDB_LEN];    uchar               sense[ASC_MIN_SENSE_LEN];} ASC_SCSI_BIOS_REQ_Q;typedef struct asc_risc_q {    uchar               fwd;    uchar               bwd;    ASC_SCSIQ_1         i1;    ASC_SCSIQ_2         i2;    ASC_SCSIQ_3         i3;    ASC_SCSIQ_4         i4;} ASC_RISC_Q;typedef struct asc_sg_list_q {    uchar               seq_no;    uchar               q_no;    uchar               cntl;    uchar               sg_head_qp;    uchar               sg_list_cnt;    uchar               sg_cur_list_cnt;} ASC_SG_LIST_Q;typedef struct asc_risc_sg_list_q {    uchar               fwd;    uchar               bwd;    ASC_SG_LIST_Q       sg;    ASC_SG_LIST         sg_list[7];} ASC_RISC_SG_LIST_Q;#define ASC_EXE_SCSI_IO_MAX_IDLE_LOOP  0x1000000UL#define ASC_EXE_SCSI_IO_MAX_WAIT_LOOP  1024#define ASCQ_ERR_NO_ERROR             0#define ASCQ_ERR_IO_NOT_FOUND         1#define ASCQ_ERR_LOCAL_MEM            2#define ASCQ_ERR_CHKSUM               3#define ASCQ_ERR_START_CHIP           4#define ASCQ_ERR_INT_TARGET_ID        5#define ASCQ_ERR_INT_LOCAL_MEM        6#define ASCQ_ERR_HALT_RISC            7#define ASCQ_ERR_GET_ASPI_ENTRY       8#define ASCQ_ERR_CLOSE_ASPI           9#define ASCQ_ERR_HOST_INQUIRY         0x0A#define ASCQ_ERR_SAVED_SRB_BAD        0x0B#define ASCQ_ERR_QCNTL_SG_LIST        0x0C#define ASCQ_ERR_Q_STATUS             0x0D#define ASCQ_ERR_WR_SCSIQ             0x0E

⌨️ 快捷键说明

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