| NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | STANDARDS | COLOPHON | |
|  | 
vm86(2)                    System Calls Manual                    vm86(2)
       vm86old, vm86 - enter virtual 8086 mode
       Standard C library (libc, -lc)
       #include <sys/vm86.h>
       int vm86old(struct vm86_struct *info);
       int vm86(unsigned long fn, struct vm86plus_struct *v86);
       The system call vm86() was introduced in Linux 0.97p2.  In Linux
       2.1.15 and 2.0.28, it was renamed to vm86old(), and a new vm86()
       was introduced.  The definition of struct vm86_struct was changed
       in 1.1.8 and 1.1.9.
       These calls cause the process to enter VM86 mode (virtual-8086 in
       Intel literature), and are used by dosemu.
       VM86 mode is an emulation of real mode within a protected mode
       task.
       On success, zero is returned.  On error, -1 is returned, and errno
       is set to indicate the error.
       EFAULT This return value is specific to i386 and indicates a
              problem with getting user-space data.
       ENOSYS This return value indicates the call is not implemented on
              the present architecture.
       EPERM  Saved kernel stack exists.  (This is a kernel sanity check;
              the saved stack should exist only within vm86 mode itself.)
       Linux on 32-bit Intel processors.
       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.15.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2025-08-11.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       man-pages@man7.org
Linux man-pages 6.15            2025-05-17                        vm86(2)
Pages that refer to this page: modify_ldt(2), syscalls(2), unimplemented(2), systemd.exec(5)