Home | History | Annotate | Line # | Download | only in acpi
acpi_debug.c revision 1.5.30.2
      1  1.5.30.2    martin /* $NetBSD: acpi_debug.c,v 1.5.30.2 2020/04/08 14:08:02 martin Exp $ */
      2       1.1    jruoho 
      3       1.1    jruoho /*-
      4       1.1    jruoho  * Copyright (c) 2010 Jukka Ruohonen <jruohonen (at) iki.fi>
      5       1.1    jruoho  * All rights reserved.
      6       1.1    jruoho  *
      7       1.1    jruoho  * Redistribution and use in source and binary forms, with or without
      8       1.1    jruoho  * modification, are permitted provided that the following conditions
      9       1.1    jruoho  * are met:
     10       1.1    jruoho  *
     11       1.1    jruoho  * 1. Redistributions of source code must retain the above copyright
     12       1.1    jruoho  *    notice, this list of conditions and the following disclaimer.
     13       1.1    jruoho  * 2. Redistributions in binary form must reproduce the above copyright
     14       1.1    jruoho  *    notice, this list of conditions and the following disclaimer in the
     15       1.1    jruoho  *    documentation and/or other materials provided with the distribution.
     16       1.1    jruoho  *
     17       1.1    jruoho  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
     18       1.1    jruoho  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     19       1.1    jruoho  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     20       1.1    jruoho  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
     21       1.1    jruoho  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     22       1.1    jruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     23       1.1    jruoho  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     24       1.1    jruoho  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     25       1.1    jruoho  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     26       1.1    jruoho  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     27       1.1    jruoho  * SUCH DAMAGE.
     28       1.1    jruoho  */
     29       1.1    jruoho #include <sys/cdefs.h>
     30  1.5.30.2    martin __KERNEL_RCSID(0, "$NetBSD: acpi_debug.c,v 1.5.30.2 2020/04/08 14:08:02 martin Exp $");
     31       1.1    jruoho 
     32       1.1    jruoho #include <sys/param.h>
     33       1.1    jruoho #include <sys/sysctl.h>
     34       1.1    jruoho 
     35       1.1    jruoho #include <dev/acpi/acpireg.h>
     36       1.1    jruoho #include <dev/acpi/acpivar.h>
     37       1.1    jruoho 
     38       1.1    jruoho #include <prop/proplib.h>
     39       1.1    jruoho 
     40       1.1    jruoho #ifdef ACPI_DEBUG
     41       1.1    jruoho 
     42       1.1    jruoho #define _COMPONENT          ACPI_UTILITIES
     43       1.1    jruoho ACPI_MODULE_NAME            ("acpi_debug")
     44       1.1    jruoho 
     45       1.1    jruoho #define ACPI_DEBUG_MAX  64
     46       1.1    jruoho #define ACPI_DEBUG_NONE  0
     47       1.1    jruoho 
     48       1.1    jruoho #define ACPI_DEBUG_ADD(d, x)						      \
     49       1.1    jruoho 	do {								      \
     50       1.1    jruoho 		(void)prop_dictionary_set_uint32(d, #x, x);		      \
     51       1.1    jruoho 									      \
     52       1.1    jruoho 	} while (/* CONSTCOND */ 0)
     53       1.1    jruoho 
     54       1.1    jruoho 
     55       1.1    jruoho static prop_dictionary_t acpi_debug_layer_d;
     56       1.1    jruoho static prop_dictionary_t acpi_debug_level_d;
     57       1.1    jruoho static char              acpi_debug_layer_s[ACPI_DEBUG_MAX];
     58       1.1    jruoho static char              acpi_debug_level_s[ACPI_DEBUG_MAX];
     59       1.1    jruoho 
     60       1.1    jruoho static int               acpi_debug_create(void);
     61       1.1    jruoho static const char       *acpi_debug_getkey(prop_dictionary_t, uint32_t);
     62       1.1    jruoho static int               acpi_debug_sysctl_layer(SYSCTLFN_PROTO);
     63       1.1    jruoho static int               acpi_debug_sysctl_level(SYSCTLFN_PROTO);
     64       1.1    jruoho 
     65       1.1    jruoho void
     66       1.1    jruoho acpi_debug_init(void)
     67       1.1    jruoho {
     68       1.2    jruoho 	const struct sysctlnode *rnode;
     69       1.2    jruoho 	const char *layer, *level;
     70       1.1    jruoho 	int rv;
     71       1.1    jruoho 
     72       1.1    jruoho 	KASSERT(acpi_debug_layer_d == NULL);
     73       1.1    jruoho 	KASSERT(acpi_debug_level_d == NULL);
     74       1.1    jruoho 
     75       1.1    jruoho 	rv = acpi_debug_create();
     76       1.1    jruoho 
     77       1.1    jruoho 	if (rv != 0)
     78       1.1    jruoho 		goto fail;
     79       1.1    jruoho 
     80       1.2    jruoho 	rv = sysctl_createv(NULL, 0, NULL, &rnode,
     81       1.1    jruoho 	    CTLFLAG_PERMANENT, CTLTYPE_NODE, "acpi",
     82       1.2    jruoho 	    NULL, NULL, 0, NULL, 0,
     83       1.5     pooka 	    CTL_HW, CTL_CREATE, CTL_EOL);
     84       1.1    jruoho 
     85       1.1    jruoho 	if (rv != 0)
     86       1.1    jruoho 		goto fail;
     87       1.1    jruoho 
     88       1.2    jruoho 	rv = sysctl_createv(NULL, 0, &rnode, &rnode,
     89       1.2    jruoho 	    0, CTLTYPE_NODE, "debug",
     90       1.2    jruoho 	    SYSCTL_DESCR("ACPI debug subtree"),
     91       1.2    jruoho 	    NULL, 0, NULL, 0,
     92       1.2    jruoho 	    CTL_CREATE, CTL_EOL);
     93       1.2    jruoho 
     94       1.2    jruoho 	if (rv != 0)
     95       1.2    jruoho 		goto fail;
     96       1.2    jruoho 
     97       1.2    jruoho 	rv = sysctl_createv(NULL, 0, &rnode, NULL,
     98       1.2    jruoho 	    CTLFLAG_READWRITE, CTLTYPE_STRING, "layer",
     99       1.1    jruoho 	    SYSCTL_DESCR("ACPI debug layer"),
    100       1.1    jruoho 	    acpi_debug_sysctl_layer, 0, acpi_debug_layer_s, ACPI_DEBUG_MAX,
    101       1.2    jruoho 	    CTL_CREATE, CTL_EOL);
    102       1.1    jruoho 
    103       1.1    jruoho 	if (rv != 0)
    104       1.1    jruoho 		goto fail;
    105       1.1    jruoho 
    106       1.2    jruoho 	rv = sysctl_createv(NULL, 0, &rnode, NULL,
    107       1.2    jruoho 	    CTLFLAG_READWRITE, CTLTYPE_STRING, "level",
    108       1.1    jruoho 	    SYSCTL_DESCR("ACPI debug level"),
    109       1.1    jruoho 	    acpi_debug_sysctl_level, 0, acpi_debug_level_s, ACPI_DEBUG_MAX,
    110       1.2    jruoho 	    CTL_CREATE, CTL_EOL);
    111       1.1    jruoho 
    112       1.1    jruoho 	if (rv != 0)
    113       1.1    jruoho 		goto fail;
    114       1.1    jruoho 
    115       1.3    jruoho 	rv = sysctl_createv(NULL, 0, &rnode, NULL,
    116       1.3    jruoho 	    CTLFLAG_READWRITE, CTLTYPE_BOOL, "object",
    117       1.3    jruoho 	    SYSCTL_DESCR("ACPI debug object"),
    118       1.3    jruoho 	    NULL, 0, &AcpiGbl_EnableAmlDebugObject, 0,
    119       1.3    jruoho 	    CTL_CREATE, CTL_EOL);
    120       1.3    jruoho 
    121       1.3    jruoho 	if (rv != 0)
    122       1.3    jruoho 		goto fail;
    123       1.3    jruoho 
    124       1.1    jruoho 	layer = acpi_debug_getkey(acpi_debug_layer_d, AcpiDbgLayer);
    125       1.1    jruoho 	level = acpi_debug_getkey(acpi_debug_level_d, AcpiDbgLevel);
    126       1.1    jruoho 
    127  1.5.30.2    martin 	strlcpy(acpi_debug_layer_s, layer, ACPI_DEBUG_MAX);
    128  1.5.30.2    martin 	strlcpy(acpi_debug_level_s, level, ACPI_DEBUG_MAX);
    129       1.1    jruoho 
    130       1.1    jruoho 	return;
    131       1.1    jruoho 
    132       1.1    jruoho fail:
    133       1.1    jruoho 	aprint_error("acpi0: failed to initialize ACPI debug\n");
    134       1.1    jruoho }
    135       1.1    jruoho 
    136       1.1    jruoho static int
    137       1.1    jruoho acpi_debug_create(void)
    138       1.1    jruoho {
    139       1.1    jruoho 
    140       1.1    jruoho 	acpi_debug_layer_d = prop_dictionary_create();
    141       1.1    jruoho 	acpi_debug_level_d = prop_dictionary_create();
    142       1.1    jruoho 
    143       1.1    jruoho 	KASSERT(acpi_debug_layer_d != NULL);
    144       1.1    jruoho 	KASSERT(acpi_debug_level_d != NULL);
    145       1.1    jruoho 
    146       1.1    jruoho 	/*
    147       1.1    jruoho 	 * General components.
    148       1.1    jruoho 	 */
    149       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_UTILITIES);
    150       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_HARDWARE);
    151       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_EVENTS);
    152       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_TABLES);
    153       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_NAMESPACE);
    154       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_PARSER);
    155       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_DISPATCHER);
    156       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_EXECUTER);
    157       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_RESOURCES);
    158       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_CA_DEBUGGER);
    159       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_OS_SERVICES);
    160       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_CA_DISASSEMBLER);
    161       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_COMPILER);
    162       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_TOOLS);
    163       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_EXAMPLE);
    164       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_DRIVER);
    165       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_ALL_COMPONENTS);
    166       1.1    jruoho 
    167       1.1    jruoho 	/*
    168       1.1    jruoho 	 * NetBSD specific components.
    169       1.1    jruoho 	 */
    170       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_BUS_COMPONENT);
    171       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_ACAD_COMPONENT);
    172       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_BAT_COMPONENT);
    173       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_BUTTON_COMPONENT);
    174       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_EC_COMPONENT);
    175       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_LID_COMPONENT);
    176       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_RESOURCE_COMPONENT);
    177       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_TZ_COMPONENT);
    178       1.4    gsutre 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_DISPLAY_COMPONENT);
    179       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_ALL_DRIVERS);
    180       1.1    jruoho 
    181       1.1    jruoho 	/*
    182       1.1    jruoho 	 * Debug levels.
    183       1.1    jruoho 	 */
    184       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_INIT);
    185       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_DEBUG_OBJECT);
    186       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_INFO);
    187       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_ALL_EXCEPTIONS);
    188       1.1    jruoho 
    189       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_INIT_NAMES);
    190       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_PARSE);
    191       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_LOAD);
    192       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_DISPATCH);
    193       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_EXEC);
    194       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_NAMES);
    195       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_OPREGION);
    196       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_BFIELD);
    197       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_TABLES);
    198       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_VALUES);
    199       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_OBJECTS);
    200       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_RESOURCES);
    201       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_USER_REQUESTS);
    202       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_PACKAGE);
    203       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_VERBOSITY1);
    204       1.1    jruoho 
    205       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_ALLOCATIONS);
    206       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_FUNCTIONS);
    207       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_OPTIMIZATIONS);
    208       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_VERBOSITY2);
    209       1.1    jruoho 
    210       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_MUTEX);
    211       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_THREADS);
    212       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_IO);
    213       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_INTERRUPTS);
    214       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_VERBOSITY3);
    215       1.1    jruoho 
    216       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_AML_DISASSEMBLE);
    217       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_VERBOSE_INFO);
    218       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_FULL_TABLES);
    219       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_EVENTS);
    220       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_LV_VERBOSE);
    221       1.1    jruoho 
    222  1.5.30.1  christos 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_NORMAL_DEFAULT);
    223  1.5.30.1  christos 
    224       1.1    jruoho 	/*
    225       1.1    jruoho 	 * The default debug level.
    226       1.1    jruoho 	 */
    227       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_DEBUG_DEFAULT);
    228       1.1    jruoho 
    229       1.1    jruoho 	/*
    230       1.1    jruoho 	 * A custom ACPI_DEBUG_NONE disables debugging.
    231       1.1    jruoho 	 */
    232       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_layer_d, ACPI_DEBUG_NONE);
    233       1.1    jruoho 	ACPI_DEBUG_ADD(acpi_debug_level_d, ACPI_DEBUG_NONE);
    234       1.1    jruoho 
    235       1.1    jruoho 	prop_dictionary_make_immutable(acpi_debug_layer_d);
    236       1.1    jruoho 	prop_dictionary_make_immutable(acpi_debug_level_d);
    237       1.1    jruoho 
    238       1.1    jruoho 	return 0;
    239       1.1    jruoho }
    240       1.1    jruoho 
    241       1.1    jruoho static const char *
    242       1.1    jruoho acpi_debug_getkey(prop_dictionary_t dict, uint32_t arg)
    243       1.1    jruoho {
    244       1.1    jruoho 	prop_object_iterator_t i;
    245       1.1    jruoho 	prop_object_t obj, val;
    246       1.1    jruoho 	const char *key;
    247       1.1    jruoho 	uint32_t num;
    248       1.1    jruoho 
    249       1.1    jruoho 	i = prop_dictionary_iterator(dict);
    250       1.1    jruoho 
    251       1.1    jruoho 	while ((obj = prop_object_iterator_next(i)) != NULL) {
    252       1.1    jruoho 
    253       1.1    jruoho 		key = prop_dictionary_keysym_cstring_nocopy(obj);
    254       1.1    jruoho 		val = prop_dictionary_get(dict, key);
    255       1.1    jruoho 		num = prop_number_unsigned_integer_value(val);
    256       1.1    jruoho 
    257       1.1    jruoho 		if (arg == num)
    258       1.1    jruoho 			return key;
    259       1.1    jruoho 	}
    260       1.1    jruoho 
    261       1.1    jruoho 	return "UNKNOWN";
    262       1.1    jruoho }
    263       1.1    jruoho 
    264       1.1    jruoho static int
    265       1.1    jruoho acpi_debug_sysctl_layer(SYSCTLFN_ARGS)
    266       1.1    jruoho {
    267       1.1    jruoho 	char buf[ACPI_DEBUG_MAX];
    268       1.1    jruoho 	struct sysctlnode node;
    269       1.1    jruoho 	prop_object_t obj;
    270       1.1    jruoho 	int error;
    271       1.1    jruoho 
    272       1.1    jruoho 	node = *rnode;
    273       1.1    jruoho 	node.sysctl_data = buf;
    274       1.1    jruoho 
    275       1.1    jruoho 	(void)memcpy(node.sysctl_data, rnode->sysctl_data, ACPI_DEBUG_MAX);
    276       1.1    jruoho 
    277       1.1    jruoho 	error = sysctl_lookup(SYSCTLFN_CALL(&node));
    278       1.1    jruoho 
    279       1.1    jruoho 	if (error || newp == NULL)
    280       1.1    jruoho 		return error;
    281       1.1    jruoho 
    282       1.1    jruoho 	obj = prop_dictionary_get(acpi_debug_layer_d, node.sysctl_data);
    283       1.1    jruoho 
    284       1.1    jruoho 	if (obj == NULL)
    285       1.1    jruoho 		return EINVAL;
    286       1.1    jruoho 
    287       1.1    jruoho 	AcpiDbgLayer = prop_number_unsigned_integer_value(obj);
    288       1.1    jruoho 
    289       1.1    jruoho 	(void)memcpy(rnode->sysctl_data, node.sysctl_data, ACPI_DEBUG_MAX);
    290       1.1    jruoho 
    291       1.1    jruoho 	return 0;
    292       1.1    jruoho }
    293       1.1    jruoho 
    294       1.1    jruoho static int
    295       1.1    jruoho acpi_debug_sysctl_level(SYSCTLFN_ARGS)
    296       1.1    jruoho {
    297       1.1    jruoho 	char buf[ACPI_DEBUG_MAX];
    298       1.1    jruoho 	struct sysctlnode node;
    299       1.1    jruoho 	prop_object_t obj;
    300       1.1    jruoho 	int error;
    301       1.1    jruoho 
    302       1.1    jruoho 	node = *rnode;
    303       1.1    jruoho 	node.sysctl_data = buf;
    304       1.1    jruoho 
    305       1.1    jruoho 	(void)memcpy(node.sysctl_data, rnode->sysctl_data, ACPI_DEBUG_MAX);
    306       1.1    jruoho 
    307       1.1    jruoho 	error = sysctl_lookup(SYSCTLFN_CALL(&node));
    308       1.1    jruoho 
    309       1.1    jruoho 	if (error || newp == NULL)
    310       1.1    jruoho 		return error;
    311       1.1    jruoho 
    312       1.1    jruoho 	obj = prop_dictionary_get(acpi_debug_level_d, node.sysctl_data);
    313       1.1    jruoho 
    314       1.1    jruoho 	if (obj == NULL)
    315       1.1    jruoho 		return EINVAL;
    316       1.1    jruoho 
    317       1.1    jruoho 	AcpiDbgLevel = prop_number_unsigned_integer_value(obj);
    318       1.1    jruoho 
    319       1.1    jruoho 	(void)memcpy(rnode->sysctl_data, node.sysctl_data, ACPI_DEBUG_MAX);
    320       1.1    jruoho 
    321       1.1    jruoho 	return 0;
    322       1.1    jruoho }
    323       1.1    jruoho 
    324       1.1    jruoho #endif	/* ACPI_DEBUG */
    325