vm86(2)

vm862

Enter virtual 8086 mode

Usage

#include <sys/vm86.h>

int vm86old(struct vm86_struct *info); int vm86(unsigned long fn, struct vm86plus_struct *v86);

Library

Standard C library (libc, -lc)

Overview

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.

Return value

On success, zero is returned. On error, -1 is returned, and errno is set to indicate the error.

Errors

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.)

Releases

19 releases since Debian 1.1 (Buzz); the text changed 16 times.

  1. 1.1–1.2
  2. 1.3
  3. 2.0–2.1
  4. 2.2
  5. 3.0
  6. 3.1
  7. 4.0
  8. 5.0
  9. 6.0
  10. 7
  11. 8
  12. 9
  13. 10
  14. 11
  15. 12
  16. 13
  17. Arch

Standards

Linux on 32-bit Intel processors.

From man-pages 6.19-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.