drivers/gpu/drm/amd/ras/rascore/ras_cmd.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/ras/rascore/ras_cmd.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/ras/rascore/ras_cmd.h- Extension
.h- Size
- 11206 bytes
- Lines
- 483
- Domain
- Driver Families
- Bucket
- drivers/gpu
- 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
ras.hras_eeprom.hras_log_ring.hras_cper.h
Detected Declarations
struct ras_core_contextstruct ras_cmd_ctxstruct ras_cmd_func_mapstruct ras_device_bdfstruct ras_cmd_paramstruct ras_cmd_ctxstruct ras_cmd_dev_handlestruct ras_cmd_block_ecc_info_reqstruct ras_cmd_block_ecc_info_rspstruct ras_cmd_inject_error_reqstruct ras_cmd_inject_error_rspstruct ras_cmd_dev_infostruct ras_cmd_devices_info_rspstruct ras_cmd_bad_page_recordstruct ras_cmd_bad_pages_info_reqstruct ras_cmd_bad_pages_info_rspstruct ras_query_interface_info_reqstruct ras_query_interface_info_rspstruct ras_cmd_ras_safe_fb_address_ranges_rspstruct ras_fb_bank_addrstruct ras_fb_vf_phy_addrstruct ras_cmd_translate_fb_address_reqstruct ras_cmd_translate_fb_address_rspstruct ras_dev_link_topology_reqstruct ras_dev_link_topology_rspstruct ras_cmd_cper_snapshot_reqstruct ras_cmd_cper_snapshot_rspstruct ras_cmd_cper_record_reqstruct ras_cmd_cper_record_rspstruct ras_cmd_batch_trace_snapshot_reqstruct ras_cmd_batch_trace_snapshot_rspstruct ras_cmd_batch_trace_record_reqstruct batch_ras_trace_infostruct ras_cmd_batch_trace_record_rspstruct ras_cmd_auto_update_reqstruct ras_cmd_auto_update_rspstruct ras_cmd_address_check_reqstruct ras_cmd_address_check_rspstruct ras_cmd_convert_retired_address_reqstruct ras_cmd_convert_retired_address_rspstruct ras_cmd_blocks_ecc_reqstruct ras_cmd_block_eccstruct ras_cmd_blocks_ecc_rspenum ras_cmd_interface_typeenum ras_cmd_id_rangeenum ras_cmd_idenum ras_cmd_responseenum ras_error_type
Annotated Snippet
struct ras_cmd_func_map {
uint32_t cmd_id;
int (*func)(struct ras_core_context *ras_core,
struct ras_cmd_ctx *cmd, void *data);
};
struct ras_device_bdf {
union {
struct {
uint32_t function : 3;
uint32_t device : 5;
uint32_t bus : 8;
uint32_t domain : 16;
};
uint32_t u32_all;
};
};
struct ras_cmd_param {
uint32_t idx_vf;
void *data;
};
#pragma pack(push, 8)
struct ras_cmd_ctx {
uint32_t magic;
union {
struct {
uint16_t ras_cmd_minor_ver : 10;
uint16_t ras_cmd_major_ver : 6;
};
uint16_t ras_cmd_ver;
};
union {
struct {
uint16_t plat_major_ver : 10;
uint16_t plat_minor_ver : 6;
};
uint16_t plat_ver;
};
uint32_t cmd_id;
uint32_t cmd_res;
uint32_t input_size;
uint32_t output_size;
uint32_t output_buf_size;
uint32_t reserved[5];
uint8_t input_buff_raw[RAS_CMD_MAX_IN_SIZE];
uint8_t output_buff_raw[];
};
struct ras_cmd_dev_handle {
uint64_t dev_handle;
};
struct ras_cmd_block_ecc_info_req {
struct ras_cmd_dev_handle dev;
uint32_t block_id;
uint32_t subblock_id;
uint32_t reserved[4];
};
struct ras_cmd_block_ecc_info_rsp {
uint32_t version;
uint32_t ce_count;
uint32_t ue_count;
uint32_t de_count;
uint32_t reserved[6];
};
struct ras_cmd_inject_error_req {
struct ras_cmd_dev_handle dev;
uint32_t block_id;
uint32_t subblock_id;
uint64_t address;
uint32_t error_type;
uint32_t instance_mask;
union {
struct {
/* vf index */
uint64_t vf_idx : 6;
/* method of error injection. i.e persistent, coherent etc */
uint64_t method : 10;
uint64_t rsv : 48;
};
uint64_t value;
};
uint32_t reserved[8];
};
struct ras_cmd_inject_error_rsp {
Annotation
- Immediate include surface: `ras.h`, `ras_eeprom.h`, `ras_log_ring.h`, `ras_cper.h`.
- Detected declarations: `struct ras_core_context`, `struct ras_cmd_ctx`, `struct ras_cmd_func_map`, `struct ras_device_bdf`, `struct ras_cmd_param`, `struct ras_cmd_ctx`, `struct ras_cmd_dev_handle`, `struct ras_cmd_block_ecc_info_req`, `struct ras_cmd_block_ecc_info_rsp`, `struct ras_cmd_inject_error_req`.
- Atlas domain: Driver Families / drivers/gpu.
- 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.