summaryrefslogtreecommitdiffstats
path: root/man2/vm86.2
blob: 437f68fa744e5b5ea0cee8d7152d446aaa74eb98 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
.\" Copyright 1997 Andries E. Brouwer (aeb@cwi.nl)
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.TH vm86 2 (date) "Linux man-pages (unreleased)"
.SH NAME
vm86old, vm86 \- enter virtual 8086 mode
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <sys/vm86.h>
.PP
.BI "int vm86old(struct vm86_struct *" info );
.BI "int vm86(unsigned long " fn ", struct vm86plus_struct *" v86 );
.fi
.SH DESCRIPTION
The system call
.BR vm86 ()
was introduced in Linux 0.97p2.
In Linux 2.1.15 and 2.0.28, it was renamed to
.BR vm86old (),
and a new
.BR vm86 ()
was introduced.
The definition of
.I struct vm86_struct
was changed
in 1.1.8 and 1.1.9.
.PP
These calls cause the process to enter VM86 mode (virtual-8086 in Intel
literature), and are used by
.BR dosemu .
.PP
VM86 mode is an emulation of real mode within a protected mode task.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
.I errno
is set to indicate the error.
.SH ERRORS
.TP
.B EFAULT
This return value is specific to i386 and indicates a problem with getting
user-space data.
.TP
.B ENOSYS
This return value indicates the call is not implemented on the present
architecture.
.TP
.B EPERM
Saved kernel stack exists.
(This is a kernel sanity check; the saved
stack should exist only within vm86 mode itself.)
.SH STANDARDS
Linux on 32-bit Intel processors.