diff options
author | Nate Lawson <njl@FreeBSD.org> | 2004-05-06 02:05:45 +0000 |
---|---|---|
committer | Nate Lawson <njl@FreeBSD.org> | 2004-05-06 02:05:45 +0000 |
commit | 7e639165c22279c0155c891afb6bd3acb74947ac (patch) | |
tree | a52cb9511ab97b0761fe427d82abfb2438ea16da /sys/dev/acpica/acpi.c | |
parent | 57aa1f887f60650f42b73fe1c9d449b6f79fb0d7 (diff) | |
download | src-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.c | 34 |
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. */ |