drivers/acpi/acpica/exdump.c
Source file repositories/reference/linux-study-clean/drivers/acpi/acpica/exdump.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/acpi/acpica/exdump.c- Extension
.c- Size
- 33613 bytes
- Lines
- 1206
- 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
acpi/acpi.haccommon.hacinterp.hamlcode.hacnamesp.h
Detected Declarations
function acpi_ex_dump_objectfunction acpi_ex_dump_operandfunction acpi_ex_dump_operandsfunction acpi_ex_out_stringfunction acpi_ex_out_pointerfunction acpi_ex_dump_namespace_nodefunction acpi_ex_dump_reference_objfunction acpi_ex_dump_package_objfunction acpi_ex_dump_object_descriptor
Annotated Snippet
if (!obj_desc) {
return;
}
target = ACPI_ADD_PTR(u8, obj_desc, info->offset);
name = info->name;
switch (info->opcode) {
case ACPI_EXD_INIT:
break;
case ACPI_EXD_TYPE:
acpi_os_printf("%20s : %2.2X [%s]\n", "Type",
obj_desc->common.type,
acpi_ut_get_object_type_name(obj_desc));
break;
case ACPI_EXD_UINT8:
acpi_os_printf("%20s : %2.2X\n", name, *target);
break;
case ACPI_EXD_UINT16:
acpi_os_printf("%20s : %4.4X\n", name,
ACPI_GET16(target));
break;
case ACPI_EXD_UINT32:
acpi_os_printf("%20s : %8.8X\n", name,
ACPI_GET32(target));
break;
case ACPI_EXD_UINT64:
acpi_os_printf("%20s : %8.8X%8.8X\n", "Value",
ACPI_FORMAT_UINT64(ACPI_GET64(target)));
break;
case ACPI_EXD_POINTER:
case ACPI_EXD_ADDRESS:
acpi_ex_out_pointer(name,
*ACPI_CAST_PTR(void *, target));
break;
case ACPI_EXD_STRING:
acpi_ut_print_string(obj_desc->string.pointer,
ACPI_UINT8_MAX);
acpi_os_printf("\n");
break;
case ACPI_EXD_BUFFER:
ACPI_DUMP_BUFFER(obj_desc->buffer.pointer,
obj_desc->buffer.length);
break;
case ACPI_EXD_PACKAGE:
/* Dump the package contents */
acpi_os_printf("\nPackage Contents:\n");
acpi_ex_dump_package_obj(obj_desc, 0, 0);
break;
case ACPI_EXD_FIELD:
acpi_ex_dump_object(obj_desc,
acpi_ex_dump_field_common);
break;
case ACPI_EXD_REFERENCE:
acpi_ex_out_string("Class Name",
acpi_ut_get_reference_name
(obj_desc));
acpi_ex_dump_reference_obj(obj_desc);
break;
case ACPI_EXD_LIST:
start = *ACPI_CAST_PTR(void *, target);
next = start;
acpi_os_printf("%20s : %p ", name, next);
Annotation
- Immediate include surface: `acpi/acpi.h`, `accommon.h`, `acinterp.h`, `amlcode.h`, `acnamesp.h`.
- Detected declarations: `function acpi_ex_dump_object`, `function acpi_ex_dump_operand`, `function acpi_ex_dump_operands`, `function acpi_ex_out_string`, `function acpi_ex_out_pointer`, `function acpi_ex_dump_namespace_node`, `function acpi_ex_dump_reference_obj`, `function acpi_ex_dump_package_obj`, `function acpi_ex_dump_object_descriptor`.
- 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.