drivers/infiniband/hw/efa/efa_admin_defs.h
Source file repositories/reference/linux-study-clean/drivers/infiniband/hw/efa/efa_admin_defs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/infiniband/hw/efa/efa_admin_defs.h- Extension
.h- Size
- 3650 bytes
- Lines
- 175
- Domain
- Driver Families
- Bucket
- drivers/infiniband
- 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 efa_admin_aq_common_descstruct efa_admin_ctrl_buff_infostruct efa_admin_aq_entrystruct efa_admin_acq_common_descstruct efa_admin_acq_entrystruct efa_admin_aenq_common_descstruct efa_admin_aenq_entrystruct efa_admin_comp_eventstruct efa_admin_eqeenum efa_admin_aq_completion_statusenum efa_admin_eqe_event_type
Annotated Snippet
struct efa_admin_aq_common_desc {
/*
* 11:0 : command_id
* 15:12 : reserved12
*/
u16 command_id;
/* as appears in efa_admin_aq_opcode */
u8 opcode;
/*
* 0 : phase
* 1 : ctrl_data - control buffer address valid
* 2 : ctrl_data_indirect - control buffer address
* points to list of pages with addresses of control
* buffers
* 7:3 : reserved3
*/
u8 flags;
};
/*
* used in efa_admin_aq_entry. Can point directly to control data, or to a
* page list chunk. Used also at the end of indirect mode page list chunks,
* for chaining.
*/
struct efa_admin_ctrl_buff_info {
u32 length;
struct efa_common_mem_addr address;
};
struct efa_admin_aq_entry {
struct efa_admin_aq_common_desc aq_common_descriptor;
union {
u32 inline_data_w1[3];
struct efa_admin_ctrl_buff_info control_buffer;
} u;
u32 inline_data_w4[12];
};
struct efa_admin_acq_common_desc {
/*
* command identifier to associate it with the aq descriptor
* 11:0 : command_id
* 15:12 : reserved12
*/
u16 command;
u8 status;
/*
* 0 : phase
* 7:1 : reserved1
*/
u8 flags;
/* Poly 0x8005 CRC16 with initial value 0xFFFF and final XOR of 0xFFFF */
u16 checksum;
u16 reserved;
};
struct efa_admin_acq_entry {
struct efa_admin_acq_common_desc acq_common_descriptor;
u32 response_specific_data[14];
};
struct efa_admin_aenq_common_desc {
u16 group;
u16 syndrome;
/*
* 0 : phase
* 7:1 : reserved - MBZ
*/
u8 flags;
u8 reserved1[3];
u32 timestamp_low;
u32 timestamp_high;
};
Annotation
- Detected declarations: `struct efa_admin_aq_common_desc`, `struct efa_admin_ctrl_buff_info`, `struct efa_admin_aq_entry`, `struct efa_admin_acq_common_desc`, `struct efa_admin_acq_entry`, `struct efa_admin_aenq_common_desc`, `struct efa_admin_aenq_entry`, `struct efa_admin_comp_event`, `struct efa_admin_eqe`, `enum efa_admin_aq_completion_status`.
- Atlas domain: Driver Families / drivers/infiniband.
- 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.