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

📄 qla2x00.h

📁 QL2000卡的驱动程序,可以学习驱动的编程. 对于UNIX的I/O操作有帮助!
💻 H
📖 第 1 页 / 共 5 页
字号:
    struct    {        uint8_t enable_hard_loop_id          :1;        uint8_t enable_fairness              :1;        uint8_t enable_full_duplex           :1;        uint8_t enable_fast_posting          :1;        uint8_t enable_target_mode           :1;        uint8_t disable_initiator_mode       :1;        uint8_t enable_adisc                 :1;        uint8_t enable_lun_response          :1;        uint8_t enable_port_update_event     :1;        uint8_t disable_initial_lip          :1;        uint8_t enable_decending_soft_assign :1;        uint8_t previous_assigned_addressing :1;        uint8_t enable_stop_q_on_full        :1;        uint8_t enable_full_login_on_lip     :1;        uint8_t enable_name_change           :1;        uint8_t unused_15                    :1;    }firmware_options;    uint16_t    frame_payload_size;    uint16_t    max_iocb_allocation;    uint16_t    execution_throttle;    uint8_t     retry_count;    uint8_t     retry_delay;    uint8_t     node_name[8];    uint16_t    adapter_hard_loop_id;    uint8_t     reserved_2;    uint8_t     login_timeout;    uint16_t    reserved_3[4];    /* Reserved for expanded RISC parameter block */    uint16_t    reserved_4[16];    /*     * NVRAM host parameter block     */    struct    {        uint8_t unused_0                :1;        uint8_t disable_bios            :1;        uint8_t disable_luns            :1;        uint8_t enable_selectable_boot  :1;        uint8_t disable_risc_code_load  :1;        uint8_t set_cache_line_size_1   :1;        uint8_t pci_parity_disable      :1;        uint8_t enable_extended_logging :1;        uint8_t enable_64bit_addressing :1;        uint8_t enable_lip_reset        :1;        uint8_t enable_lip_full_login   :1;        uint8_t enable_target_reset     :1;        uint8_t enable_database_storage :1;        uint8_t unused_13               :1;        uint8_t unused_14               :1;        uint8_t unused_15               :1;    }host_p;    uint8_t     boot_node_name[8];    uint8_t     boot_lun_number;    uint8_t     reset_delay;    uint8_t     port_down_retry_count;    uint8_t     reserved_5;    uint16_t    maximum_luns_per_target;    uint16_t    reserved_6[7];    /* Offset 100 */    uint16_t    reserved_7[25];    /* Offset 150 */    uint16_t    reserved_8[25];    /* Offset 200 */    uint16_t    reserved_9[22];    /* Subsystem ID must be at offset 244 */    uint16_t    subsystem_vendor_id;    uint16_t    reserved_10;    /* Subsystem device ID must be at offset 248 */    uint16_t    subsystem_device_id;    uint16_t    reserved_11[2];    uint8_t     reserved_12;    uint8_t     checksum;}nvram21_t;/* * ISP queue - command entry structure definition. */#define MAX_CMDSZ   16                  /* SCSI maximum CDB size. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define COMMAND_TYPE    0x11    /* Command entry */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t handle;                    /* System handle. */    uint8_t  reserved;    uint8_t  target;                    /* SCSI ID */    uint16_t lun;                       /* SCSI LUN */    uint16_t control_flags;             /* Control flags. */#define CF_HEAD_TAG		BIT_1#define CF_ORDERED_TAG		BIT_2#define CF_SIMPLE_TAG		BIT_3#define CF_READ		BIT_5#define CF_WRITE		BIT_6    uint16_t reserved_1;    uint16_t timeout;                   /* Command timeout. */    uint16_t dseg_count;                /* Data segment count. */    uint8_t  scsi_cdb[MAX_CMDSZ];       /* SCSI command words. */    uint32_t byte_count;                /* Total byte count. */    uint32_t dseg_0_address;            /* Data segment 0 address. */    uint32_t dseg_0_length;             /* Data segment 0 length. */    uint32_t dseg_1_address;            /* Data segment 1 address. */    uint32_t dseg_1_length;             /* Data segment 1 length. */    uint32_t dseg_2_address;            /* Data segment 2 address. */    uint32_t dseg_2_length;             /* Data segment 2 length. */}cmd_entry_t;/* * ISP queue - 64-Bit addressing, command entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define COMMAND_A64_TYPE 0x19   /* Command A64 entry */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t handle;                    /* System handle. */    uint8_t  reserved;    uint8_t  target;                    /* SCSI ID */    uint16_t lun;                       /* SCSI LUN */    uint16_t control_flags;             /* Control flags. */    uint16_t reserved_1;    uint16_t timeout;                   /* Command timeout. */    uint16_t dseg_count;                /* Data segment count. */    uint8_t  scsi_cdb[MAX_CMDSZ];       /* SCSI command words. */    uint32_t byte_count;                /* Total byte count. */    uint32_t dseg_0_address[2];         /* Data segment 0 address. */    uint32_t dseg_0_length;             /* Data segment 0 length. */    uint32_t dseg_1_address[2];         /* Data segment 1 address. */    uint32_t dseg_1_length;             /* Data segment 1 length. */}cmd_a64_entry_t, request_t;/* * ISP queue - continuation entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define CONTINUE_TYPE   0x02    /* Continuation entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t reserved;    uint32_t dseg_0_address;            /* Data segment 0 address. */    uint32_t dseg_0_length;             /* Data segment 0 length. */    uint32_t dseg_1_address;            /* Data segment 1 address. */    uint32_t dseg_1_length;             /* Data segment 1 length. */    uint32_t dseg_2_address;            /* Data segment 2 address. */    uint32_t dseg_2_length;             /* Data segment 2 length. */    uint32_t dseg_3_address;            /* Data segment 3 address. */    uint32_t dseg_3_length;             /* Data segment 3 length. */    uint32_t dseg_4_address;            /* Data segment 4 address. */    uint32_t dseg_4_length;             /* Data segment 4 length. */    uint32_t dseg_5_address;            /* Data segment 5 address. */    uint32_t dseg_5_length;             /* Data segment 5 length. */    uint32_t dseg_6_address;            /* Data segment 6 address. */    uint32_t dseg_6_length;             /* Data segment 6 length. */}cont_entry_t;/* * ISP queue - 64-Bit addressing, continuation entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define CONTINUE_A64_TYPE 0x0A  /* Continuation A64 entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t dseg_0_address[2];         /* Data segment 0 address. */    uint32_t dseg_0_length;             /* Data segment 0 length. */    uint32_t dseg_1_address[2];         /* Data segment 1 address. */    uint32_t dseg_1_length;             /* Data segment 1 length. */    uint32_t dseg_2_address[2];         /* Data segment 2 address. */    uint32_t dseg_2_length;             /* Data segment 2 length. */    uint32_t dseg_3_address[2];         /* Data segment 3 address. */    uint32_t dseg_3_length;             /* Data segment 3 length. */    uint32_t dseg_4_address[2];         /* Data segment 4 address. */    uint32_t dseg_4_length;             /* Data segment 4 length. */}cont_a64_entry_t;/* * ISP queue - status entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define STATUS_TYPE     0x03    /* Status entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */        #define RF_INV_E_ORDER  BIT_5   /* Invalid entry order. */        #define RF_INV_E_COUNT  BIT_4   /* Invalid entry count. */        #define RF_INV_E_PARAM  BIT_3   /* Invalid entry parameter. */        #define RF_INV_E_TYPE   BIT_2   /* Invalid entry type. */        #define RF_BUSY         BIT_1   /* Busy */    uint32_t handle;                    /* System handle. */    uint16_t scsi_status;               /* SCSI status. */    uint16_t comp_status;               /* Completion status. */    uint16_t state_flags;               /* State flags. */    uint16_t status_flags;              /* Status flags. */    uint16_t rsp_info_len;              /* Response Info Length. */    uint16_t req_sense_length;          /* Request sense data length. */    uint32_t residual_length;           /* Residual transfer length. */    uint8_t  rsp_info[8];               /* FCP response information. */    uint8_t  req_sense_data[32];        /* Request sense data. */}sts_entry_t, response_t;/* * ISP queue - marker entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define MARKER_TYPE     0x04    /* Marker entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t sys_define_2;              /* System defined. */    uint8_t  reserved;    uint8_t  target;                    /* SCSI ID */    uint8_t  modifier;                  /* Modifier (7-0). */        #define MK_SYNC_ID_LUN      0   /* Synchronize ID/LUN */        #define MK_SYNC_ID          1   /* Synchronize ID */        #define MK_SYNC_ALL         2   /* Synchronize all ID/LUN */        #define MK_SYNC_LIP         3   /* Synchronize all ID/LUN, */                                        /* clear port changed, */                                        /* use sequence number. */    uint8_t  reserved_1;    uint16_t sequence_number;           /* Sequence number of event */    uint16_t lun;                       /* SCSI LUN */    uint8_t  reserved_2[48];}mrk_entry_t;/* * ISP queue - enable LUN entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define ENABLE_LUN_TYPE 0x0B    /* Enable LUN entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t sys_define_2;              /* System defined. */    uint8_t  reserved_8;    uint8_t  reserved_1;    uint16_t reserved_2;    uint32_t reserved_3;    uint8_t  status;    uint8_t  reserved_4;    uint8_t  command_count;             /* Number of ATIOs allocated. */    uint8_t  immed_notify_count;        /* Number of Immediate Notify */                                        /* entries allocated. */    uint16_t reserved_5;    uint16_t timeout;                   /* 0 = 30 seconds, 0xFFFF = disable */    uint16_t reserved_6[20];}elun_entry_t;/* * ISP queue - modify LUN entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define MODIFY_LUN_TYPE 0x0C    /* Modify LUN entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t sys_define_2;              /* System defined. */    uint8_t  reserved_8;    uint8_t  reserved_1;    uint8_t  operators;    uint8_t  reserved_2;    uint32_t reserved_3;    uint8_t  status;    uint8_t  reserved_4;    uint8_t  command_count;             /* Number of ATIOs allocated. */    uint8_t  immed_notify_count;        /* Number of Immediate Notify */                                        /* entries allocated. */    uint16_t reserved_5;    uint16_t timeout;                   /* 0 = 30 seconds, 0xFFFF = disable */    uint16_t reserved_7[20];}modify_lun_entry_t;/* * ISP queue - immediate notify entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define IMMED_NOTIFY_TYPE 0x0D  /* Immediate notify entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t sys_define_2;              /* System defined. */    uint8_t  reserved_8;    uint8_t  initiator_id;    uint8_t  reserved_1;    uint8_t  target_id;    uint32_t reserved_2;    uint16_t status;    uint16_t task_flags;    uint16_t seq_id;    uint16_t reserved_5[11];    uint16_t scsi_status;    uint8_t  sense_data[18];}notify_entry_t;/* * ISP queue - notify acknowledge entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define NOTIFY_ACK_TYPE 0x0E    /* Notify acknowledge entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t sys_define_2;              /* System defined. */    uint8_t  reserved_8;    uint8_t  initiator_id;    uint8_t  reserved_1;    uint8_t  target_id;    uint16_t flags;    uint16_t reserved_2;    uint16_t status;    uint16_t task_flags;    uint16_t seq_id;    uint16_t reserved_3[21];}nack_entry_t;/* * ISP queue - Accept Target I/O (ATIO) entry structure definition. */typedef struct{    uint8_t  entry_type;                /* Entry type. */        #define ACCEPT_TGT_IO_TYPE 0x16 /* Accept target I/O entry. */    uint8_t  entry_count;               /* Entry count. */    uint8_t  sys_define;                /* System defined. */    uint8_t  entry_status;              /* Entry Status. */    uint32_t sys_define_2;              /* System defined. */    uint8_t  reserved_8;    uint8_t  initiator_id;    uint16_t exchange_id;    uint16_t flags;    uint16_t status;    uint8_t  reserved_1;    uint8_t  task_codes;    uint8_t  task_flags;    uint8_t  execution_codes;    uint8_t  cdb[MAX_CMDSZ];    uint32_t data_length;    uint16_t lun;    uint16_t reserved_2A;    uint16_t scsi_status;    uint8_t  sense_data[18];}atio_entry_t;/* * ISP queue - Continue Target I/O (CTIO) entry for status mode 0 *             structure definition. */typedef struct{

⌨️ 快捷键说明

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