Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

i386_vm86(2) [netbsd man page]

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

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 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
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 set- ting 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

Check Out this Related Man Page

VM86(2) 						     Linux Programmer's Manual							   VM86(2)

vm86old, vm86 - enter virtual 8086 mode SYNOPSIS
#include <sys/vm86.h> int vm86old(struct vm86_struct *info); int vm86(unsigned long fn, struct vm86plus_struct *v86); DESCRIPTION
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 intro- duced. 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 appropriately. 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.) CONFORMING TO
This call is specific to Linux on 32-bit Intel processors, and should not be used in programs intended to be portable. COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at Linux 2009-02-20 VM86(2)
Man Page

3 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to find which machine ...

Hi friend, pls let me know .. 1)How to fine which UNIX machine Ex . whether it is 32 bit processor OR 64 bit processor .. 2) HP-ux is machine or Architectural ? pls replay as soon as possible .. Thanks.. (3 Replies)
Discussion started by: premnathk
3 Replies

2. Solaris

how to know the processor bit capacity

how to know for a particular solaris machine whether i am having a 64 bit or 32 bit processor??? like for machine with details SunOS 5.8 Generic_108528-20 sun4u sparc SUNW,Sun-Blade-100 (3 Replies)
Discussion started by: mobydick
3 Replies

3. Shell Programming and Scripting

Function extraction in PERL

the log contains mathematical operation as follows fm_void_mathematics : PCM_OP_MATHS input function PIN_FLD_NUM1 INT 1 PIN_FLD_NUM2 INT 2 PIN_FLD_RESULTS int PIN_FLD_OUT INT * D Wed Sep 16 05:40:22 2009 solaris_testing fm_void_add : PIN_FLD_SUM int 3 D Wed Sep 16 05:40:22 2009... (1 Reply)
Discussion started by: vkca
1 Replies