Unix/Linux Go Back    


NetBSD 6.1.5 - man page for i386_vm86 (netbsd section 2)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


I386_VM86(2)			   BSD/i386 System Calls Manual 		     I386_VM86(2)

NAME
     i386_vm86 -- set virtual 8086 processor registers and mode

LIBRARY
     i386 Architecture Library (libi386, -li386)

SYNOPSIS
     #include <sys/types.h>
     #include <signal.h>
     #include <machine/mcontext.h>
     #include <machine/segments.h>
     #include <machine/sysarch.h>
     #include <machine/vm86.h>

     int
     i386_vm86(struct vm86_struct *vmcp);

DESCRIPTION
     i386_vm86() will set the process into virtual 8086 mode using the registers and selectors
     specified by the context pointed to by vmcp.  The processor registers are set from
     vmcp->substr.regs, and the emulated processor type from vmcp->substr.ss_cpu_type.

     The kernel keeps a pointer to the context, and uses the tables stored at vmcp->int_byuser
     and vmcp->int21_byuser for fast virtual interrupt handling.  If the n th bit is clear in the
     first of these arrays, then the kernel may directly emulate the real-mode x86 INT n instruc-
     tion handling.  If the n th bit is set, then the process is delivered a signal when an INT
     instruction is executed.

     Since MS-DOS puts many DOS functions onto interrupt 21, it is handled specially:  the k th
     bit in the vmcp->int21_byuser array is checked when INT 21 is requested and the ah register
     is k.

RETURN VALUES
     This routine does not normally return: 32-bit mode will be restored by the delivery of a
     signal to the process.  In case of an error in setting the VM86 mode, a value of -1 is
     returned and the global variable errno is set to indicate the error.

ERRORS
     i386_vm86() will fail if:

     [EFAULT]  The state at vmcp was not readable to the user process.

REFERENCES
     i386 Microprocessor Programmer's Reference Manual, Intel

BSD					February 20, 1996				      BSD
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 11:08 PM.