📄 qla1280.h
字号:
uint8_t operators; uint8_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. */ uint16_t reserved_6; uint16_t timeout; /* 0 = 30 seconds, 0xFFFF = disable */ uint16_t reserved_7[20];};/* * ISP queue - immediate notify entry structure definition. */struct notify_entry { uint8_t entry_type; /* Entry type. */#define IMMED_NOTIFY_TYPE 0xD /* Immediate notify entry. */ uint8_t entry_count; /* Entry count. */ uint8_t reserved_1; uint8_t entry_status; /* Entry Status. */ uint32_t reserved_2; uint8_t lun; uint8_t initiator_id; uint8_t reserved_3; uint8_t target_id; uint32_t option_flags; uint8_t status; uint8_t reserved_4; uint8_t tag_value; /* Received queue tag message value */ uint8_t tag_type; /* Received queue tag message type */ /* entries allocated. */ uint16_t seq_id; uint8_t scsi_msg[8]; /* SCSI message not handled by ISP */ uint16_t reserved_5[8]; uint8_t sense_data[18];};/* * ISP queue - notify acknowledge entry structure definition. */struct nack_entry { uint8_t entry_type; /* Entry type. */#define NOTIFY_ACK_TYPE 0xE /* Notify acknowledge entry. */ uint8_t entry_count; /* Entry count. */ uint8_t reserved_1; uint8_t entry_status; /* Entry Status. */ uint32_t reserved_2; uint8_t lun; uint8_t initiator_id; uint8_t reserved_3; uint8_t target_id; uint32_t option_flags; uint8_t status; uint8_t event; uint16_t seq_id; uint16_t reserved_4[22];};/* * ISP queue - Accept Target I/O (ATIO) entry structure definition. */struct atio_entry { uint8_t entry_type; /* Entry type. */#define ACCEPT_TGT_IO_TYPE 6 /* Accept target I/O entry. */ uint8_t entry_count; /* Entry count. */ uint8_t reserved_1; uint8_t entry_status; /* Entry Status. */ uint32_t reserved_2; uint8_t lun; uint8_t initiator_id; uint8_t cdb_len; uint8_t target_id; uint32_t option_flags; uint8_t status; uint8_t scsi_status; uint8_t tag_value; /* Received queue tag message value */ uint8_t tag_type; /* Received queue tag message type */ uint8_t cdb[26]; uint8_t sense_data[18];};/* * ISP queue - Continue Target I/O (CTIO) entry structure definition. */struct ctio_entry { uint8_t entry_type; /* Entry type. */#define CONTINUE_TGT_IO_TYPE 7 /* CTIO 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 initiator_id; uint8_t reserved_3; uint8_t target_id; uint32_t option_flags; uint8_t status; uint8_t scsi_status; uint8_t tag_value; /* Received queue tag message value */ uint8_t tag_type; /* Received queue tag message type */ uint32_t transfer_length; uint32_t residual; uint16_t timeout; /* 0 = 30 seconds, 0xFFFF = disable */ uint16_t dseg_count; /* Data segment 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. */ uint32_t dseg_3_address; /* Data segment 3 address. */ uint32_t dseg_3_length; /* Data segment 3 length. */};/* * ISP queue - CTIO returned entry structure definition. */struct ctio_ret_entry { uint8_t entry_type; /* Entry type. */#define CTIO_RET_TYPE 7 /* CTIO return 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 initiator_id; uint8_t reserved_3; uint8_t target_id; uint32_t option_flags; uint8_t status; uint8_t scsi_status; uint8_t tag_value; /* Received queue tag message value */ uint8_t tag_type; /* Received queue tag message type */ uint32_t transfer_length; uint32_t residual; uint16_t timeout; /* 0 = 30 seconds, 0xFFFF = disable */ uint16_t dseg_count; /* Data segment 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. */ uint16_t dseg_1_length; /* Data segment 1 length. */ uint8_t sense_data[18];};/* * ISP queue - CTIO A64 entry structure definition. */struct ctio_a64_entry { uint8_t entry_type; /* Entry type. */#define CTIO_A64_TYPE 0xF /* CTIO A64 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 initiator_id; uint8_t reserved_3; uint8_t target_id; uint32_t option_flags; uint8_t status; uint8_t scsi_status; uint8_t tag_value; /* Received queue tag message value */ uint8_t tag_type; /* Received queue tag message type */ uint32_t transfer_length; uint32_t residual; uint16_t timeout; /* 0 = 30 seconds, 0xFFFF = disable */ uint16_t dseg_count; /* Data segment count. */ uint32_t reserved_4[2]; 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. */};/* * ISP queue - CTIO returned entry structure definition. */struct ctio_a64_ret_entry { uint8_t entry_type; /* Entry type. */#define CTIO_A64_RET_TYPE 0xF /* CTIO A64 returned 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 initiator_id; uint8_t reserved_3; uint8_t target_id; uint32_t option_flags; uint8_t status; uint8_t scsi_status; uint8_t tag_value; /* Received queue tag message value */ uint8_t tag_type; /* Received queue tag message type */ uint32_t transfer_length; uint32_t residual; uint16_t timeout; /* 0 = 30 seconds, 0xFFFF = disable */ uint16_t dseg_count; /* Data segment count. */ uint16_t reserved_4[7]; uint8_t sense_data[18];};/* * ISP request and response queue entry sizes */#define RESPONSE_ENTRY_SIZE (sizeof(struct response))#define REQUEST_ENTRY_SIZE (sizeof(request_t))/* * ISP status entry - completion status definitions. */#define CS_COMPLETE 0x0 /* No errors */#define CS_INCOMPLETE 0x1 /* Incomplete transfer of cmd. */#define CS_DMA 0x2 /* A DMA direction error. */#define CS_TRANSPORT 0x3 /* Transport error. */#define CS_RESET 0x4 /* SCSI bus reset occurred */#define CS_ABORTED 0x5 /* System aborted command. */#define CS_TIMEOUT 0x6 /* Timeout error. */#define CS_DATA_OVERRUN 0x7 /* Data overrun. */#define CS_COMMAND_OVERRUN 0x8 /* Command Overrun. */#define CS_STATUS_OVERRUN 0x9 /* Status Overrun. */#define CS_BAD_MSG 0xA /* Bad msg after status phase. */#define CS_NO_MSG_OUT 0xB /* No msg out after selection. */#define CS_EXTENDED_ID 0xC /* Extended ID failed. */#define CS_IDE_MSG 0xD /* Target rejected IDE msg. */#define CS_ABORT_MSG 0xE /* Target rejected abort msg. */#define CS_REJECT_MSG 0xF /* Target rejected reject msg. */#define CS_NOP_MSG 0x10 /* Target rejected NOP msg. */#define CS_PARITY_MSG 0x11 /* Target rejected parity msg. */#define CS_DEV_RESET_MSG 0x12 /* Target rejected dev rst msg. */#define CS_ID_MSG 0x13 /* Target rejected ID msg. */#define CS_FREE 0x14 /* Unexpected bus free. */#define CS_DATA_UNDERRUN 0x15 /* Data Underrun. */#define CS_TRANACTION_1 0x18 /* Transaction error 1 */#define CS_TRANACTION_2 0x19 /* Transaction error 2 */#define CS_TRANACTION_3 0x1a /* Transaction error 3 */#define CS_INV_ENTRY_TYPE 0x1b /* Invalid entry type */#define CS_DEV_QUEUE_FULL 0x1c /* Device queue full */#define CS_PHASED_SKIPPED 0x1d /* SCSI phase skipped */#define CS_ARS_FAILED 0x1e /* ARS failed */#define CS_LVD_BUS_ERROR 0x21 /* LVD bus error */#define CS_BAD_PAYLOAD 0x80 /* Driver defined */#define CS_UNKNOWN 0x81 /* Driver defined */#define CS_RETRY 0x82 /* Driver defined *//* * ISP status entry - SCSI status byte bit definitions. */#define SS_CHECK_CONDITION BIT_1#define SS_CONDITION_MET BIT_2#define SS_BUSY_CONDITION BIT_3#define SS_RESERVE_CONFLICT (BIT_4 | BIT_3)/* * ISP target entries - Option flags bit definitions. */#define OF_ENABLE_TAG BIT_1 /* Tagged queue action enable */#define OF_DATA_IN BIT_6 /* Data in to initiator */ /* (data from target to initiator) */#define OF_DATA_OUT BIT_7 /* Data out from initiator */ /* (data from initiator to target) */#define OF_NO_DATA (BIT_7 | BIT_6)#define OF_DISC_DISABLED BIT_15 /* Disconnects disabled */#define OF_DISABLE_SDP BIT_24 /* Disable sending save data ptr */#define OF_SEND_RDP BIT_26 /* Send restore data pointers msg */#define OF_FORCE_DISC BIT_30 /* Disconnects mandatory */#define OF_SSTS BIT_31 /* Send SCSI status *//* * BUS parameters/settings structure - UNUSED */struct bus_param { uint8_t id; /* Host adapter SCSI id */ uint8_t bus_reset_delay; /* SCSI bus reset delay. */ uint8_t failed_reset_count; /* number of time reset failed */ uint8_t unused; uint16_t device_enables; /* Device enable bits. */ uint16_t lun_disables; /* LUN disable bits. */ uint16_t qtag_enables; /* Tag queue enables. */ uint16_t hiwat; /* High water mark per device. */ uint8_t reset_marker:1; uint8_t disable_scsi_reset:1; uint8_t scsi_bus_dead:1; /* SCSI Bus is Dead, when 5 back to back resets failed */};struct qla_driver_setup { uint32_t no_sync:1; uint32_t no_wide:1; uint32_t no_ppr:1; uint32_t no_nvram:1; uint16_t sync_mask; uint16_t wide_mask; uint16_t ppr_mask;};/* * Linux Host Adapter structure */struct scsi_qla_host { /* Linux adapter configuration data */ struct Scsi_Host *host; /* pointer to host data */ struct scsi_qla_host *next; struct device_reg *iobase; /* Base Memory-mapped I/O address */ unsigned char *mmpbase; /* memory mapped address */ unsigned long host_no; struct pci_dev *pdev; uint8_t devnum; uint8_t revision; uint8_t ports; unsigned long actthreads; unsigned long isr_count; /* Interrupt count */ unsigned long spurious_int; /* Outstandings ISP commands. */ struct srb *outstanding_cmds[MAX_OUTSTANDING_COMMANDS]; /* BUS configuration data */ struct bus_param bus_settings[MAX_BUSES]; /* Received ISP mailbox data. */ volatile uint16_t mailbox_out[MAILBOX_REGISTER_COUNT]; dma_addr_t request_dma; /* Physical Address */ request_t *request_ring; /* Base virtual address */ request_t *request_ring_ptr; /* Current address. */ uint16_t req_ring_index; /* Current index. */ uint16_t req_q_cnt; /* Number of available entries. */ dma_addr_t response_dma; /* Physical address. */ struct response *response_ring; /* Base virtual address */ struct response *response_ring_ptr; /* Current address. */ uint16_t rsp_ring_index; /* Current index. */ struct list_head done_q; /* Done queue */ struct completion *mailbox_wait; volatile struct { uint32_t online:1; /* 0 */ uint32_t reset_marker:1; /* 1 */ uint32_t disable_host_adapter:1; /* 2 */ uint32_t reset_active:1; /* 3 */ uint32_t abort_isp_active:1; /* 4 */ uint32_t disable_risc_code_load:1; /* 5 */ uint32_t enable_64bit_addressing:1; /* 6 */ uint32_t in_reset:1; /* 7 */ uint32_t ints_enabled:1; uint32_t ignore_nvram:1;#ifdef __ia64__ uint32_t use_pci_vchannel:1;#endif } flags; struct nvram nvram; int nvram_valid;};#endif /* _QLA1280_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -