📄 qla1280.h
字号:
struct { uint8_t boot_target_number:4; uint8_t unused_12:1; uint8_t unused_13:1; uint8_t unused_14:1; uint8_t unused_15:1; } cntr_flags_2h; /* 8 */ uint16_t unused_8; /* 8, 9 */ uint16_t unused_10; /* 10, 11 */ uint16_t unused_12; /* 12, 13 */ uint16_t unused_14; /* 14, 15 */ union { uint8_t c; struct { uint8_t reserved:2; uint8_t burst_enable:1; uint8_t reserved_1:1; uint8_t fifo_threshold:4; } f; } isp_config; /* 16 */ /* Termination * 0 = Disable, 1 = high only, 3 = Auto term */ union { uint8_t c; struct { uint8_t scsi_bus_1_control:2; uint8_t scsi_bus_0_control:2; uint8_t unused_0:1; uint8_t unused_1:1; uint8_t unused_2:1; uint8_t auto_term_support:1; } f; } termination; /* 17 */ uint16_t isp_parameter; /* 18, 19 */ union { uint16_t w; struct { uint16_t enable_fast_posting:1; uint16_t report_lvd_bus_transition:1; uint16_t unused_2:1; uint16_t unused_3:1; uint16_t disable_iosbs_with_bus_reset_status:1; uint16_t disable_synchronous_backoff:1; uint16_t unused_6:1; uint16_t synchronous_backoff_reporting:1; uint16_t disable_reselection_fairness:1; uint16_t unused_9:1; uint16_t unused_10:1; uint16_t unused_11:1; uint16_t unused_12:1; uint16_t unused_13:1; uint16_t unused_14:1; uint16_t unused_15:1; } f; } firmware_feature; /* 20, 21 */ uint16_t unused_22; /* 22, 23 */ struct { struct { uint8_t initiator_id:4; uint8_t scsi_reset_disable:1; uint8_t scsi_bus_size:1; uint8_t scsi_bus_type:1; uint8_t unused_7:1; } config_1; /* 24 */ uint8_t bus_reset_delay; /* 25 */ uint8_t retry_count; /* 26 */ uint8_t retry_delay; /* 27 */ struct { uint8_t async_data_setup_time:4; uint8_t req_ack_active_negation:1; uint8_t data_line_active_negation:1; uint8_t unused_6:1; uint8_t unused_7:1; } config_2; /* 28 */ uint8_t unused_29; /* 29 */ uint16_t selection_timeout; /* 30, 31 */ uint16_t max_queue_depth; /* 32, 33 */ uint16_t unused_34; /* 34, 35 */ uint16_t unused_36; /* 36, 37 */ uint16_t unused_38; /* 38, 39 */ struct { union { uint8_t c; struct { uint8_t renegotiate_on_error:1; uint8_t stop_queue_on_check:1; uint8_t auto_request_sense:1; uint8_t tag_queuing:1; uint8_t enable_sync:1; uint8_t enable_wide:1; uint8_t parity_checking:1; uint8_t disconnect_allowed:1; } f; } parameter; /* 40 */ uint8_t execution_throttle; /* 41 */ uint8_t sync_period; /* 42 */ union { /* 43 */ uint8_t flags_43; struct { uint8_t sync_offset:4; uint8_t device_enable:1; uint8_t lun_disable:1; uint8_t unused_6:1; uint8_t unused_7:1; } flags1x80; struct { uint8_t sync_offset:5; uint8_t device_enable:1; uint8_t unused_6:1; uint8_t unused_7:1; } flags1x160; } flags; union { /* PPR flags for the 1x160 controllers */ uint8_t unused_44; struct { uint8_t ppr_options:4; uint8_t ppr_bus_width:2; uint8_t unused_8:1; uint8_t enable_ppr:1; } flags; /* 44 */ } ppr_1x160; uint8_t unused_45; /* 45 */ } target[MAX_TARGETS]; } bus[MAX_BUSES]; uint16_t unused_248; /* 248, 249 */ uint16_t subsystem_id[2]; /* 250, 251, 252, 253 */ union { /* 254 */ uint8_t unused_254; uint8_t system_id_pointer; } sysid_1x160; uint8_t chksum; /* 255 */};/* * ISP queue - command entry structure definition. */#define MAX_CMDSZ 12 /* SCSI maximum CDB size. */struct cmd_entry { uint8_t entry_type; /* Entry type. */#define COMMAND_TYPE 1 /* 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 lun; /* SCSI LUN */ uint8_t target; /* SCSI ID */ uint16_t cdb_len; /* SCSI command length. */ uint16_t control_flags; /* Control flags. */ uint16_t reserved; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count. */ uint8_t scsi_cdb[MAX_CMDSZ]; /* SCSI command words. */ 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. */};/* * ISP queue - continuation entry structure definition. */struct cont_entry { uint8_t entry_type; /* Entry type. */#define CONTINUE_TYPE 2 /* Continuation entry. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ uint32_t reserved; /* 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. */};/* * ISP queue - status entry structure definition. */struct response { uint8_t entry_type; /* Entry type. */#define STATUS_TYPE 3 /* Status entry. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */#define RF_CONT BIT_0 /* Continuation. */#define RF_FULL BIT_1 /* Full */#define RF_BAD_HEADER BIT_2 /* Bad header. */#define RF_BAD_PAYLOAD BIT_3 /* Bad payload. */ uint32_t handle; /* System handle. */ uint16_t scsi_status; /* SCSI status. */ uint16_t comp_status; /* Completion status. */ uint16_t state_flags; /* State flags. */#define SF_TRANSFER_CMPL BIT_14 /* Transfer Complete. */#define SF_GOT_SENSE BIT_13 /* Got Sense */#define SF_GOT_STATUS BIT_12 /* Got Status */#define SF_TRANSFERRED_DATA BIT_11 /* Transferred data */#define SF_SENT_CDB BIT_10 /* Send CDB */#define SF_GOT_TARGET BIT_9 /* */#define SF_GOT_BUS BIT_8 /* */ uint16_t status_flags; /* Status flags. */ uint16_t time; /* Time. */ uint16_t req_sense_length; /* Request sense data length. */ uint32_t residual_length; /* Residual transfer length. */ uint16_t reserved[4]; uint8_t req_sense_data[32]; /* Request sense data. */};/* * ISP queue - marker entry structure definition. */struct mrk_entry { uint8_t entry_type; /* Entry type. */#define MARKER_TYPE 4 /* Marker entry. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ uint32_t reserved; uint8_t lun; /* SCSI LUN */ 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 */ uint8_t reserved_1[53];};/* * ISP queue - extended command entry structure definition. * * Unused by the driver! */struct ecmd_entry { uint8_t entry_type; /* Entry type. */#define EXTENDED_CMD_TYPE 5 /* Extended 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 lun; /* SCSI LUN */ uint8_t target; /* SCSI ID */ uint16_t cdb_len; /* SCSI command length. */ uint16_t control_flags; /* Control flags. */ uint16_t reserved; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count. */ uint8_t scsi_cdb[88]; /* SCSI command words. */};/* * ISP queue - 64-Bit addressing, command entry structure definition. */typedef struct { uint8_t entry_type; /* Entry type. */#define COMMAND_A64_TYPE 9 /* 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 lun; /* SCSI LUN */ uint8_t target; /* SCSI ID */ uint16_t cdb_len; /* SCSI command length. */ uint16_t control_flags; /* Control flags. */ uint16_t reserved; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count. */ uint8_t scsi_cdb[MAX_CMDSZ]; /* SCSI command words. */ uint32_t reserved_1[2]; /* unused */ 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 - 64-Bit addressing, continuation entry structure definition. */struct cont_a64_entry { uint8_t entry_type; /* Entry type. */#define CONTINUE_A64_TYPE 0xA /* 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. */};/* * ISP queue - enable LUN entry structure definition. */struct elun_entry { uint8_t entry_type; /* Entry type. */#define ENABLE_LUN_TYPE 0xB /* Enable LUN entry. */ uint8_t entry_count; /* Entry count. */ uint8_t reserved_1; uint8_t entry_status; /* Entry Status not used. */ uint32_t reserved_2; uint16_t lun; /* Bit 15 is bus number. */ uint16_t reserved_4; uint32_t option_flags; uint8_t status; uint8_t reserved_5; uint8_t command_count; /* Number of ATIOs allocated. */ uint8_t immed_notify_count; /* Number of Immediate Notify */ /* entries allocated. */ uint8_t group_6_length; /* SCSI CDB length for group 6 */ /* commands (2-26). */ uint8_t group_7_length; /* SCSI CDB length for group 7 */ /* commands (2-26). */ uint16_t timeout; /* 0 = 30 seconds, 0xFFFF = disable */ uint16_t reserved_6[20];};/* * ISP queue - modify LUN entry structure definition. * * Unused by the driver! */struct modify_lun_entry { uint8_t entry_type; /* Entry type. */#define MODIFY_LUN_TYPE 0xC /* Modify LUN entry. */ uint8_t entry_count; /* Entry count. */ uint8_t reserved_1; uint8_t entry_status; /* Entry Status. */ uint32_t reserved_2; uint8_t lun; /* SCSI LUN */ uint8_t reserved_3;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -