VM86(2)

NAME
vm86 - enter virtual 8086 mode

SYNOPSIS
#include <sys/vm86.h>

int vm86(struct vm86_struct * info);

DESCRIPTION
Enter VM86 mode with information as specified in info:
    struct vm86_struct {
            struct vm86_regs regs;
            unsigned long flags;
            unsigned long screen_bitmap;
    };
    struct vm86_regs {
    /*
     * normal regs, with special meaning for the segment descriptors..
     */
            long ebx;
            long ecx;
            long edx;
            long esi;
            long edi;
            long ebp;
            long eax;
            long __null_ds;
            long __null_es;
            long __null_fs;
            long __null_gs;
            long orig_eax;
            long eip;
            long cs;
            long eflags;
            long esp;
            long ss;
    /*
     * these are specific to v86 mode:
     */
            long es;
            long ds;
            long fs;
            long gs;
    };

RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

ERRORS

EPERM
    Saved kernel stack exists. (This is a kernel sanity check; the saved stack should only exist within vm86 mode itself.)

CONFORMING TO
This call is specific to Linux on Intel processors, and should not be used in programs intended to be portable.