summaryrefslogtreecommitdiffstats
path: root/lib/libc/i386/sys/i386_vm86.2
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>1998-07-28 03:39:04 +0000
committerjlemon <jlemon@FreeBSD.org>1998-07-28 03:39:04 +0000
commit6a5deaf27dc99bbc68aad20defad4d691aa98611 (patch)
treee4b20c89fd21b8d857dcfefc94453064f416a089 /lib/libc/i386/sys/i386_vm86.2
parentf4995111a02a5c2ea60f63bc0ffa499b9567aca6 (diff)
downloadFreeBSD-src-6a5deaf27dc99bbc68aad20defad4d691aa98611.zip
FreeBSD-src-6a5deaf27dc99bbc68aad20defad4d691aa98611.tar.gz
oops, forgot to do ``cvs add'' first.
Diffstat (limited to 'lib/libc/i386/sys/i386_vm86.2')
-rw-r--r--lib/libc/i386/sys/i386_vm86.295
1 files changed, 95 insertions, 0 deletions
diff --git a/lib/libc/i386/sys/i386_vm86.2 b/lib/libc/i386/sys/i386_vm86.2
new file mode 100644
index 0000000..5ba6daf
--- /dev/null
+++ b/lib/libc/i386/sys/i386_vm86.2
@@ -0,0 +1,95 @@
+.\" Copyright (c) 1998 Jonathan Lemon
+.\" 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$
+.\"
+.Dd July 27, 1998
+.Os
+.Dt I386_VM86 2
+.Sh NAME
+.Nm i386_vm86
+.Nd control vm86-related functions
+.Sh SYNOPSIS
+.Fd #include <machine/sysarch.h>
+.Fd #include <machine/vm86.h>
+.Ft int
+.Fn i386_vm86 "int function" "void *data"
+.Sh DESCRIPTION
+.Fn i386_vm86
+is used to call various vm86 related functions.
+.Fa function
+can be one of the following values:
+.Bl -tag -offset indent -width VM86_SET_VME
+.It Dv VM86_INIT
+This will initialize the kernel's vm86 parameter area for the
+process, and permit the process to make vm86 calls.
+.Fa data
+points to the following structure:
+.Bd -literal
+struct vm86_init_args {
+ int debug;
+ int cpu_type;
+ u_char int_map[32];
+};
+.Ed
+.Pp
+.Fa debug
+is used to turn on debugging code.
+.Fa cpu_type
+controls the type of CPU being emulated, and is currently unimplemented.
+.Fa int_map
+is a bitmap which determines whether vm86 interrupts should be handled
+in vm86 mode, or reflected back to the process. If the
+.Em Nth
+bit is set, the interrupt will be reflected to the process, otherwise
+it will be dispatched by the vm86 interrupt table.
+.\" .It Dv VM86_SET_VME
+.\" .It Dv VM86_GET_VME
+.\" .It Dv VM86_INTCALL
+.El
+.Pp
+vm86 mode is entered by calling
+.Xr sigreturn 2
+with the correct machine context for vm86, and with the
+.Em PSL_VM
+bit set. Control returns to the process upon delivery of a signal.
+.Sh RETURN VALUES
+Upon successful completion,
+.Fn i386_vm86
+will return the value of 0.
+Otherwise, a value of -1 is returned and the global
+variable
+.Va errno
+is set to indicate the error.
+.Sh ERRORS
+.Fn i386_vm86
+will fail if:
+.Bl -tag -width [ENOMEM]
+.It Bq Er EINVAL
+The kernel does not have vm86 support, or an invalid function was specified.
+.It Bq Er ENOMEM
+There is not enough memory to initialize the kernel data structures.
+.Sh AUTHORS
+This man page was written by
+.An Jonathan Lemon .
OpenPOWER on IntegriCloud