40 * This device behaves exactly the same as the PNP0A05 device.
41 * This was originally known as Extended I/O Bus.
42 * This ID should only be used for containers that do not produce resources
43 * for consumption by child devices. Any system resources claimed by a PNP0A06
44 * device's _CRS object must be consumed by the container itself.
45 * ACPI0004: Module Device.
46 * This device is a container object that acts as a bus node in a namespace.
47 * A Module Device without any of the _CRS, _PRS and _SRS methods behaves
48 * the same way as the Generic Container Devices (PNP0A05 or PNP0A06).
49 * If the Module Device contains a _CRS method, only the resources
50 * described in the _CRS are available for consumption by its child devices.
51 * Also, the Module Device can support _PRS and _SRS methods if _CRS is
52 * supported.
53 */
54
55 #include <sys/types.h>
56 #include <sys/atomic.h>
57 #include <sys/note.h>
58 #include <sys/sunddi.h>
59 #include <sys/sunndi.h>
60 #include <sys/acpi/acpi.h>
61 #include <sys/acpica.h>
62 #include <sys/acpidev.h>
63 #include <sys/acpidev_dr.h>
64 #include <sys/acpidev_impl.h>
65
66 static ACPI_STATUS acpidev_container_probe(acpidev_walk_info_t *infop);
67 static acpidev_filter_result_t acpidev_container_filter(
68 acpidev_walk_info_t *infop, char *devname, int maxlen);
69 static ACPI_STATUS acpidev_container_init(acpidev_walk_info_t *infop);
70 static acpidev_filter_result_t acpidev_container_filter_func(
71 acpidev_walk_info_t *infop, ACPI_HANDLE hdl, acpidev_filter_rule_t *rulep,
72 char *devname, int devnamelen);
73
74 /*
75 * Default class driver for ACPI container objects.
76 */
77 acpidev_class_t acpidev_class_container = {
78 0, /* adc_refcnt */
79 ACPIDEV_CLASS_REV1, /* adc_version */
80 ACPIDEV_CLASS_ID_CONTAINER, /* adc_class_id */
|
40 * This device behaves exactly the same as the PNP0A05 device.
41 * This was originally known as Extended I/O Bus.
42 * This ID should only be used for containers that do not produce resources
43 * for consumption by child devices. Any system resources claimed by a PNP0A06
44 * device's _CRS object must be consumed by the container itself.
45 * ACPI0004: Module Device.
46 * This device is a container object that acts as a bus node in a namespace.
47 * A Module Device without any of the _CRS, _PRS and _SRS methods behaves
48 * the same way as the Generic Container Devices (PNP0A05 or PNP0A06).
49 * If the Module Device contains a _CRS method, only the resources
50 * described in the _CRS are available for consumption by its child devices.
51 * Also, the Module Device can support _PRS and _SRS methods if _CRS is
52 * supported.
53 */
54
55 #include <sys/types.h>
56 #include <sys/atomic.h>
57 #include <sys/note.h>
58 #include <sys/sunddi.h>
59 #include <sys/sunndi.h>
60 #include <acpica/include/acpi.h>
61 #include <sys/acpica.h>
62 #include <sys/acpidev.h>
63 #include <sys/acpidev_dr.h>
64 #include <sys/acpidev_impl.h>
65
66 static ACPI_STATUS acpidev_container_probe(acpidev_walk_info_t *infop);
67 static acpidev_filter_result_t acpidev_container_filter(
68 acpidev_walk_info_t *infop, char *devname, int maxlen);
69 static ACPI_STATUS acpidev_container_init(acpidev_walk_info_t *infop);
70 static acpidev_filter_result_t acpidev_container_filter_func(
71 acpidev_walk_info_t *infop, ACPI_HANDLE hdl, acpidev_filter_rule_t *rulep,
72 char *devname, int devnamelen);
73
74 /*
75 * Default class driver for ACPI container objects.
76 */
77 acpidev_class_t acpidev_class_container = {
78 0, /* adc_refcnt */
79 ACPIDEV_CLASS_REV1, /* adc_version */
80 ACPIDEV_CLASS_ID_CONTAINER, /* adc_class_id */
|