summaryrefslogtreecommitdiffstats
path: root/usr.sbin/acpi
diff options
context:
space:
mode:
authoriwasaki <iwasaki@FreeBSD.org>2000-08-31 14:41:23 +0000
committeriwasaki <iwasaki@FreeBSD.org>2000-08-31 14:41:23 +0000
commit8b89c74a2fdb081292974b38082f6bc9fa534b59 (patch)
treee8cec5d295b2560633d45ba434b29a4478fde527 /usr.sbin/acpi
downloadFreeBSD-src-8b89c74a2fdb081292974b38082f6bc9fa534b59.zip
FreeBSD-src-8b89c74a2fdb081292974b38082f6bc9fa534b59.tar.gz
import acpiconf(8) from ACPI For FreeBSD project.
Obtained from: ACPI For FreeBSD project
Diffstat (limited to 'usr.sbin/acpi')
-rw-r--r--usr.sbin/acpi/acpiconf/Makefile8
-rw-r--r--usr.sbin/acpi/acpiconf/acpiconf.c110
2 files changed, 118 insertions, 0 deletions
diff --git a/usr.sbin/acpi/acpiconf/Makefile b/usr.sbin/acpi/acpiconf/Makefile
new file mode 100644
index 0000000..7458a62
--- /dev/null
+++ b/usr.sbin/acpi/acpiconf/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.2 2000/07/14 18:16:25 iwasaki Exp $
+# $FreeBSD$
+
+PROG= acpiconf
+NOMAN= yes
+#MAN8= acpiconf.8
+
+.include <bsd.prog.mk>
diff --git a/usr.sbin/acpi/acpiconf/acpiconf.c b/usr.sbin/acpi/acpiconf/acpiconf.c
new file mode 100644
index 0000000..2dde3c2
--- /dev/null
+++ b/usr.sbin/acpi/acpiconf/acpiconf.c
@@ -0,0 +1,110 @@
+/*-
+ * Copyright (c) 1999 Mitsuru IWASAKI <iwasaki@FreeBSD.org>
+ * 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.
+ *
+ * $Id: acpiconf.c,v 1.5 2000/08/08 14:12:19 iwasaki Exp $
+ * $FreeBSD$
+ */
+
+#include <sys/param.h>
+#include <sys/acpi.h>
+
+#include <err.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#define ACPIDEV "/dev/acpi"
+
+static int
+acpi_enable_disable(int enable)
+{
+ int fd;
+
+ fd = open(ACPIDEV, O_RDWR);
+ if (fd == -1) {
+ err(1, NULL);
+ }
+ if (ioctl(fd, enable, NULL) == -1) {
+ err(1, NULL);
+ }
+ close(fd);
+
+ return (0);
+}
+
+static int
+acpi_sleep(int sleep_type)
+{
+ int fd;
+
+ fd = open(ACPIDEV, O_RDWR);
+ if (fd == -1) {
+ err(1, NULL);
+ }
+ if (ioctl(fd, ACPIIO_SETSLPSTATE, &sleep_type) == -1) {
+ err(1, NULL);
+ }
+ close(fd);
+
+ return (0);
+}
+
+int
+main(int argc, char *argv[])
+{
+ char c;
+ int sleep_type;
+
+ sleep_type = -1;
+ while ((c = getopt(argc, argv, "eds:")) != -1) {
+ switch (c) {
+ case 'e':
+ acpi_enable_disable(ACPIIO_ENABLE);
+ break;
+
+ case 'd':
+ acpi_enable_disable(ACPIIO_DISABLE);
+ break;
+
+ case 's':
+ sleep_type = *optarg - '0';
+ if (sleep_type < ACPI_S_STATE_S0 || sleep_type > ACPI_S_STATE_S5) {
+ fprintf(stderr, "%s: invalid sleep type (%d)\n",
+ argv[0], sleep_type);
+ return -1;
+ }
+ break;
+ default:
+ argc -= optind;
+ argv += optind;
+ }
+ }
+
+ if (sleep_type != -1) {
+ sleep(1); /* wait 1 sec. for key-release event */
+ acpi_sleep(sleep_type);
+ }
+ return (0);
+}
OpenPOWER on IntegriCloud