aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/acpica/acpi.c
diff options
context:
space:
mode:
authorNate Lawson <njl@FreeBSD.org>2004-05-06 02:05:45 +0000
committerNate Lawson <njl@FreeBSD.org>2004-05-06 02:05:45 +0000
commit7e639165c22279c0155c891afb6bd3acb74947ac (patch)
treea52cb9511ab97b0761fe427d82abfb2438ea16da /sys/dev/acpica/acpi.c
parent57aa1f887f60650f42b73fe1c9d449b6f79fb0d7 (diff)
downloadsrc-7e639165c22279c0155c891afb6bd3acb74947ac.tar.gz
src-7e639165c22279c0155c891afb6bd3acb74947ac.zip
Fix setting debug strings via sysctl. Also, clean up the way we print
debug strings.
Notes
Notes: svn path=/head/; revision=128989
Diffstat (limited to 'sys/dev/acpica/acpi.c')
-rw-r--r--sys/dev/acpica/acpi.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index 20df02a8fa1d..cdba7cae1d65 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -2422,7 +2422,6 @@ acpi_parse_debug(char *cp, struct debugtag *tag, UINT32 *flag)
*flag |= tag[i].value;
else
*flag &= ~tag[i].value;
- printf("ACPI_DEBUG: set '%s'\n", tag[i].name);
}
}
cp = ep;
@@ -2432,26 +2431,32 @@ acpi_parse_debug(char *cp, struct debugtag *tag, UINT32 *flag)
static void
acpi_set_debugging(void *junk)
{
- char *cp;
+ char *layer, *level;
if (cold) {
AcpiDbgLayer = 0;
AcpiDbgLevel = 0;
}
- if ((cp = getenv("debug.acpi.layer")) != NULL) {
- acpi_parse_debug(cp, &dbg_layer[0], &AcpiDbgLayer);
- freeenv(cp);
- }
- if ((cp = getenv("debug.acpi.level")) != NULL) {
- acpi_parse_debug(cp, &dbg_level[0], &AcpiDbgLevel);
- freeenv(cp);
- }
+ layer = getenv("debug.acpi.layer");
+ level = getenv("debug.acpi.level");
+ if (layer == NULL && level == NULL)
+ return;
- if (cold) {
- printf("ACPI debug layer 0x%x debug level 0x%x\n",
- AcpiDbgLayer, AcpiDbgLevel);
+ printf("ACPI set debug");
+ if (layer != NULL) {
+ if (strcmp("NONE", layer) != 0)
+ printf(" layer '%s'", layer);
+ acpi_parse_debug(layer, &dbg_layer[0], &AcpiDbgLayer);
+ freeenv(layer);
+ }
+ if (level != NULL) {
+ if (strcmp("NONE", level) != 0)
+ printf(" level '%s'", level);
+ acpi_parse_debug(level, &dbg_level[0], &AcpiDbgLevel);
+ freeenv(level);
}
+ printf("\n");
}
SYSINIT(acpi_debugging, SI_SUB_TUNABLES, SI_ORDER_ANY, acpi_set_debugging,
NULL);
@@ -2485,7 +2490,8 @@ acpi_debug_sysctl(SYSCTL_HANDLER_ARGS)
sbuf_trim(&sb);
sbuf_finish(&sb);
- error = sysctl_handle_string(oidp, sbuf_data(&sb), sbuf_len(&sb), req);
+ /* Copy out the old values to the user. */
+ error = SYSCTL_OUT(req, sbuf_data(&sb), sbuf_len(&sb));
sbuf_delete(&sb);
/* If the user is setting a string, parse it. */