*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->NetBSD man pages -> i386_vm86 (2)              



NAME    [Toc]    [Back]

     i386_vm86 - set virtual 8086 processor registers and mode

LIBRARY    [Toc]    [Back]

     i386 Architecture Library (libi386, -li386)

SYNOPSIS    [Toc]    [Back]

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

     i386_vm86(struct vm86_struct *vmcp);

DESCRIPTION    [Toc]    [Back]

     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 instruction 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    [Toc]    [Back]

     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    [Toc]    [Back]

     i386_vm86() will fail if:

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

REFERENCES    [Toc]    [Back]

     i386 Microprocessor Programmer's Reference Manual, Intel

BSD                            February 20, 1996                           BSD
[ Back ]
 Similar pages
Name OS Title
vm86 Linux enter virtual 8086 mode
doublebuffer IRIX sets the display mode to double buffer mode
cmode IRIX sets color map mode as the current mode.
assign_cpu_to_pset Tru64 Assigns a processor to a processor set
pset_assign_cpu Tru64 Assigns a processor to a processor set
unicode_stop Linux put the console out of unicode mode (ie. in 8-bit mode).
vm_map FreeBSD virtual address space portion of virtual memory subsystem
setvideo IRIX set and get video registers
getvideo IRIX set and get video registers
fpc IRIX floatingpoint control registers
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service