diff options
author | msmith <msmith@FreeBSD.org> | 2001-07-07 01:45:37 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 2001-07-07 01:45:37 +0000 |
commit | 2cb9cb84dfe98c11ae6eb8beca6720b3c587a614 (patch) | |
tree | 7ac0a1c4e8d20a591c14d8feb88be35f68089ac2 /sys | |
parent | 92b94fe6a1aae0d7dc81153446d1af6928bb111f (diff) | |
download | FreeBSD-src-2cb9cb84dfe98c11ae6eb8beca6720b3c587a614.zip FreeBSD-src-2cb9cb84dfe98c11ae6eb8beca6720b3c587a614.tar.gz |
Support for system "power profiles". Currently we support two profiles;
"economy" and "performance".
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/acpica/acpi_powerprofile.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/sys/dev/acpica/acpi_powerprofile.c b/sys/dev/acpica/acpi_powerprofile.c new file mode 100644 index 0000000..a7544f0 --- /dev/null +++ b/sys/dev/acpica/acpi_powerprofile.c @@ -0,0 +1,64 @@ +/*- + * Copyright (c) 2001 Michael Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include "opt_acpi.h" /* XXX trim includes */ +#include <sys/param.h> +#include <sys/mutex.h> +#include <sys/bus.h> + +#include "acpi.h" + +#include <dev/acpica/acpivar.h> + +static int powerprofile_state = POWERPROFILE_PERFORMANCE; + +int +powerprofile_get_state(void) +{ + return(powerprofile_state); +} + +void +powerprofile_set_state(int state) +{ + int changed; + + ACPI_LOCK; + if (state != powerprofile_state) { + powerprofile_state = state; + changed = 1; + printf("system power profile changed to '%s'\n", + (state == POWERPROFILE_PERFORMANCE) ? "performance" : "economy"); + } else { + changed = 0; + } + ACPI_UNLOCK; + if (changed) + EVENTHANDLER_INVOKE(powerprofile_change); +} + |