diff options
author | njl <njl@FreeBSD.org> | 2004-02-14 03:17:30 +0000 |
---|---|---|
committer | njl <njl@FreeBSD.org> | 2004-02-14 03:17:30 +0000 |
commit | 67995bef83d9d8c84403dab3348106cf5b861d10 (patch) | |
tree | 8629574917c3379e57d327a6dd7488f0142bbadf /sys | |
parent | 7211bcf2019b26fb855f291b27f8ba11d8e28b30 (diff) | |
download | FreeBSD-src-67995bef83d9d8c84403dab3348106cf5b861d10.zip FreeBSD-src-67995bef83d9d8c84403dab3348106cf5b861d10.tar.gz |
Fix hw.acpi.os_name by renaming it to hw.acpi.osname. The "_name" suffix
is reserved by the loader, and thus any tunable name with that suffix will
be silently discarded.
Document this in the header and man page so that other developers do not
develop so many bumps on the head after banging it against the wall.
Detective work by: Mark Santcroos, grehan
Diffstat (limited to 'sys')
-rw-r--r-- | sys/boot/forth/loader.conf.5 | 4 | ||||
-rw-r--r-- | sys/dev/acpica/Osd/OsdTable.c | 12 | ||||
-rw-r--r-- | sys/sys/kernel.h | 3 |
3 files changed, 12 insertions, 7 deletions
diff --git a/sys/boot/forth/loader.conf.5 b/sys/boot/forth/loader.conf.5 index 89a803f..414784e 100644 --- a/sys/boot/forth/loader.conf.5 +++ b/sys/boot/forth/loader.conf.5 @@ -132,6 +132,10 @@ special value .Dq abort , which aborts the bootstrap process, use of this setting should be avoided. .El +.Pp +.Em WARNING: +developers should never use these suffixes for any kernel environment +variables (tunables) or conflicts will result. .Sh DEFAULT SETTINGS Most of .Nm Ns 's diff --git a/sys/dev/acpica/Osd/OsdTable.c b/sys/dev/acpica/Osd/OsdTable.c index 2f057d2..0b94ad3 100644 --- a/sys/dev/acpica/Osd/OsdTable.c +++ b/sys/dev/acpica/Osd/OsdTable.c @@ -38,8 +38,8 @@ #undef _COMPONENT #define _COMPONENT ACPI_TABLES -static char acpi_os_name[128]; -TUNABLE_STR("hw.acpi.os_name", acpi_os_name, sizeof(acpi_os_name)); +static char acpi_osname[128]; +TUNABLE_STR("hw.acpi.osname", acpi_osname, sizeof(acpi_osname)); ACPI_STATUS AcpiOsPredefinedOverride ( @@ -50,11 +50,9 @@ AcpiOsPredefinedOverride ( return (AE_BAD_PARAMETER); *NewVal = NULL; - if (strncmp(InitVal->Name, "_OS_", 4) == 0 && - getenv_string("hw.acpi.os_name", acpi_os_name, sizeof(acpi_os_name))) { - - printf("ACPI: Overriding _OS definition with \"%s\"\n", acpi_os_name); - *NewVal = acpi_os_name; + if (strncmp(InitVal->Name, "_OS_", 4) == 0 && strlen(acpi_osname) > 0) { + printf("ACPI: Overriding _OS definition with \"%s\"\n", acpi_osname); + *NewVal = acpi_osname; } return (AE_OK); diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h index fe75bf2..d0f449d 100644 --- a/sys/sys/kernel.h +++ b/sys/sys/kernel.h @@ -265,6 +265,9 @@ void sysinit_add(struct sysinit **set, struct sysinit **set_end); * Infrastructure for tunable 'constants'. Value may be specified at compile * time or kernel load time. Rules relating tunables together can be placed * in a SYSINIT function at SI_SUB_TUNABLES with SI_ORDER_LAST. + * + * WARNING: developers should never use the reserved suffixes specified in + * loader.conf(5) for any tunables or conflicts will result. */ extern void tunable_int_init(void *); |