drivers/s390/net/ism.h
Source file repositories/reference/linux-study-clean/drivers/s390/net/ism.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/s390/net/ism.h- Extension
.h- Size
- 5180 bytes
- Lines
- 277
- 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/spinlock.hlinux/types.hlinux/pci.hlinux/dibs.hasm/pci_insn.h
Detected Declarations
struct ism_req_hdrstruct ism_resp_hdrstruct ism_eq_headerstruct ism_eventstruct ism_eqstruct ism_sbastruct ism_devenum ism_event_typeenum ism_event_codefunction __ism_read_cmdfunction __ism_write_cmdfunction __ism_move
Annotated Snippet
struct ism_req_hdr {
u32 cmd;
u16 : 16;
u16 len;
};
struct ism_resp_hdr {
u32 cmd;
u16 ret;
u16 len;
};
union ism_reg_sba {
struct {
struct ism_req_hdr hdr;
u64 sba;
} request;
struct {
struct ism_resp_hdr hdr;
} response;
} __aligned(16);
union ism_reg_ieq {
struct {
struct ism_req_hdr hdr;
u64 ieq;
u64 len;
} request;
struct {
struct ism_resp_hdr hdr;
} response;
} __aligned(16);
/* ISM-vPCI devices provide 64 Bit GIDs
* Map them to ISM UUID GIDs like this:
* _________________________________________
* | 64 Bit ISM-vPCI GID | 00000000_00000000 |
* -----------------------------------------
* This will be interpreted as a UIID variant, that is reserved
* for NCS backward compatibility. So it will not collide with
* proper UUIDs.
*/
union ism_read_gid {
struct {
struct ism_req_hdr hdr;
} request;
struct {
struct ism_resp_hdr hdr;
u64 gid;
} response;
} __aligned(16);
union ism_qi {
struct {
struct ism_req_hdr hdr;
} request;
struct {
struct ism_resp_hdr hdr;
u32 version;
u32 max_len;
u64 ism_state;
u64 my_gid;
u64 sba;
u64 ieq;
u32 ieq_len;
u32 : 32;
u32 dmbs_owned;
u32 dmbs_used;
u32 vlan_required;
u32 vlan_nr_ids;
u16 vlan_id[64];
} response;
} __aligned(64);
union ism_query_rgid {
struct {
struct ism_req_hdr hdr;
u64 rgid;
u32 vlan_valid;
u32 vlan_id;
} request;
struct {
struct ism_resp_hdr hdr;
} response;
} __aligned(16);
union ism_reg_dmb {
struct {
struct ism_req_hdr hdr;
u64 dmb;
Annotation
- Immediate include surface: `linux/spinlock.h`, `linux/types.h`, `linux/pci.h`, `linux/dibs.h`, `asm/pci_insn.h`.
- Detected declarations: `struct ism_req_hdr`, `struct ism_resp_hdr`, `struct ism_eq_header`, `struct ism_event`, `struct ism_eq`, `struct ism_sba`, `struct ism_dev`, `enum ism_event_type`, `enum ism_event_code`, `function __ism_read_cmd`.
- 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.