summaryrefslogtreecommitdiffstats
path: root/sys/i386/include
diff options
context:
space:
mode:
authormdodd <mdodd@FreeBSD.org>2003-01-17 08:10:18 +0000
committermdodd <mdodd@FreeBSD.org>2003-01-17 08:10:18 +0000
commitdef7e1bda051583fcc3525070ac5429f314f7fcf (patch)
tree9569a08b4ce3cebe0d49d0bb941a139c6b6d5f61 /sys/i386/include
parent67dc3cf7fb55dd4317169204e4235cc4b359827c (diff)
downloadFreeBSD-src-def7e1bda051583fcc3525070ac5429f314f7fcf.zip
FreeBSD-src-def7e1bda051583fcc3525070ac5429f314f7fcf.tar.gz
A driver for the System Management Application Program
Interface (SMAPI) BIOS, which is present on some IBM Thinkpad models (560, 600, 770 to name a few.) The SMAPI BIOS provides access to System Information, System Configuration, and Power Management.
Diffstat (limited to 'sys/i386/include')
-rw-r--r--sys/i386/include/smapi.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/sys/i386/include/smapi.h b/sys/i386/include/smapi.h
new file mode 100644
index 0000000..6123526
--- /dev/null
+++ b/sys/i386/include/smapi.h
@@ -0,0 +1,91 @@
+/*-
+ * Copyright (c) 2003 Matthew N. Dodd <winter@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.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _MACHINE_SMAPI_H_
+#define _MACHINE_SMAPI_H_
+
+#ifndef _KERNEL
+#include <sys/types.h>
+#endif
+#include <sys/ioccom.h>
+
+struct smapi_bios_header {
+ u_int8_t signature[4]; /* '$SMB' */
+ u_int8_t version_major;
+ u_int8_t version_minor;
+ u_int8_t length;
+ u_int8_t checksum;
+ u_int16_t information;
+#define SMAPI_REAL_VM86 0x0001
+#define SMAPI_PROT_16BIT 0x0002
+#define SMAPI_PROT_32BIT 0x0004
+ u_int16_t reserved1;
+
+ u_int16_t real16_offset;
+ u_int16_t real16_segment;
+
+ u_int16_t reserved2;
+
+ u_int16_t prot16_offset;
+ u_int32_t prot16_segment;
+
+ u_int32_t prot32_offset;
+ u_int32_t prot32_segment;
+
+};
+
+struct smapi_bios_parameter {
+ union {
+ struct {
+ u_int8_t func;
+ u_int8_t sub_func;
+ } in;
+ struct {
+ u_int8_t rc;
+ u_int8_t sub_rc;
+ } out;
+ } type;
+
+ u_int16_t param1;
+ u_int16_t param2;
+ u_int16_t param3;
+
+ u_int32_t param4;
+ u_int32_t param5;
+
+};
+
+#define cmd_func type.in.func
+#define cmd_sub_func type.in.sub_func
+#define rsp_rc type.out.rc
+#define rsp_sub_rc type.out.sub_rc
+
+#define SMAPIOGHEADER _IOR('$', 0, struct smapi_bios_header)
+#define SMAPIOCGFUNCTION _IOWR('$', 1, struct smapi_bios_parameter)
+
+#endif /* _MACHINE_SMAPI_H_ */
OpenPOWER on IntegriCloud