18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
24 * Copyright (c) 2010, Intel Corporation.
25 * All rights reserved.
26 */
27
28 #include <sys/types.h>
29 #include <sys/atomic.h>
30 #include <sys/bitmap.h>
31 #include <sys/cmn_err.h>
32 #include <sys/note.h>
33 #include <sys/sunndi.h>
34 #include <sys/fastboot_impl.h>
35 #include <sys/sysevent.h>
36 #include <sys/sysevent/dr.h>
37 #include <sys/sysevent/eventdefs.h>
38 #include <sys/acpi/acpi.h>
39 #include <sys/acpica.h>
40 #include <sys/acpidev.h>
41 #include <sys/acpidev_dr.h>
42 #include <sys/acpinex.h>
43
44 int acpinex_event_support_remove = 0;
45
46 static volatile uint_t acpinex_dr_event_cnt = 0;
47 static ulong_t acpinex_object_type_mask[BT_BITOUL(ACPI_TYPE_NS_NODE_MAX + 1)];
48
49 /*
50 * Generate DR_REQ event to syseventd.
51 * Please refer to sys/sysevent/dr.h for message definition.
52 */
53 static int
54 acpinex_event_generate_event(dev_info_t *dip, ACPI_HANDLE hdl, int req,
55 int event, char *objname)
56 {
57 int rv = 0;
58 sysevent_id_t eid;
|
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
24 * Copyright (c) 2010, Intel Corporation.
25 * All rights reserved.
26 */
27
28 #include <sys/types.h>
29 #include <sys/atomic.h>
30 #include <sys/bitmap.h>
31 #include <sys/cmn_err.h>
32 #include <sys/note.h>
33 #include <sys/sunndi.h>
34 #include <sys/fastboot_impl.h>
35 #include <sys/sysevent.h>
36 #include <sys/sysevent/dr.h>
37 #include <sys/sysevent/eventdefs.h>
38 #include <acpica/include/acpi.h>
39 #include <sys/acpica.h>
40 #include <sys/acpidev.h>
41 #include <sys/acpidev_dr.h>
42 #include <sys/acpinex.h>
43
44 int acpinex_event_support_remove = 0;
45
46 static volatile uint_t acpinex_dr_event_cnt = 0;
47 static ulong_t acpinex_object_type_mask[BT_BITOUL(ACPI_TYPE_NS_NODE_MAX + 1)];
48
49 /*
50 * Generate DR_REQ event to syseventd.
51 * Please refer to sys/sysevent/dr.h for message definition.
52 */
53 static int
54 acpinex_event_generate_event(dev_info_t *dip, ACPI_HANDLE hdl, int req,
55 int event, char *objname)
56 {
57 int rv = 0;
58 sysevent_id_t eid;
|