drivers/scsi/bnx2i/57xx_iscsi_hsi.h
Source file repositories/reference/linux-study-clean/drivers/scsi/bnx2i/57xx_iscsi_hsi.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/bnx2i/57xx_iscsi_hsi.h- Extension
.h- Size
- 37601 bytes
- Lines
- 1527
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct bnx2i_async_msgstruct iscsi_bdstruct bnx2i_cleanup_requeststruct bnx2i_cleanup_responsestruct bnx2i_cmd_requeststruct bnx2i_write_resp_task_statstruct bnx2i_read_resp_task_statstruct bnx2i_cmd_responsestruct bnx2i_fw_mp_requeststruct bnx2i_fw_responsestruct iscsi_kcqestruct iscsi_kwqe_headerstruct iscsi_kwqe_init1struct iscsi_kwqe_init2struct iscsi_kwqe_conn_offload1struct iscsi_ptestruct iscsi_kwqe_conn_offload2struct iscsi_kwqe_conn_offload3struct iscsi_kwqe_conn_updatestruct iscsi_kwqe_conn_destroystruct bnx2i_login_requeststruct bnx2i_login_responsestruct bnx2i_logout_requeststruct bnx2i_logout_responsestruct bnx2i_nop_in_msgstruct bnx2i_nop_out_requeststruct bnx2i_reject_msgstruct bnx2i_tmf_requeststruct bnx2i_text_requeststruct bnx2i_tmf_responsestruct bnx2i_text_response
Annotated Snippet
struct bnx2i_async_msg {
#if defined(__BIG_ENDIAN)
u8 op_code;
u8 reserved1;
u16 reserved0;
#elif defined(__LITTLE_ENDIAN)
u16 reserved0;
u8 reserved1;
u8 op_code;
#endif
u32 reserved2;
u32 exp_cmd_sn;
u32 max_cmd_sn;
u32 reserved3[2];
#if defined(__BIG_ENDIAN)
u16 reserved5;
u8 err_code;
u8 reserved4;
#elif defined(__LITTLE_ENDIAN)
u8 reserved4;
u8 err_code;
u16 reserved5;
#endif
u32 reserved6;
u32 lun[2];
#if defined(__BIG_ENDIAN)
u8 async_event;
u8 async_vcode;
u16 param1;
#elif defined(__LITTLE_ENDIAN)
u16 param1;
u8 async_vcode;
u8 async_event;
#endif
#if defined(__BIG_ENDIAN)
u16 param2;
u16 param3;
#elif defined(__LITTLE_ENDIAN)
u16 param3;
u16 param2;
#endif
u32 reserved7[3];
u32 cq_req_sn;
};
/*
* iSCSI Buffer Descriptor (BD)
*/
struct iscsi_bd {
u32 buffer_addr_hi;
u32 buffer_addr_lo;
#if defined(__BIG_ENDIAN)
u16 reserved0;
u16 buffer_length;
#elif defined(__LITTLE_ENDIAN)
u16 buffer_length;
u16 reserved0;
#endif
#if defined(__BIG_ENDIAN)
u16 reserved3;
u16 flags;
#define ISCSI_BD_RESERVED1 (0x3F<<0)
#define ISCSI_BD_RESERVED1_SHIFT 0
#define ISCSI_BD_LAST_IN_BD_CHAIN (0x1<<6)
#define ISCSI_BD_LAST_IN_BD_CHAIN_SHIFT 6
#define ISCSI_BD_FIRST_IN_BD_CHAIN (0x1<<7)
#define ISCSI_BD_FIRST_IN_BD_CHAIN_SHIFT 7
#define ISCSI_BD_RESERVED2 (0xFF<<8)
#define ISCSI_BD_RESERVED2_SHIFT 8
#elif defined(__LITTLE_ENDIAN)
u16 flags;
#define ISCSI_BD_RESERVED1 (0x3F<<0)
#define ISCSI_BD_RESERVED1_SHIFT 0
#define ISCSI_BD_LAST_IN_BD_CHAIN (0x1<<6)
#define ISCSI_BD_LAST_IN_BD_CHAIN_SHIFT 6
#define ISCSI_BD_FIRST_IN_BD_CHAIN (0x1<<7)
#define ISCSI_BD_FIRST_IN_BD_CHAIN_SHIFT 7
#define ISCSI_BD_RESERVED2 (0xFF<<8)
#define ISCSI_BD_RESERVED2_SHIFT 8
u16 reserved3;
#endif
};
/*
* iSCSI Cleanup SQ WQE
*/
struct bnx2i_cleanup_request {
#if defined(__BIG_ENDIAN)
Annotation
- Detected declarations: `struct bnx2i_async_msg`, `struct iscsi_bd`, `struct bnx2i_cleanup_request`, `struct bnx2i_cleanup_response`, `struct bnx2i_cmd_request`, `struct bnx2i_write_resp_task_stat`, `struct bnx2i_read_resp_task_stat`, `struct bnx2i_cmd_response`, `struct bnx2i_fw_mp_request`, `struct bnx2i_fw_response`.
- Atlas domain: Driver Families / drivers/scsi.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.