summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/vm86.h
Commit message (Collapse)AuthorAgeFilesLines
* x86: Allow users to change PSL_RF via ptrace(PT_SETREGS...)emaste2013-11-141-1/+1
| | | | | | | | | | | | | Debuggers may need to change PSL_RF. Note that tf_eflags is already stored in the signal context during signal handling and PSL_RF previously could be modified via sigreturn, so this change should not provide any new ability to userspace. For background see the thread at: http://lists.freebsd.org/pipermail/freebsd-i386/2007-September/005910.html Reviewed by: jhb, kib Sponsored by: DARPA, AFRL
* Increase maximum number of page table entries per VM86 context from 8 to 24jkim2010-08-251-1/+1
| | | | | pages, yet again. Now we can allocate a whole segment, which is required for shadowing option ROM images, for example.
* Implement a simple native VM86 backend for X86BIOS. Now i386 uses nativejkim2010-08-051-1/+2
| | | | | | | | | | | | | VM86 calls instead of the real mode emulator as a backend. VM86 has been proven reliable for very long time and it is actually few times faster than emulation. Increase maximum number of page table entries per VM86 context from 3 to 8 pages. It was (ridiculously) low and insufficient for new VM86 backend, which shares one context globally. Slighly rearrange and clean up the emulator backend to accommodate new code. The only visible change here is stack size, which is decreased from 64K to 4K bytes to sync. with VM86. Actually, it seems there is no need for big stack in real mode. MFC after: 1 month
* 1.Fix smp race between kernel vm86 BIOS calling and userland vm86 mode code,davidxu2002-11-071-1/+0
| | | | | | | | | | remove global variable in_vm86call, set vm86 calling flag in PCB flags. 2.Fix vm86 BIOS calling preempted problem by changing vm86_lock mutex type from MTX_DEF to MTX_SPIN. vm86pcb is not remembered in thread struct, when the thread calling vm86 BIOS is preempted by interrupt thread, and later switching back to the thread would cause incorrect context be loaded into CPU registers, this leads to kernel crash.
* Remove __P.alfred2002-03-201-12/+11
|
* Fixed a missing proc -> thread substitution.bde2001-10-031-1/+3
| | | | | Broke future detection of this bug in userland by not declaring kernel prototypes in userland.
* KSE Milestone 2julian2001-09-121-1/+1
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* Some reorganization of sysarch() interface:luoqi1999-09-021-5/+0
| | | | | | | | | | 1. Move definitions of struct i386_*_args to the header file sysarch.h, since they are part of the sysarch API. struct i386_get_ldt_args and i386_set_ldt_args were identical, therefore make them into one struct i386_ldt_args. Libc should use these definitions as well. 2. Return a more sensible EOPNOTSUPP for unknown operations. Reviewed by: marcel
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Unifdef VM86.jlemon1999-06-011-2/+3
| | | | Reviewed by: silence on on -current
* Enable vmspace sharing on SMP. Major changes are,luoqi1999-04-281-1/+2
| | | | | | | | | | | | | | | | | - %fs register is added to trapframe and saved/restored upon kernel entry/exit. - Per-cpu pages are no longer mapped at the same virtual address. - Each cpu now has a separate gdt selector table. A new segment selector is added to point to per-cpu pages, per-cpu global variables are now accessed through this new selector (%fs). The selectors in gdt table are rearranged for cache line optimization. - fask_vfork is now on as default for both UP and SMP. - Some aio code cleanup. Reviewed by: Alan Cox <alc@cs.rice.edu> John Dyson <dyson@iquest.net> Julian Elischer <julian@whistel.com> Bruce Evans <bde@zeta.org.au> David Greenman <dg@root.com>
* Change the vm86_datacall interface so that callers are now responsiblejlemon1999-03-181-3/+21
| | | | | | | | | for passing in their own data space and associated page table information. Update the support files so that any pages in the vm86 page table are mapped, rather than just one page. Restore the E820 memory probe, and have it use the new interface.
* Don't pretend to support ix86's with 16-bit ints by using longs justbde1998-09-291-3/+3
| | | | to ensure 32-bit variables. Doing so broke ix86's with 64-bit longs.
* Add missing register name defines.msmith1998-07-141-1/+7
|
* Fixed pedantic semantics errors (bitfields not of type int, signed intbde1998-06-081-3/+3
| | | | | | | or unsigned int (this doesn't change the struct layout, size or alignment in any of the files changed in this commit, at least for gcc on i386's. Using bitfields of type u_char may affect size and alignment but not packing)).
* Add the ability to make real-mode BIOS calls from the kernel. Currently,jlemon1998-03-231-32/+63
| | | | | | | | | | | everything is contained inside #ifdef VM86, so this option must be present in the config file to use this functionality. Thanks to Tor Egge, these changes should work on SMP machines. However, it may not be throughly SMP-safe. Currently, the only BIOS calls made are memory-sizing routines at bootup, these replace reading the RTC values.
* Avoid passing some more `retval's.bde1997-11-201-2/+2
|
* Remove the vm86 support as an LKM, and link it directly into the kerneljlemon1997-08-281-3/+3
| | | | | if 'options "VM86"' is in the config file. The LKM was really for development, and has probably outlived its usefulness.
* Add forward declaration for struct proc.jlemon1997-08-201-1/+2
|
* A couple of missing doscmd header files. Messed up again. Now candyson1997-08-091-0/+111
compile the kernel!!! Submitted by: Jonathan Lemon <jlemon@americantv.com>
OpenPOWER on IntegriCloud