drivers/net/ethernet/amazon/ena/ena_admin_defs.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/amazon/ena/ena_admin_defs.h- Extension
.h- Size
- 35984 bytes
- Lines
- 1343
- Domain
- Driver Families
- Bucket
- drivers/net
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- 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 ena_admin_aq_common_descstruct ena_admin_ctrl_buff_infostruct ena_admin_sqstruct ena_admin_aq_entrystruct ena_admin_acq_common_descstruct ena_admin_acq_entrystruct ena_admin_aq_create_sq_cmdstruct ena_admin_acq_create_sq_resp_descstruct ena_admin_aq_destroy_sq_cmdstruct ena_admin_acq_destroy_sq_resp_descstruct ena_admin_aq_create_cq_cmdstruct ena_admin_acq_create_cq_resp_descstruct ena_admin_aq_destroy_cq_cmdstruct ena_admin_acq_destroy_cq_resp_descstruct ena_admin_aq_get_stats_cmdstruct ena_admin_basic_statsstruct ena_admin_eni_statsstruct ena_admin_ena_srd_statsstruct ena_admin_ena_srd_infostruct ena_admin_customer_metricsstruct ena_admin_acq_get_stats_respstruct ena_admin_get_set_feature_common_descstruct ena_admin_device_attr_feature_descstruct ena_admin_accel_mode_getstruct ena_admin_accel_mode_setstruct ena_admin_accel_mode_reqstruct ena_admin_feature_llq_descstruct ena_admin_queue_ext_feature_fieldsstruct ena_admin_queue_feature_descstruct ena_admin_set_feature_mtu_descstruct ena_admin_set_feature_host_attr_descstruct ena_admin_feature_intr_moder_descstruct ena_admin_get_feature_link_descstruct ena_admin_feature_aenq_descstruct ena_admin_feature_offload_descstruct ena_admin_feature_rss_flow_hash_controlstruct ena_admin_feature_rss_flow_hash_functionstruct ena_admin_proto_inputstruct ena_admin_feature_rss_hash_controlstruct ena_admin_feature_rss_flow_hash_inputstruct ena_admin_host_infostruct ena_admin_rss_ind_table_entrystruct ena_admin_feature_rss_ind_tablestruct ena_admin_ena_hw_hintsstruct ena_admin_get_feat_cmdstruct ena_admin_queue_ext_feature_descstruct ena_admin_feature_phc_descstruct ena_admin_get_feat_resp
Annotated Snippet
struct ena_admin_aq_common_desc {
/* 11:0 : command_id
* 15:12 : reserved12
*/
u16 command_id;
/* as appears in ena_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 ena_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 ena_admin_ctrl_buff_info {
u32 length;
struct ena_common_mem_addr address;
};
struct ena_admin_sq {
u16 sq_idx;
/* 4:0 : reserved
* 7:5 : sq_direction - 0x1 - Tx; 0x2 - Rx
*/
u8 sq_identity;
u8 reserved1;
};
struct ena_admin_aq_entry {
struct ena_admin_aq_common_desc aq_common_descriptor;
union {
u32 inline_data_w1[3];
struct ena_admin_ctrl_buff_info control_buffer;
} u;
u32 inline_data_w4[12];
};
struct ena_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;
u16 extended_status;
/* indicates to the driver which AQ entry has been consumed by the
* device and could be reused
*/
u16 sq_head_indx;
};
struct ena_admin_acq_entry {
struct ena_admin_acq_common_desc acq_common_descriptor;
u32 response_specific_data[14];
};
struct ena_admin_aq_create_sq_cmd {
struct ena_admin_aq_common_desc aq_common_descriptor;
/* 4:0 : reserved0_w1
* 7:5 : sq_direction - 0x1 - Tx, 0x2 - Rx
*/
u8 sq_identity;
u8 reserved8_w1;
Annotation
- Detected declarations: `struct ena_admin_aq_common_desc`, `struct ena_admin_ctrl_buff_info`, `struct ena_admin_sq`, `struct ena_admin_aq_entry`, `struct ena_admin_acq_common_desc`, `struct ena_admin_acq_entry`, `struct ena_admin_aq_create_sq_cmd`, `struct ena_admin_acq_create_sq_resp_desc`, `struct ena_admin_aq_destroy_sq_cmd`, `struct ena_admin_acq_destroy_sq_resp_desc`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.