summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2004-05-06 02:05:45 +0000
committernjl <njl@FreeBSD.org>2004-05-06 02:05:45 +0000
commitacc9e8e0229b8dac81acaa5690d2402389aab9f4 (patch)
treea52cb9511ab97b0761fe427d82abfb2438ea16da /sys/dev/acpica
parent6e32658e6366327606299d6fb57994226cd4489e (diff)
downloadFreeBSD-src-acc9e8e0229b8dac81acaa5690d2402389aab9f4.zip
FreeBSD-src-acc9e8e0229b8dac81acaa5690d2402389aab9f4.tar.gz
Fix setting debug strings via sysctl. Also, clean up the way we print
debug strings.
Diffstat (limited to 'sys/dev/acpica')
-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 20df02a..cdba7ca 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. */
OpenPOWER on IntegriCloud