drivers/acpi/acpica/aclocal.h
Source file repositories/reference/linux-study-clean/drivers/acpi/acpica/aclocal.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/acpi/acpica/aclocal.h- Extension
.h- Size
- 42540 bytes
- Lines
- 1307
- 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 acpi_walk_statestruct acpi_obj_mutexstruct acpi_rw_lockstruct acpi_mutex_infostruct acpi_namespace_nodestruct acpi_table_liststruct acpi_new_table_descstruct acpi_find_contextstruct acpi_ns_search_datastruct acpi_namestring_infostruct acpi_create_field_infostruct acpi_name_infostruct acpi_package_infostruct acpi_package_info2struct acpi_package_info3struct acpi_package_info4struct acpi_simple_repair_infostruct acpi_reg_walk_infostruct acpi_sci_handler_infostruct acpi_gpe_handler_infostruct acpi_gpe_notify_infostruct acpi_gpe_event_infostruct acpi_gpe_addressstruct acpi_gpe_register_infostruct acpi_gpe_block_infostruct acpi_gpe_xrupt_infostruct acpi_gpe_walk_infostruct acpi_gpe_device_infostruct acpi_fixed_event_handlerstruct acpi_fixed_event_infostruct acpi_field_infostruct acpi_ged_handler_infostruct acpi_common_statestruct acpi_update_statestruct acpi_pkg_statestruct acpi_control_statestruct acpi_scope_statestruct acpi_pscope_statestruct acpi_thread_statestruct acpi_result_valuesstruct acpi_global_notify_handlerstruct acpi_notify_infostruct acpi_address_rangestruct acpi_opcode_infostruct acpi_comment_nodestruct acpi_comment_addr_nodestruct acpi_file_nodestruct acpi_parse_obj_common
Annotated Snippet
struct acpi_rw_lock {
acpi_mutex writer_mutex;
acpi_mutex reader_mutex;
u32 num_readers;
};
/*
* Predefined handles for spinlocks used within the subsystem.
* These spinlocks are created by acpi_ut_mutex_initialize
*/
#define ACPI_LOCK_GPES 0
#define ACPI_LOCK_HARDWARE 1
#define ACPI_MAX_LOCK 1
#define ACPI_NUM_LOCK (ACPI_MAX_LOCK+1)
/* This Thread ID means that the mutex is not in use (unlocked) */
#define ACPI_MUTEX_NOT_ACQUIRED ((acpi_thread_id) 0)
/* This Thread ID means an invalid thread ID */
#ifdef ACPI_OS_INVALID_THREAD_ID
#define ACPI_INVALID_THREAD_ID ACPI_OS_INVALID_THREAD_ID
#else
#define ACPI_INVALID_THREAD_ID ((acpi_thread_id) 0xFFFFFFFF)
#endif
/* Table for the global mutexes */
struct acpi_mutex_info {
acpi_mutex mutex;
u32 use_count;
acpi_thread_id thread_id;
};
/* Lock flag parameter for various interfaces */
#define ACPI_MTX_DO_NOT_LOCK 0
#define ACPI_MTX_LOCK 1
/* Field access granularities */
#define ACPI_FIELD_BYTE_GRANULARITY 1
#define ACPI_FIELD_WORD_GRANULARITY 2
#define ACPI_FIELD_DWORD_GRANULARITY 4
#define ACPI_FIELD_QWORD_GRANULARITY 8
#define ACPI_ENTRY_NOT_FOUND NULL
/*****************************************************************************
*
* Namespace typedefs and structs
*
****************************************************************************/
/* Operational modes of the AML interpreter/scanner */
typedef enum {
ACPI_IMODE_LOAD_PASS1 = 0x01,
ACPI_IMODE_LOAD_PASS2 = 0x02,
ACPI_IMODE_EXECUTE = 0x03
} acpi_interpreter_mode;
/*
* The Namespace Node describes a named object that appears in the AML.
* descriptor_type is used to differentiate between internal descriptors.
*
* The node is optimized for both 32-bit and 64-bit platforms:
* 20 bytes for the 32-bit case, 32 bytes for the 64-bit case.
*
* Note: The descriptor_type and Type fields must appear in the identical
* position in both the struct acpi_namespace_node and union acpi_operand_object
* structures.
*/
struct acpi_namespace_node {
union acpi_operand_object *object; /* Interpreter object */
u8 descriptor_type; /* Differentiate object descriptor types */
u8 type; /* ACPI Type associated with this name */
u16 flags; /* Miscellaneous flags */
union acpi_name_union name; /* ACPI Name, always 4 chars per ACPI spec */
struct acpi_namespace_node *parent; /* Parent node */
struct acpi_namespace_node *child; /* First child */
struct acpi_namespace_node *peer; /* First peer */
acpi_owner_id owner_id; /* Node creator */
/*
* The following fields are used by the ASL compiler and disassembler only
*/
#ifdef ACPI_LARGE_NAMESPACE_NODE
Annotation
- Detected declarations: `struct acpi_walk_state`, `struct acpi_obj_mutex`, `struct acpi_rw_lock`, `struct acpi_mutex_info`, `struct acpi_namespace_node`, `struct acpi_table_list`, `struct acpi_new_table_desc`, `struct acpi_find_context`, `struct acpi_ns_search_data`, `struct acpi_namestring_info`.
- 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.