drivers/scsi/lpfc/lpfc_bsg.h
Source file repositories/reference/linux-study-clean/drivers/scsi/lpfc/lpfc_bsg.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/lpfc/lpfc_bsg.h- Extension
.h- Size
- 13093 bytes
- Lines
- 403
- 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 set_ct_eventstruct get_ct_eventstruct get_ct_event_replystruct send_mgmt_respstruct diag_mode_setstruct sli4_link_diagstruct diag_mode_teststruct diag_statusstruct get_mgmt_revstruct MgmtRevInfostruct get_mgmt_rev_replystruct dfc_mbox_reqstruct lpfc_sli_config_msestruct lpfc_sli_config_hbdstruct lpfc_sli_config_hdrstruct lpfc_sli_config_emb0_subsysstruct lpfc_sli_config_emb1_subsysstruct lpfc_sli_config_mboxstruct get_forced_link_speed_supportstruct forced_link_speed_support_replystruct lpfc_bsg_ras_reqstruct lpfc_bsg_get_fwlog_reqstruct lpfc_bsg_get_ras_lwpdstruct lpfc_bsg_set_ras_config_reqstruct lpfc_bsg_get_ras_config_replystruct lpfc_trunk_infostruct get_trunk_info_reqstruct get_cgnbuf_info_req
Annotated Snippet
struct set_ct_event {
uint32_t command;
uint32_t type_mask;
uint32_t ev_req_id;
uint32_t ev_reg_id;
};
struct get_ct_event {
uint32_t command;
uint32_t ev_reg_id;
uint32_t ev_req_id;
};
struct get_ct_event_reply {
uint32_t immed_data;
uint32_t type;
};
struct send_mgmt_resp {
uint32_t command;
uint32_t tag;
};
#define DISABLE_LOOP_BACK 0x0 /* disables loop back */
#define INTERNAL_LOOP_BACK 0x1 /* adapter short cuts the loop internally */
#define EXTERNAL_LOOP_BACK 0x2 /* requires an external loopback plug */
struct diag_mode_set {
uint32_t command;
uint32_t type;
uint32_t timeout;
uint32_t physical_link;
};
struct sli4_link_diag {
uint32_t command;
uint32_t timeout;
uint32_t test_id;
uint32_t loops;
uint32_t test_version;
uint32_t error_action;
};
struct diag_mode_test {
uint32_t command;
};
struct diag_status {
uint32_t mbox_status;
uint32_t shdr_status;
uint32_t shdr_add_status;
};
#define LPFC_WWNN_TYPE 0
#define LPFC_WWPN_TYPE 1
struct get_mgmt_rev {
uint32_t command;
};
#define MANAGEMENT_MAJOR_REV 1
#define MANAGEMENT_MINOR_REV 1
/* the MgmtRevInfo structure */
struct MgmtRevInfo {
uint32_t a_Major;
uint32_t a_Minor;
};
struct get_mgmt_rev_reply {
struct MgmtRevInfo info;
};
#define BSG_MBOX_SIZE 4096 /* mailbox command plus extended data */
/* BSG mailbox request header */
struct dfc_mbox_req {
uint32_t command;
uint32_t mbOffset;
uint32_t inExtWLen;
uint32_t outExtWLen;
uint32_t extMboxTag;
uint32_t extSeqNum;
};
/*
* macros and data structures for handling sli-config mailbox command
* pass-through support, this header file is shared between user and
* kernel spaces, note the set of macros are duplicates from lpfc_hw4.h,
Annotation
- Detected declarations: `struct set_ct_event`, `struct get_ct_event`, `struct get_ct_event_reply`, `struct send_mgmt_resp`, `struct diag_mode_set`, `struct sli4_link_diag`, `struct diag_mode_test`, `struct diag_status`, `struct get_mgmt_rev`, `struct MgmtRevInfo`.
- 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.