drivers/acpi/acpica/amlresrc.h
Source file repositories/reference/linux-study-clean/drivers/acpi/acpica/amlresrc.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/acpi/acpica/amlresrc.h- Extension
.h- Size
- 17777 bytes
- Lines
- 594
- Domain
- Driver Families
- Bucket
- drivers/acpi
- 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 asl_resource_nodestruct asl_resource_infostruct aml_resource_small_headerstruct aml_resource_irqstruct aml_resource_irq_noflagsstruct aml_resource_dmastruct aml_resource_start_dependentstruct aml_resource_start_dependent_nopriostruct aml_resource_end_dependentstruct aml_resource_iostruct aml_resource_fixed_iostruct aml_resource_vendor_smallstruct aml_resource_end_tagstruct aml_resource_fixed_dmastruct aml_resource_large_headerstruct aml_resource_memory24struct aml_resource_vendor_largestruct aml_resource_memory32struct aml_resource_fixed_memory32struct aml_resource_addressstruct aml_resource_extended_address64struct aml_resource_address64struct aml_resource_address32struct aml_resource_address16struct aml_resource_extended_irqstruct aml_resource_generic_registerstruct aml_resource_gpiostruct aml_resource_common_serialbusstruct aml_resource_csi2_serialbusstruct aml_resource_i2c_serialbusstruct aml_resource_spi_serialbusstruct aml_resource_uart_serialbusstruct aml_resource_pin_functionstruct aml_resource_pin_configstruct aml_resource_clock_inputstruct aml_resource_pin_groupstruct aml_resource_pin_group_functionstruct aml_resource_pin_group_config
Annotated Snippet
struct asl_resource_node {
u32 buffer_length;
void *buffer;
struct asl_resource_node *next;
};
struct asl_resource_info {
union acpi_parse_object *descriptor_type_op; /* Resource descriptor parse node */
union acpi_parse_object *mapping_op; /* Used for mapfile support */
u32 current_byte_offset; /* Offset in resource template */
};
/* Macros used to generate AML resource length fields */
#define ACPI_AML_SIZE_LARGE(r) (sizeof (r) - sizeof (struct aml_resource_large_header))
#define ACPI_AML_SIZE_SMALL(r) (sizeof (r) - sizeof (struct aml_resource_small_header))
/*
* Resource descriptors defined in the ACPI specification.
*
* Packing/alignment must be BYTE because these descriptors
* are used to overlay the raw AML byte stream.
*/
#pragma pack(1)
/*
* SMALL descriptors
*/
#define AML_RESOURCE_SMALL_HEADER_COMMON \
u8 descriptor_type;
struct aml_resource_small_header {
AML_RESOURCE_SMALL_HEADER_COMMON};
struct aml_resource_irq {
AML_RESOURCE_SMALL_HEADER_COMMON u16 irq_mask;
u8 flags;
};
struct aml_resource_irq_noflags {
AML_RESOURCE_SMALL_HEADER_COMMON u16 irq_mask;
};
struct aml_resource_dma {
AML_RESOURCE_SMALL_HEADER_COMMON u8 dma_channel_mask;
u8 flags;
};
struct aml_resource_start_dependent {
AML_RESOURCE_SMALL_HEADER_COMMON u8 flags;
};
struct aml_resource_start_dependent_noprio {
AML_RESOURCE_SMALL_HEADER_COMMON};
struct aml_resource_end_dependent {
AML_RESOURCE_SMALL_HEADER_COMMON};
struct aml_resource_io {
AML_RESOURCE_SMALL_HEADER_COMMON u8 flags;
u16 minimum;
u16 maximum;
u8 alignment;
u8 address_length;
};
struct aml_resource_fixed_io {
AML_RESOURCE_SMALL_HEADER_COMMON u16 address;
u8 address_length;
};
struct aml_resource_vendor_small {
AML_RESOURCE_SMALL_HEADER_COMMON};
struct aml_resource_end_tag {
AML_RESOURCE_SMALL_HEADER_COMMON u8 checksum;
};
struct aml_resource_fixed_dma {
AML_RESOURCE_SMALL_HEADER_COMMON u16 request_lines;
u16 channels;
u8 width;
};
/*
* LARGE descriptors
*/
#define AML_RESOURCE_LARGE_HEADER_COMMON \
u8 descriptor_type;\
u16 resource_length;
Annotation
- Detected declarations: `struct asl_resource_node`, `struct asl_resource_info`, `struct aml_resource_small_header`, `struct aml_resource_irq`, `struct aml_resource_irq_noflags`, `struct aml_resource_dma`, `struct aml_resource_start_dependent`, `struct aml_resource_start_dependent_noprio`, `struct aml_resource_end_dependent`, `struct aml_resource_io`.
- Atlas domain: Driver Families / drivers/acpi.
- 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.