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

📄 advansys.c

📁 GNU Mach 微内核源代码, 基于美国卡内基美隆大学的 Mach 研究项目
💻 C
📖 第 1 页 / 共 5 页
字号:
#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      30typedef struct asc_dvc_var {    PortAddr            iop_base;    ushort              err_code;    ushort              dvc_cntl;    ushort              bug_fix_cntl;    ushort              bus_type;    Ptr2Func            isr_callback;    Ptr2Func            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;    Ptr2Func            saved_ptr2func;    ASC_SCSI_BIT_ID_TYPE pci_fix_asyn_xfer_always;    char                redo_scam;    ushort              res2;    uchar               dos_int13_table[ASC_MAX_TID + 1];    ulong               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;    ulong               drv_ptr;    ulong               uc_break;    ulong               res7;    ulong               res8;} ASC_DVC_VAR;typedef int (* ASC_ISR_CALLBACK) (ASC_DVC_VAR asc_ptr_type *, ASC_QDONE_INFO *);typedef int (* ASC_EXE_CALLBACK) (ASC_DVC_VAR asc_ptr_type *, ASC_SCSI_Q *);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 {    ulong               lba;    ulong               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 ASC_EEP_MAX_DVC_ADDR_VL   15#define ASC_EEP_DVC_CFG_BEG      32#define ASC_EEP_MAX_DVC_ADDR     45#define ASC_EEP_DEFINED_WORDS    10#define ASC_EEP_MAX_ADDR         63#define ASC_EEP_RES_WORDS         0#define ASC_EEP_MAX_RETRY        20#define ASC_MAX_INIT_BUSY_RETRY   8#define ASC_EEP_ISA_PNP_WSIZE    16typedef struct asceep_config {    ushort              cfg_lsw;    ushort              cfg_msw;    uchar               init_sdtr;    uchar               disc_enable;    uchar               use_cmd_qng;    uchar               start_motor;    uchar               max_total_qng;    uchar               max_tag_qng;    uchar               bios_scan;    uchar               power_up_wait;    uchar               no_scam;    uchar               chip_scsi_id:4;    uchar               isa_dma_speed:4;    uchar               dos_int13_table[ASC_MAX_TID + 1];    uchar               adapter_info[6];    ushort              cntl;    ushort              chksum;} ASCEEP_CONFIG;#define ASC_PCI_CFG_LSW_SCSI_PARITY  0x0800#define ASC_PCI_CFG_LSW_BURST_MODE   0x0080#define ASC_PCI_CFG_LSW_INTR_ABLE    0x0020#define ASC_EEP_CMD_READ          0x80#define ASC_EEP_CMD_WRITE         0x40#define ASC_EEP_CMD_WRITE_ABLE    0x30#define ASC_EEP_CMD_WRITE_DISABLE 0x00#define ASC_OVERRUN_BSIZE  0x00000048UL#define ASC_CTRL_BREAK_ONCE        0x0001#define ASC_CTRL_BREAK_STAY_IDLE   0x0002#define ASCV_MSGOUT_BEG         0x0000#define ASCV_MSGOUT_SDTR_PERIOD (ASCV_MSGOUT_BEG+3)#define ASCV_MSGOUT_SDTR_OFFSET (ASCV_MSGOUT_BEG+4)#define ASCV_BREAK_SAVED_CODE   (ushort)0x0006#define ASCV_MSGIN_BEG          (ASCV_MSGOUT_BEG+8)#define ASCV_MSGIN_SDTR_PERIOD  (ASCV_MSGIN_BEG+3)#define ASCV_MSGIN_SDTR_OFFSET  (ASCV_MSGIN_BEG+4)#define ASCV_SDTR_DATA_BEG      (ASCV_MSGIN_BEG+8)#define ASCV_SDTR_DONE_BEG      (ASCV_SDTR_DATA_BEG+8)#define ASCV_MAX_DVC_QNG_BEG    (ushort)0x0020#define ASCV_BREAK_ADDR           (ushort)0x0028#define ASCV_BREAK_NOTIFY_COUNT   (ushort)0x002A#define ASCV_BREAK_CONTROL        (ushort)0x002C#define ASCV_BREAK_HIT_COUNT      (ushort)0x002E#define ASCV_ASCDVC_ERR_CODE_W  (ushort)0x0030#define ASCV_MCODE_CHKSUM_W   (ushort)0x0032#define ASCV_MCODE_SIZE_W     (ushort)0x0034#define ASCV_STOP_CODE_B      (ushort)0x0036#define ASCV_DVC_ERR_CODE_B   (ushort)0x0037#define ASCV_OVERRUN_PADDR_D  (ushort)0x0038#define ASCV_OVERRUN_BSIZE_D  (ushort)0x003C#define ASCV_HALTCODE_W       (ushort)0x0040#define ASCV_CHKSUM_W         (ushort)0x0042#define ASCV_MC_DATE_W        (ushort)0x0044#define ASCV_MC_VER_W         (ushort)0x0046#define ASCV_NEXTRDY_B        (ushort)0x0048#define ASCV_DONENEXT_B       (ushort)0x0049#define ASCV_USE_TAGGED_QNG_B (ushort)0x004A#define ASCV_SCSIBUSY_B       (ushort)0x004B#define ASCV_Q_DONE_IN_PROGRESS_B  (ushort)0x004C#define ASCV_CURCDB_B         (ushort)0x004D#define ASCV_RCLUN_B          (ushort)0x004E#define ASCV_BUSY_QHEAD_B     (ushort)0x004F#define ASCV_DISC1_QHEAD_B    (ushort)0x0050#define ASCV_DISC_ENABLE_B    (ushort)0x0052#define ASCV_CAN_TAGGED_QNG_B (ushort)0x0053#define ASCV_HOSTSCSI_ID_B    (ushort)0x0055#define ASCV_MCODE_CNTL_B     (ushort)0x0056#define ASCV_NULL_TARGET_B    (ushort)0x0057#define ASCV_FREE_Q_HEAD_W    (ushort)0x0058#define ASCV_DONE_Q_TAIL_W    (ushort)0x005A#define ASCV_FREE_Q_HEAD_B    (ushort)(ASCV_FREE_Q_HEAD_W+1)#define AS

⌨️ 快捷键说明

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