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

📄 advansys.c

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    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;    ushort              remain_sg_entry_cnt;    ushort              next_sg_index;} 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#define ASCQ_ERR_PC_ADDR              0x0F#define ASCQ_ERR_SYN_OFFSET           0x10#define ASCQ_ERR_SYN_XFER_TIME        0x11#define ASCQ_ERR_LOCK_DMA             0x12#define ASCQ_ERR_UNLOCK_DMA           0x13#define ASCQ_ERR_VDS_CHK_INSTALL      0x14#define ASCQ_ERR_MICRO_CODE_HALT      0x15#define ASCQ_ERR_SET_LRAM_ADDR        0x16#define ASCQ_ERR_CUR_QNG              0x17#define ASCQ_ERR_SG_Q_LINKS           0x18#define ASCQ_ERR_SCSIQ_PTR            0x19#define ASCQ_ERR_ISR_RE_ENTRY         0x1A#define ASCQ_ERR_CRITICAL_RE_ENTRY    0x1B#define ASCQ_ERR_ISR_ON_CRITICAL      0x1C#define ASCQ_ERR_SG_LIST_ODD_ADDRESS  0x1D#define ASCQ_ERR_XFER_ADDRESS_TOO_BIG 0x1E#define ASCQ_ERR_SCSIQ_NULL_PTR       0x1F#define ASCQ_ERR_SCSIQ_BAD_NEXT_PTR   0x20#define ASCQ_ERR_GET_NUM_OF_FREE_Q    0x21#define ASCQ_ERR_SEND_SCSI_Q          0x22#define ASCQ_ERR_HOST_REQ_RISC_HALT   0x23#define ASCQ_ERR_RESET_SDTR           0x24#define ASC_WARN_NO_ERROR             0x0000#define ASC_WARN_IO_PORT_ROTATE       0x0001#define ASC_WARN_EEPROM_CHKSUM        0x0002#define ASC_WARN_IRQ_MODIFIED         0x0004#define ASC_WARN_AUTO_CONFIG          0x0008#define ASC_WARN_CMD_QNG_CONFLICT     0x0010#define ASC_WARN_EEPROM_RECOVER       0x0020#define ASC_WARN_CFG_MSW_RECOVER      0x0040#define ASC_WARN_SET_PCI_CONFIG_SPACE 0x0080#define ASC_IERR_WRITE_EEPROM         0x0001#define ASC_IERR_MCODE_CHKSUM         0x0002#define ASC_IERR_SET_PC_ADDR          0x0004#define ASC_IERR_START_STOP_CHIP      0x0008#define ASC_IERR_IRQ_NO               0x0010#define ASC_IERR_SET_IRQ_NO           0x0020#define ASC_IERR_CHIP_VERSION         0x0040#define ASC_IERR_SET_SCSI_ID          0x0080#define ASC_IERR_GET_PHY_ADDR         0x0100#define ASC_IERR_BAD_SIGNATURE        0x0200#define ASC_IERR_NO_BUS_TYPE          0x0400#define ASC_IERR_SCAM                 0x0800#define ASC_IERR_SET_SDTR             0x1000#define ASC_IERR_RW_LRAM              0x8000#define ASC_DEF_IRQ_NO  10#define ASC_MAX_IRQ_NO  15#define ASC_MIN_IRQ_NO  10#define ASC_MIN_REMAIN_Q        (0x02)#define ASC_DEF_MAX_TOTAL_QNG   (0xF0)#define ASC_MIN_TAG_Q_PER_DVC   (0x04)#define ASC_DEF_TAG_Q_PER_DVC   (0x04)#define ASC_MIN_FREE_Q        ASC_MIN_REMAIN_Q#define ASC_MIN_TOTAL_QNG     ((ASC_MAX_SG_QUEUE)+(ASC_MIN_FREE_Q))#define ASC_MAX_TOTAL_QNG 240#define ASC_MAX_PCI_ULTRA_INRAM_TOTAL_QNG 16#define ASC_MAX_PCI_ULTRA_INRAM_TAG_QNG   8#define ASC_MAX_PCI_INRAM_TOTAL_QNG  20#define ASC_MAX_INRAM_TAG_QNG   16#define ASC_IOADR_TABLE_MAX_IX  11#define ASC_IOADR_GAP   0x10#define ASC_SEARCH_IOP_GAP 0x10#define ASC_MIN_IOP_ADDR   (PortAddr)0x0100#define ASC_MAX_IOP_ADDR   (PortAddr)0x3F0#define ASC_IOADR_1     (PortAddr)0x0110#define ASC_IOADR_2     (PortAddr)0x0130#define ASC_IOADR_3     (PortAddr)0x0150#define ASC_IOADR_4     (PortAddr)0x0190#define ASC_IOADR_5     (PortAddr)0x0210#define ASC_IOADR_6     (PortAddr)0x0230#define ASC_IOADR_7     (PortAddr)0x0250#define ASC_IOADR_8     (PortAddr)0x0330#define ASC_IOADR_DEF   ASC_IOADR_8#define ASC_LIB_SCSIQ_WK_SP        256#define ASC_MAX_SYN_XFER_NO        16#define ASC_SYN_MAX_OFFSET         0x0F#define ASC_DEF_SDTR_OFFSET        0x0F#define ASC_DEF_SDTR_INDEX         0x00#define ASC_SDTR_ULTRA_PCI_10MB_INDEX  0x02#define SYN_XFER_NS_0  25#define SYN_XFER_NS_1  30#define SYN_XFER_NS_2  35#define SYN_XFER_NS_3  40#define SYN_XFER_NS_4  50#define SYN_XFER_NS_5  60#define SYN_XFER_NS_6  70#define SYN_XFER_NS_7  85#define SYN_ULTRA_XFER_NS_0    12#define SYN_ULTRA_XFER_NS_1    19#define SYN_ULTRA_XFER_NS_2    25#define SYN_ULTRA_XFER_NS_3    32#define SYN_ULTRA_XFER_NS_4    38#define SYN_ULTRA_XFER_NS_5    44#define SYN_ULTRA_XFER_NS_6    50#define SYN_ULTRA_XFER_NS_7    57#define SYN_ULTRA_XFER_NS_8    63#define SYN_ULTRA_XFER_NS_9    69#define SYN_ULTRA_XFER_NS_10   75#define SYN_ULTRA_XFER_NS_11   82#define SYN_ULTRA_XFER_NS_12   88#define SYN_ULTRA_XFER_NS_13   94#define SYN_ULTRA_XFER_NS_14  100#define SYN_ULTRA_XFER_NS_15  107typedef struct ext_msg {    uchar               msg_type;    uchar               msg_len;    uchar               msg_req;    union {        struct {            uchar               sdtr_xfer_period;            uchar               sdtr_req_ack_offset;        } sdtr;        struct {            uchar               wdtr_width;        } wdtr;        struct {            uchar               mdp_b3;            uchar               mdp_b2;            uchar               mdp_b1;            uchar               mdp_b0;        } mdp;    } u_ext_msg;    uchar               res;} EXT_MSG;#define xfer_period     u_ext_msg.sdtr.sdtr_xfer_period#define req_ack_offset  u_ext_msg.sdtr.sdtr_req_ack_offset#define wdtr_width      u_ext_msg.wdtr.wdtr_width#define mdp_b3          u_ext_msg.mdp_b3#define mdp_b2          u_ext_msg.mdp_b2#define mdp_b1          u_ext_msg.mdp_b1#define mdp_b0          u_ext_msg.mdp_b0typedef struct asc_dvc_cfg {    ASC_SCSI_BIT_ID_TYPE can_tagged_qng;    ASC_SCSI_BIT_ID_TYPE cmd_qng_enabled;    ASC_SCSI_BIT_ID_TYPE disc_enable;    ASC_SCSI_BIT_ID_TYPE sdtr_enable;    uchar               chip_scsi_id:4;    uchar               isa_dma_speed:4;    uchar               isa_dma_channel;    uchar               chip_version;    ushort              pci_device_id;    ushort              lib_serial_no;    ushort              lib_version;    ushort              mcode_date;    ushort              mcode_version;    uchar               max_tag_qng[ASC_MAX_TID + 1];    uchar               *overrun_buf;    uchar               sdtr_period_offset[ASC_MAX_TID + 1];    ushort              pci_slot_info;    uchar               adapter_info[6];} ASC_DVC_CFG;#define ASC_DEF_DVC_CNTL       0xFFFF#define ASC_DEF_CHIP_SCSI_ID   7#define ASC_DEF_ISA_DMA_SPEED  4#define ASC_INIT_STATE_NULL          0x0000#define ASC_INIT_STATE_BEG_GET_CFG   0x0001#define ASC_INIT_STATE_END_GET_CFG   0x0002#define ASC_INIT_STATE_BEG_SET_CFG   0x0004#define ASC_INIT_STATE_END_SET_CFG   0x0008#define ASC_INIT_STATE_BEG_LOAD_MC   0x0010#define ASC_INIT_STATE_END_LOAD_MC   0x0020#define ASC_INIT_STATE_BEG_INQUIRY   0x0040#define ASC_INIT_STATE_END_INQUIRY   0x0080#define ASC_INIT_RESET_SCSI_DONE     0x0100#define ASC_INIT_STATE_WITHOUT_EEP   0x8000#define ASC_PCI_DEVICE_ID_REV_A      0x1100#define ASC_PCI_DEVICE_ID_REV_B      0x1200#define ASC_BUG_FIX_IF_NOT_DWB       0x0001#define ASC_BUG_FIX_ASYN_USE_SYN     0x0002#define ASYN_SDTR_DATA_FIX_PCI_REV_AB 0x41#define ASC_MIN_TAGGED_CMD  7#define ASC_MAX_SCSI_RESET_WAIT      30struct asc_dvc_var;     /* Forward Declaration. */typedef void (* ASC_ISR_CALLBACK)(struct asc_dvc_var *, ASC_QDONE_INFO *);typedef int (* ASC_EXE_CALLBACK)(struct asc_dvc_var *, ASC_SCSI_Q *);typedef struct asc_dvc_var {    PortAddr            iop_base;    ushort              err_code;    ushort              dvc_cntl;    ushort              bug_fix_cntl;    ushort              bus_type;    ASC_ISR_CALLBACK    isr_callback;    ASC_EXE_CALLBACK    exe_callback;    ASC_SCSI_BIT_ID_TYPE init_sdtr;    ASC_SCSI_BIT_ID_TYPE sdtr_done;    ASC_SCSI_BIT_ID_TYPE use_tagged_qng;    ASC_SCSI_BIT_ID_TYPE unit_not_ready;    ASC_SCSI_BIT_ID_TYPE queue_full_or_busy;    ASC_SCSI_BIT_ID_TYPE start_motor;    uchar               scsi_reset_wait;    uchar               chip_no;    char                is_in_int;    uchar               max_total_qng;    uchar               cur_total_qng;    uchar               in_critical_cnt;    uchar               irq_no;    uchar               last_q_shortage;    ushort              init_state;    uchar               cur_dvc_qng[ASC_MAX_TID + 1];    uchar               max_dvc_qng[ASC_MAX_TID + 1];    ASC_SCSI_Q  *scsiq_busy_head[ASC_MAX_TID + 1];    ASC_SCSI_Q  *scsiq_busy_tail[ASC_MAX_TID + 1];    uchar               sdtr_period_tbl[ASC_MAX_SYN_XFER_NO];    ASC_DVC_CFG *cfg;    ASC_SCSI_BIT_ID_TYPE pci_fix_asyn_xfer_always;    char                redo_scam;    ushort              res2;    uchar               dos_int13_table[ASC_MAX_TID + 1];    ASC_DCNT            max_dma_count;    ASC_SCSI_BIT_ID_TYPE no_scam;    ASC_SCSI_BIT_ID_TYPE pci_fix_asyn_xfer;    uchar               max_sdtr_index;    uchar               host_init_sdtr_index;    struct asc_board    *drv_ptr;    ASC_DCNT            uc_break;} ASC_DVC_VAR;typedef struct asc_dvc_inq_info {    uchar               type[ASC_MAX_TID + 1][ASC_MAX_LUN + 1];} ASC_DVC_INQ_INFO;typedef struct asc_cap_info {    ASC_DCNT            lba;    ASC_DCNT            blk_size;} ASC_CAP_INFO;typedef struct asc_cap_info_array {    ASC_CAP_INFO        cap_info[ASC_MAX_TID + 1][ASC_MAX_LUN + 1];} ASC_CAP_INFO_ARRAY;#define ASC_MCNTL_NO_SEL_TIMEOUT  (ushort)0x0001#define ASC_MCNTL_NULL_TARGET     (ushort)0x0002#define ASC_CNTL_INITIATOR         (ushort)0x0001#define ASC_CNTL_BIOS_GT_1GB       (ushort)0x0002#define ASC_CNTL_BIOS_GT_2_DISK    (ushort)0x0004#define ASC_CNTL_BIOS_REMOVABLE    (ushort)0x0008#define ASC_CNTL_NO_SCAM           (ushort)0x0010#define ASC_CNTL_INT_MULTI_Q       (ushort)0x0080#define ASC_CNTL_NO_LUN_SUPPORT    (ushort)0x0040#define ASC_CNTL_NO_VERIFY_COPY    (ushort)0x0100#define ASC_CNTL_RESET_SCSI        (ushort)0x0200#define ASC_CNTL_INIT_INQUIRY      (ushort)0x0400#define ASC_CNTL_INIT_VERBOSE      (ushort)0x0800#define ASC_CNTL_SCSI_PARITY       (ushort)0x1000#define ASC_CNTL_BURST_MODE        (ushort)0x2000#define ASC_CNTL_SDTR_ENABLE_ULTRA (ushort)0x4000#define ASC_EEP_DVC_CFG_BEG_VL    2#define A

⌨️ 快捷键说明

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