47 * This driver populates the firmware device subtree with ACPI-discoverable
48 * system devices if possible. To achieve that, the ACPI object
49 * namespace is abstracted as ACPI virtual buses which host system devices.
50 * Another nexus driver for the ACPI virtual bus will manage all devices
51 * connected to it.
52 *
53 * For more detailed information, please refer to PSARC/2009/104.
54 */
55
56 #include <sys/types.h>
57 #include <sys/bitmap.h>
58 #include <sys/cmn_err.h>
59 #include <sys/ddi_subrdefs.h>
60 #include <sys/errno.h>
61 #include <sys/modctl.h>
62 #include <sys/mutex.h>
63 #include <sys/note.h>
64 #include <sys/obpdefs.h>
65 #include <sys/sunddi.h>
66 #include <sys/sunndi.h>
67 #include <sys/acpi/acpi.h>
68 #include <sys/acpica.h>
69 #include <sys/acpidev.h>
70 #include <sys/acpidev_dr.h>
71 #include <sys/acpidev_impl.h>
72
73 /* Patchable through /etc/system */
74 int acpidev_options = 0;
75 int acpidev_debug = 0;
76
77 krwlock_t acpidev_class_lock;
78 acpidev_class_list_t *acpidev_class_list_root = NULL;
79 ulong_t acpidev_object_type_mask[BT_BITOUL(ACPI_TYPE_NS_NODE_MAX + 1)];
80
81 /* ACPI device autoconfig global status */
82 typedef enum acpidev_status {
83 ACPIDEV_STATUS_FAILED = -2, /* ACPI device autoconfig failed */
84 ACPIDEV_STATUS_DISABLED = -1, /* ACPI device autoconfig disabled */
85 ACPIDEV_STATUS_UNKNOWN = 0, /* initial status */
86 ACPIDEV_STATUS_INITIALIZED, /* ACPI device autoconfig initialized */
87 ACPIDEV_STATUS_FIRST_PASS, /* first probing finished */
|
47 * This driver populates the firmware device subtree with ACPI-discoverable
48 * system devices if possible. To achieve that, the ACPI object
49 * namespace is abstracted as ACPI virtual buses which host system devices.
50 * Another nexus driver for the ACPI virtual bus will manage all devices
51 * connected to it.
52 *
53 * For more detailed information, please refer to PSARC/2009/104.
54 */
55
56 #include <sys/types.h>
57 #include <sys/bitmap.h>
58 #include <sys/cmn_err.h>
59 #include <sys/ddi_subrdefs.h>
60 #include <sys/errno.h>
61 #include <sys/modctl.h>
62 #include <sys/mutex.h>
63 #include <sys/note.h>
64 #include <sys/obpdefs.h>
65 #include <sys/sunddi.h>
66 #include <sys/sunndi.h>
67 #include <acpica/include/acpi.h>
68 #include <sys/acpica.h>
69 #include <sys/acpidev.h>
70 #include <sys/acpidev_dr.h>
71 #include <sys/acpidev_impl.h>
72
73 /* Patchable through /etc/system */
74 int acpidev_options = 0;
75 int acpidev_debug = 0;
76
77 krwlock_t acpidev_class_lock;
78 acpidev_class_list_t *acpidev_class_list_root = NULL;
79 ulong_t acpidev_object_type_mask[BT_BITOUL(ACPI_TYPE_NS_NODE_MAX + 1)];
80
81 /* ACPI device autoconfig global status */
82 typedef enum acpidev_status {
83 ACPIDEV_STATUS_FAILED = -2, /* ACPI device autoconfig failed */
84 ACPIDEV_STATUS_DISABLED = -1, /* ACPI device autoconfig disabled */
85 ACPIDEV_STATUS_UNKNOWN = 0, /* initial status */
86 ACPIDEV_STATUS_INITIALIZED, /* ACPI device autoconfig initialized */
87 ACPIDEV_STATUS_FIRST_PASS, /* first probing finished */
|