drivers/scsi/qla2xxx/qla_edif_bsg.h
Source file repositories/reference/linux-study-clean/drivers/scsi/qla2xxx/qla_edif_bsg.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/qla2xxx/qla_edif_bsg.h- Extension
.h- Size
- 6411 bytes
- Lines
- 272
- 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 extra_auth_elsstruct qla_bsg_auth_els_requeststruct qla_bsg_auth_els_replystruct app_idstruct app_start_replystruct app_startstruct app_stopstruct app_plogi_replystruct app_pinfo_reqstruct app_pinfostruct app_pinfo_replystruct app_sinfo_reqstruct app_sinfostruct app_stats_replystruct qla_sa_update_framestruct edif_read_dbellstruct edif_app_dbellstruct edif_sa_update_aenstruct auth_complete_cmdstruct aen_complete_cmdenum auth_els_sub_cmd
Annotated Snippet
struct extra_auth_els {
enum auth_els_sub_cmd sub_cmd;
uint32_t extra_rx_xchg_address;
uint8_t extra_control_flags;
#define BSG_CTL_FLAG_INIT 0
#define BSG_CTL_FLAG_LS_ACC 1
#define BSG_CTL_FLAG_LS_RJT 2
#define BSG_CTL_FLAG_TRM 3
uint8_t version;
uint8_t pad[2];
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
} __packed;
struct qla_bsg_auth_els_request {
struct fc_bsg_request r;
struct extra_auth_els e;
};
struct qla_bsg_auth_els_reply {
struct fc_bsg_reply r;
uint32_t rx_xchg_address;
uint8_t version;
uint8_t pad[VND_CMD_PAD_SIZE];
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
};
struct app_id {
int app_vid;
uint8_t version;
uint8_t pad[VND_CMD_PAD_SIZE];
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
} __packed;
struct app_start_reply {
uint32_t host_support_edif;
uint32_t edif_enode_active;
uint32_t edif_edb_active;
uint8_t version;
uint8_t pad[VND_CMD_PAD_SIZE];
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
} __packed;
struct app_start {
struct app_id app_info;
uint8_t app_start_flags;
uint8_t version;
uint8_t pad[2];
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
} __packed;
struct app_stop {
struct app_id app_info;
uint8_t version;
uint8_t pad[VND_CMD_PAD_SIZE];
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
} __packed;
struct app_plogi_reply {
uint32_t prli_status;
uint8_t version;
uint8_t pad[VND_CMD_PAD_SIZE];
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
} __packed;
struct app_pinfo_req {
struct app_id app_info;
uint8_t num_ports;
struct {
#ifdef __BIG_ENDIAN
uint8_t domain;
uint8_t area;
uint8_t al_pa;
#elif defined(__LITTLE_ENDIAN)
uint8_t al_pa;
uint8_t area;
uint8_t domain;
#else
#error "__BIG_ENDIAN or __LITTLE_ENDIAN must be defined!"
#endif
uint8_t rsvd_1;
} remote_pid;
uint8_t version;
uint8_t pad[VND_CMD_PAD_SIZE];
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
} __packed;
struct app_pinfo {
port_id_t remote_pid;
uint8_t remote_wwpn[WWN_SIZE];
uint8_t remote_type;
Annotation
- Detected declarations: `struct extra_auth_els`, `struct qla_bsg_auth_els_request`, `struct qla_bsg_auth_els_reply`, `struct app_id`, `struct app_start_reply`, `struct app_start`, `struct app_stop`, `struct app_plogi_reply`, `struct app_pinfo_req`, `struct app_pinfo`.
- 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.