/* * scan.c - support for transforming the ACPI namespace into individual objects */#include<linux/module.h>#include<linux/init.h>#include<linux/kernel.h>#include<linux/acpi.h>#include<linux/signal.h>#include<linux/kthread.h>#include<acpi/acpi_drivers.h>#include"internal.h"#define _COMPONENT ACPI_BUS_COMPONENTACPI_MODULE_NAME("scan");#define STRUCT_TO_INT(s) (*((int*)&s))externstructacpi_device*acpi_root;#define ACPI_BUS_CLASS "system_bus"#define ACPI_BUS_HID "LNXSYBUS"#define ACPI_BUS_DEVICE_NAME "System Bus"#define ACPI_IS_ROOT_DEVICE(device) (!(device)->parent)staticLIST_HEAD(acpi_device_list);staticLIST_HEAD(acpi_bus_id_list);DEFINE_MUTEX(acpi_device_lock);LIST_HEAD(acpi_wakeup_device_list);structacpi_device_bus_id{charbus_id[15];unsignedintinstance_no;structlist_headnode;};/* * Creates hid/cid(s) string needed for modalias and uevent * e.g. on a device with hid:IBM0001 and cid:ACPI0001 you get: * char *modalias: "acpi:IBM0001:ACPI0001"*/staticintcreate_modalias(structacpi_device