drivers/s390/cio/chsc.h
Source file repositories/reference/linux-study-clean/drivers/s390/cio/chsc.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/s390/cio/chsc.h- Extension
.h- Size
- 5253 bytes
- Lines
- 245
- 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/types.hlinux/device.hasm/css_chars.hasm/chpid.hasm/chsc.hasm/schid.hasm/qdio.h
Detected Declarations
struct cmg_charsstruct cmg_cmcbstruct cmg_entrystruct cmg_ext_entrystruct channel_path_desc_fmt1struct channel_path_desc_fmt3struct channel_pathstruct css_chsc_charstruct chsc_ssd_infostruct chsc_ssqd_areastruct chsc_scssc_areastruct chsc_scpdstruct chsc_sda_areastruct channel_subsystemstruct salestruct chsc_scm_infofunction scm_update_informationfunction scm_process_availability_information
Annotated Snippet
struct cmg_chars {
u32 values[NR_MEASUREMENT_CHARS];
};
struct cmg_cmcb {
u32 not_valid : 1;
u32 shared : 1;
u32 extended : 1;
u32 : 21;
u32 chpid : 8;
u32 cmcv : 5;
u32 : 7;
u32 cmgp : 4;
u32 cmgq : 8;
u32 cmg : 8;
u32 : 16;
u32 cmgs : 16;
u32 data[NR_MEASUREMENT_CHARS];
};
#define NR_MEASUREMENT_ENTRIES 8
struct cmg_entry {
u32 values[NR_MEASUREMENT_ENTRIES];
};
#define NR_EXT_MEASUREMENT_ENTRIES 16
struct cmg_ext_entry {
u32 values[NR_EXT_MEASUREMENT_ENTRIES];
};
struct channel_path_desc_fmt1 {
u8 flags;
u8 lsn;
u8 desc;
u8 chpid;
u32:16;
u8 esc;
u8 chpp;
u32 unused[2];
u16 chid;
u32:16;
u16 mdc;
u16:13;
u8 r:1;
u8 s:1;
u8 f:1;
u32 zeros[2];
};
struct channel_path_desc_fmt3 {
struct channel_path_desc_fmt1 fmt1_desc;
u8 util_str[64];
};
struct channel_path;
struct css_chsc_char {
u64 res;
u64 : 20;
u32 secm : 1; /* bit 84 */
u32 : 1;
u32 scmc : 1; /* bit 86 */
u32 : 20;
u32 scssc : 1; /* bit 107 */
u32 scsscf : 1; /* bit 108 */
u32:7;
u32 pnso:1; /* bit 116 */
u32:11;
} __packed;
extern struct css_chsc_char css_chsc_characteristics;
struct chsc_ssd_info {
u8 path_mask;
u8 fla_valid_mask;
struct chp_id chpid[8];
u16 fla[8];
};
struct chsc_ssqd_area {
struct chsc_header request;
u16:10;
u8 ssid:2;
u8 fmt:4;
u16 first_sch;
u16:16;
u16 last_sch;
u32:32;
struct chsc_header response;
u32:32;
Annotation
- Immediate include surface: `linux/types.h`, `linux/device.h`, `asm/css_chars.h`, `asm/chpid.h`, `asm/chsc.h`, `asm/schid.h`, `asm/qdio.h`.
- Detected declarations: `struct cmg_chars`, `struct cmg_cmcb`, `struct cmg_entry`, `struct cmg_ext_entry`, `struct channel_path_desc_fmt1`, `struct channel_path_desc_fmt3`, `struct channel_path`, `struct css_chsc_char`, `struct chsc_ssd_info`, `struct chsc_ssqd_area`.
- 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.