drivers/s390/scsi/zfcp_fsf.h
Source file repositories/reference/linux-study-clean/drivers/s390/scsi/zfcp_fsf.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/s390/scsi/zfcp_fsf.h- Extension
.h- Size
- 14545 bytes
- Lines
- 507
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/pfn.hlinux/scatterlist.hscsi/libfc.h
Detected Declarations
struct fsf_queue_designatorstruct fsf_bit_error_payloadstruct fsf_link_down_infostruct fsf_version_changestruct fsf_status_read_bufferstruct fsf_qual_version_errorstruct fsf_qual_sequence_errorstruct fsf_qual_latency_infostruct fsf_qtcb_prefixstruct fsf_statistics_infostruct fsf_qtcb_headerstruct fsf_qtcb_bottom_iostruct fsf_qtcb_bottom_supportstruct fsf_qtcb_bottom_configstruct fsf_qtcb_bottom_portstruct fsf_qtcbstruct zfcp_blk_drv_datastruct zfcp_fsf_ct_els
Annotated Snippet
struct fsf_queue_designator {
u8 cssid;
u8 chpid;
u8 hla;
u8 ua;
u32 res1;
} __attribute__ ((packed));
struct fsf_bit_error_payload {
u32 res1;
u32 link_failure_error_count;
u32 loss_of_sync_error_count;
u32 loss_of_signal_error_count;
u32 primitive_sequence_error_count;
u32 invalid_transmission_word_error_count;
u32 crc_error_count;
u32 primitive_sequence_event_timeout_count;
u32 elastic_buffer_overrun_error_count;
u32 fcal_arbitration_timeout_count;
u32 advertised_receive_b2b_credit;
u32 current_receive_b2b_credit;
u32 advertised_transmit_b2b_credit;
u32 current_transmit_b2b_credit;
} __attribute__ ((packed));
struct fsf_link_down_info {
u32 error_code;
u32 res1;
u8 res2[2];
u8 primary_status;
u8 ioerr_code;
u8 action_code;
u8 reason_code;
u8 explanation_code;
u8 vendor_specific_code;
} __attribute__ ((packed));
struct fsf_version_change {
u32 current_version;
u32 previous_version;
} __packed;
struct fsf_status_read_buffer {
u32 status_type;
u32 status_subtype;
u32 length;
u32 res1;
struct fsf_queue_designator queue_designator;
u8 res2;
u8 d_id[3];
u32 class;
u64 fcp_lun;
u8 res3[24];
union {
u8 data[FSF_STATUS_READ_PAYLOAD_SIZE];
u32 word[FSF_STATUS_READ_PAYLOAD_SIZE/sizeof(u32)];
struct fsf_link_down_info link_down_info;
struct fsf_bit_error_payload bit_error;
struct fsf_version_change version_change;
} payload;
} __attribute__ ((packed));
struct fsf_qual_version_error {
u32 fsf_version;
u32 res1[3];
} __attribute__ ((packed));
struct fsf_qual_sequence_error {
u32 exp_req_seq_no;
u32 res1[3];
} __attribute__ ((packed));
struct fsf_qual_latency_info {
u32 channel_lat;
u32 fabric_lat;
u8 res1[8];
} __attribute__ ((packed));
union fsf_prot_status_qual {
u32 word[FSF_PROT_STATUS_QUAL_SIZE / sizeof(u32)];
u64 doubleword[FSF_PROT_STATUS_QUAL_SIZE / sizeof(u64)];
struct fsf_qual_version_error version_error;
struct fsf_qual_sequence_error sequence_error;
struct fsf_link_down_info link_down_info;
struct fsf_qual_latency_info latency_info;
} __attribute__ ((packed));
struct fsf_qtcb_prefix {
u64 req_id;
u32 qtcb_version;
Annotation
- Immediate include surface: `linux/pfn.h`, `linux/scatterlist.h`, `scsi/libfc.h`.
- Detected declarations: `struct fsf_queue_designator`, `struct fsf_bit_error_payload`, `struct fsf_link_down_info`, `struct fsf_version_change`, `struct fsf_status_read_buffer`, `struct fsf_qual_version_error`, `struct fsf_qual_sequence_error`, `struct fsf_qual_latency_info`, `struct fsf_qtcb_prefix`, `struct fsf_statistics_info`.
- Atlas domain: Driver Families / drivers/s390.
- 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.