drivers/s390/scsi/zfcp_fc.h
Source file repositories/reference/linux-study-clean/drivers/s390/scsi/zfcp_fc.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/s390/scsi/zfcp_fc.h- Extension
.h- Size
- 8986 bytes
- Lines
- 318
- Domain
- Driver Families
- Bucket
- drivers/s390
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
scsi/fc/fc_els.hscsi/fc/fc_fcp.hscsi/fc/fc_ns.hscsi/scsi_cmnd.hscsi/scsi_tcq.hzfcp_fsf.h
Detected Declarations
struct zfcp_fc_eventstruct zfcp_fc_eventsstruct zfcp_fc_gid_pn_reqstruct zfcp_fc_gid_pn_rspstruct zfcp_fc_gpn_ft_reqstruct zfcp_fc_gspn_reqstruct zfcp_fc_gspn_rspstruct zfcp_fc_rspn_reqstruct zfcp_fc_reqstruct zfcp_fc_wka_portstruct zfcp_fc_wka_portsenum zfcp_fc_wka_statusfunction zfcp_fc_scsi_to_fcpfunction zfcp_fc_fcp_tmfunction zfcp_fc_eval_fcp_rsp
Annotated Snippet
struct zfcp_fc_event {
enum fc_host_event_code code;
u32 data;
struct list_head list;
};
/**
* struct zfcp_fc_events - Infrastructure for posting FC events from irq context
* @list: List for queueing of events from irq context to workqueue
* @list_lock: Lock for event list
* @work: work_struct for forwarding events in workqueue
*/
struct zfcp_fc_events {
struct list_head list;
spinlock_t list_lock;
struct work_struct work;
};
/**
* struct zfcp_fc_gid_pn_req - container for ct header plus gid_pn request
* @ct_hdr: FC GS common transport header
* @gid_pn: GID_PN request
*/
struct zfcp_fc_gid_pn_req {
struct fc_ct_hdr ct_hdr;
struct fc_ns_gid_pn gid_pn;
} __packed;
/**
* struct zfcp_fc_gid_pn_rsp - container for ct header plus gid_pn response
* @ct_hdr: FC GS common transport header
* @gid_pn: GID_PN response
*/
struct zfcp_fc_gid_pn_rsp {
struct fc_ct_hdr ct_hdr;
struct fc_gid_pn_resp gid_pn;
} __packed;
/**
* struct zfcp_fc_gpn_ft - container for ct header plus gpn_ft request
* @ct_hdr: FC GS common transport header
* @gpn_ft: GPN_FT request
*/
struct zfcp_fc_gpn_ft_req {
struct fc_ct_hdr ct_hdr;
struct fc_ns_gid_ft gpn_ft;
} __packed;
/**
* struct zfcp_fc_gspn_req - container for ct header plus GSPN_ID request
* @ct_hdr: FC GS common transport header
* @gspn: GSPN_ID request
*/
struct zfcp_fc_gspn_req {
struct fc_ct_hdr ct_hdr;
struct fc_gid_pn_resp gspn;
} __packed;
/**
* struct zfcp_fc_gspn_rsp - container for ct header plus GSPN_ID response
* @ct_hdr: FC GS common transport header
* @gspn: GSPN_ID response
* @name: The name string of the GSPN_ID response
*/
struct zfcp_fc_gspn_rsp {
struct fc_ct_hdr ct_hdr;
struct fc_gspn_resp gspn;
char name[FC_SYMBOLIC_NAME_SIZE];
} __packed;
/**
* struct zfcp_fc_rspn_req - container for ct header plus RSPN_ID request
* @ct_hdr: FC GS common transport header
* @rspn: RSPN_ID request
* @name: The name string of the RSPN_ID request
*/
struct zfcp_fc_rspn_req {
struct fc_ct_hdr ct_hdr;
struct fc_ns_rspn rspn;
char name[FC_SYMBOLIC_NAME_SIZE];
} __packed;
/**
* struct zfcp_fc_req - Container for FC ELS and CT requests sent from zfcp
* @ct_els: data required for issuing fsf command
* @sg_req: scatterlist entry for request data, refers to embedded @u submember
* @sg_rsp: scatterlist entry for response data, refers to embedded @u submember
* @u: request and response specific data
* @u.adisc: ADISC specific data
* @u.adisc.req: ADISC request
Annotation
- Immediate include surface: `scsi/fc/fc_els.h`, `scsi/fc/fc_fcp.h`, `scsi/fc/fc_ns.h`, `scsi/scsi_cmnd.h`, `scsi/scsi_tcq.h`, `zfcp_fsf.h`.
- Detected declarations: `struct zfcp_fc_event`, `struct zfcp_fc_events`, `struct zfcp_fc_gid_pn_req`, `struct zfcp_fc_gid_pn_rsp`, `struct zfcp_fc_gpn_ft_req`, `struct zfcp_fc_gspn_req`, `struct zfcp_fc_gspn_rsp`, `struct zfcp_fc_rspn_req`, `struct zfcp_fc_req`, `struct zfcp_fc_wka_port`.
- Atlas domain: Driver Families / drivers/s390.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.