drivers/scsi/qla4xxx/ql4_83xx.h

Source file repositories/reference/linux-study-clean/drivers/scsi/qla4xxx/ql4_83xx.h

File Facts

System
Linux kernel
Corpus path
drivers/scsi/qla4xxx/ql4_83xx.h
Extension
.h
Size
9761 bytes
Lines
354
Domain
Driver Families
Bucket
drivers/scsi
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct qla4_83xx_reset_template_hdr {
	__le16	version;
	__le16	signature;
	__le16	size;
	__le16	entries;
	__le16	hdr_size;
	__le16	checksum;
	__le16	init_seq_offset;
	__le16	start_seq_offset;
} __packed;

/* Common Entry Header. */
struct qla4_83xx_reset_entry_hdr {
	__le16 cmd;
	__le16 size;
	__le16 count;
	__le16 delay;
} __packed;

/* Generic poll entry type. */
struct qla4_83xx_poll {
	__le32  test_mask;
	__le32  test_value;
} __packed;

/* Read modify write entry type. */
struct qla4_83xx_rmw {
	__le32  test_mask;
	__le32  xor_value;
	__le32  or_value;
	uint8_t shl;
	uint8_t shr;
	uint8_t index_a;
	uint8_t rsvd;
} __packed;

/* Generic Entry Item with 2 DWords. */
struct qla4_83xx_entry {
	__le32 arg1;
	__le32 arg2;
} __packed;

/* Generic Entry Item with 4 DWords.*/
struct qla4_83xx_quad_entry {
	__le32 dr_addr;
	__le32 dr_value;
	__le32 ar_addr;
	__le32 ar_value;
} __packed;

struct qla4_83xx_reset_template {
	int seq_index;
	int seq_error;
	int array_index;
	uint32_t array[QLA83XX_MAX_RESET_SEQ_ENTRIES];
	uint8_t *buff;
	uint8_t *stop_offset;
	uint8_t *start_offset;
	uint8_t *init_offset;
	struct qla4_83xx_reset_template_hdr *hdr;
	uint8_t seq_end;
	uint8_t template_end;
};

/* POLLRD Entry */
struct qla83xx_minidump_entry_pollrd {
	struct qla8xxx_minidump_entry_hdr h;
	uint32_t select_addr;
	uint32_t read_addr;
	uint32_t select_value;
	uint16_t select_value_stride;
	uint16_t op_count;
	uint32_t poll_wait;
	uint32_t poll_mask;
	uint32_t data_size;
	uint32_t rsvd_1;
};

struct qla8044_minidump_entry_rddfe {
	struct qla8xxx_minidump_entry_hdr h;
	uint32_t addr_1;
	uint32_t value;
	uint8_t stride;
	uint8_t stride2;
	uint16_t count;
	uint32_t poll;
	uint32_t mask;
	uint32_t modify_mask;
	uint32_t data_size;
	uint32_t rsvd;

Annotation

Implementation Notes