📄 qla2x00.h
字号:
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 + -