include/acpi/acpi_bus.h
Source file repositories/reference/linux-study-clean/include/acpi/acpi_bus.h
File Facts
- System
- Linux kernel
- Corpus path
include/acpi/acpi_bus.h- Extension
.h- Size
- 30501 bytes
- Lines
- 1035
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: operation-table or driver-model contract
- Status
- pattern implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/completion.hlinux/container_of.hlinux/device.hlinux/kobject.hlinux/mutex.hlinux/property.hlinux/types.h
Detected Declarations
struct notifier_blockstruct acpi_handle_liststruct proc_dir_entrystruct acpi_driverstruct acpi_devicestruct acpi_hotplug_profilestruct acpi_scan_handlerstruct acpi_hotplug_contextstruct acpi_device_opsstruct acpi_driverstruct acpi_device_statusstruct acpi_device_flagsstruct acpi_device_dirstruct acpi_hardware_idstruct acpi_pnp_typestruct acpi_device_pnpstruct acpi_device_power_flagsstruct acpi_device_power_statestruct acpi_device_powerstruct acpi_dep_datastruct acpi_device_perf_flagsstruct acpi_device_perf_statestruct acpi_device_perfstruct acpi_device_wakeup_flagsstruct acpi_device_wakeup_contextstruct acpi_device_wakeupstruct acpi_device_physical_nodestruct acpi_device_propertiesstruct acpi_device_datastruct acpi_gpio_mappingstruct acpi_device_software_node_portstruct acpi_device_software_nodesstruct acpi_devicestruct acpi_data_nodestruct acpi_bus_eventstruct acpi_bus_typestruct acpi_pci_rootstruct iommu_opsenum acpi_bus_device_typeenum acpi_device_swnode_dev_propsenum acpi_device_swnode_port_propsenum acpi_device_swnode_ep_propsenum acpi_bridge_typefunction acpi_evaluate_dsm_typedfunction is_acpi_nodefunction is_acpi_static_nodefunction acpi_data_node_matchfunction acpi_set_device_status
Annotated Snippet
struct device_driver drv;
};
/*
* ACPI Device
* -----------
*/
bool acpi_of_match_device(const struct acpi_device *adev,
const struct of_device_id *of_match_table,
const struct of_device_id **of_id);
/* Status (_STA) */
struct acpi_device_status {
u32 present:1;
u32 enabled:1;
u32 show_in_ui:1;
u32 functional:1;
u32 battery_present:1;
u32 reserved:27;
};
/* Flags */
struct acpi_device_flags {
u32 dynamic_status:1;
u32 removable:1;
u32 ejectable:1;
u32 power_manageable:1;
u32 match_driver:1;
u32 initialized:1;
u32 visited:1;
u32 hotplug_notify:1;
u32 is_dock_station:1;
u32 of_compatible_ok:1;
u32 coherent_dma:1;
u32 cca_seen:1;
u32 enumeration_by_parent:1;
u32 honor_deps:1;
u32 reserved:18;
};
/* File System */
struct acpi_device_dir {
struct proc_dir_entry *entry;
};
#define acpi_device_dir(d) ((d)->dir.entry)
/* Plug and Play */
#define MAX_ACPI_DEVICE_NAME_LEN 40
#define MAX_ACPI_CLASS_NAME_LEN 20
typedef char acpi_bus_id[8];
typedef u64 acpi_bus_address;
typedef char acpi_device_name[MAX_ACPI_DEVICE_NAME_LEN];
typedef char acpi_device_class[MAX_ACPI_CLASS_NAME_LEN];
struct acpi_hardware_id {
struct list_head list;
const char *id;
};
struct acpi_pnp_type {
u32 hardware_id:1;
u32 bus_address:1;
u32 platform_id:1;
u32 backlight:1;
u32 reserved:28;
};
struct acpi_device_pnp {
acpi_bus_id bus_id; /* Object name */
int instance_no; /* Instance number of this object */
struct acpi_pnp_type type; /* ID type */
acpi_bus_address bus_address; /* _ADR */
char *unique_id; /* _UID */
struct list_head ids; /* _HID and _CIDs */
acpi_device_name device_name; /* Driver-determined */
acpi_device_class device_class; /* " */
};
#define acpi_device_bid(d) ((d)->pnp.bus_id)
#define acpi_device_adr(d) ((d)->pnp.bus_address)
const char *acpi_device_hid(struct acpi_device *device);
#define acpi_device_uid(d) ((d)->pnp.unique_id)
#define acpi_device_name(d) ((d)->pnp.device_name)
#define acpi_device_class(d) ((d)->pnp.device_class)
Annotation
- Immediate include surface: `linux/completion.h`, `linux/container_of.h`, `linux/device.h`, `linux/kobject.h`, `linux/mutex.h`, `linux/property.h`, `linux/types.h`.
- Detected declarations: `struct notifier_block`, `struct acpi_handle_list`, `struct proc_dir_entry`, `struct acpi_driver`, `struct acpi_device`, `struct acpi_hotplug_profile`, `struct acpi_scan_handler`, `struct acpi_hotplug_context`, `struct acpi_device_ops`, `struct acpi_driver`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: pattern 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.