freebsd-nq/sys
John Baldwin 4937cb2d30 Change the BTX kernel to drop all the way out to real mode to invoke BIOS
routines (V86 requests from the client and hardware interrupt handlers):
- Install trampoline real mode interrupt handlers at IDT vectors 0x20-0x2f
  to handle hardware interrupts by invoking the appropriate vector (0x8-0xf
  or 0x70-0x78).  This allows the 8259As to use vectors 0x20-0x2f in real
  mode as well as protected mode will ensuring that the master 8259A
  doesn't share IDT space with CPU exceptions in protected mode.
- Since we don't need to reserve space for page tables and a page directory
  anymore since dropping paging support, move the TSS and protected mode
  IDT up by 16k.  Grow the ring 1 link stack by 16k as a result.
- Repurpose the ring 1 link stack to be used as a real mode stack when
  invoking real mode routines either via a V86 request or a hardware
  interrupts.  This simplifies a few things as we avoid disturbing the
  original user stack.
- Add some more block comments to explain how the code interacts with the
  V86 structure as this wasn't immediately obvious from the prior comments
  (e.g. that we explicitly copy the seg regs for real mode out of the V86
  struct onto the stack to be popped off when going into real mode, etc.).
  Also, document some of the stack frames we create going to real mode and
  back.
- Remove all of the virtual 86 related code including having to simulate
  various instructions and BIOS calls on a trap from virtual 86 mode.
- Explicitly panic if a user client attempts to perform a V86 CALL
  request that isn't a far call.
- Bump version to 1.2.

Assuming this works ok this should fix some of the long standing issues
with USB booting as well as etherboot.

MFC after:	2 weeks
Submitted by:	kib (some parts from his original real mode patch)
2008-03-10 21:43:31 +00:00
..
amd64 - Rather than repeating the same preemption code everywhere call the scheduler 2008-03-10 01:32:48 +00:00
arm MFi386: 2008-03-06 22:27:35 +00:00
boot Change the BTX kernel to drop all the way out to real mode to invoke BIOS 2008-03-10 21:43:31 +00:00
bsm
cam When probing a newly found device, don't automatically assume that the 2008-02-27 08:47:13 +00:00
cddl Axe the 'thread' argument from VOP_ISLOCKED() and lockstatus() as it is 2008-02-25 18:45:57 +00:00
compat Return ENOSYS instead of 0 for the unknown futex operations. 2008-03-02 14:00:50 +00:00
conf HZ now defaults to 1000 on many architectures, so update NOTES to reflect 2008-03-09 11:29:59 +00:00
contrib Axe the 'thread' argument from VOP_ISLOCKED() and lockstatus() as it is 2008-02-25 18:45:57 +00:00
crypto Make test00 compilable again. 2008-01-15 18:34:47 +00:00
ddb Add a /S mode to DDB "ex" command, which interprets and prints the 2008-03-07 18:09:07 +00:00
dev - Fix some style bugs and remove another banal comment missed in 2008-03-09 17:55:19 +00:00
fs Replace lockmgr lock protecting nwfs vnode hash table with an sx lock. 2008-03-02 19:02:30 +00:00
gdb Add support for kgdb's 'detach' command. 2008-02-29 01:57:20 +00:00
geom Add support for VTOC8 labels (aka sun disk labels). When a label does 2008-03-02 00:52:49 +00:00
gnu Introduce some functions in the vnode locks namespace and in the ffs 2008-02-24 16:38:58 +00:00
i4b
i386 - Rather than repeating the same preemption code everywhere call the scheduler 2008-03-10 01:32:48 +00:00
ia64 - Remove the old smp cpu topology specification with a new, more flexible 2008-03-02 07:58:42 +00:00
isa Use cpu_spinwait() (i.e., "pause") when spinning on rdtsc during DELAY(). 2008-01-17 18:59:38 +00:00
kern - Don't rely on a side effect of sched_prio() to set the initial ts_runq 2008-03-10 09:50:29 +00:00
libkern Add prototype for __cmpd2(). 2008-02-23 22:40:05 +00:00
modules "root" the include path so there is less duplication. 2008-03-08 19:14:43 +00:00
net Improve convergence of bpf_filter.c toward style(9). 2008-03-09 21:13:43 +00:00
net80211 Fix adhoc mode to scan all available channels for a bss to join 2008-02-29 04:07:07 +00:00
netatalk
netatm
netgraph Addition to the previous commit. Release inproc in case of memory error. 2008-03-09 11:17:00 +00:00
netinet Padding after EOL option must be zeros according to RFC793 but 2008-03-09 13:26:50 +00:00
netinet6 Rather than passing around a cached 'priv', pass in an ucred to 2008-02-02 14:11:31 +00:00
netipsec Fix bugs when allocating and passing information of current lifetime and 2008-03-02 17:12:28 +00:00
netipx
netnatm
netncp - Handle buffer lock waiters count directly in the buffer cache instead 2008-03-01 19:47:50 +00:00
netsmb Remove unused vc_tnode field from struct smb_vc. 2008-03-10 14:55:34 +00:00
nfs
nfs4client - Handle buffer lock waiters count directly in the buffer cache instead 2008-03-01 19:47:50 +00:00
nfsclient Expand the nfs_opts array to include all possible string 2008-03-05 10:09:29 +00:00
nfsserver Fix the Giant leak in the nfsrv_remove(). 2008-03-04 11:05:03 +00:00
opencrypto Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
pc98 MFi386: revision 1.482. 2008-03-10 12:25:04 +00:00
pccard
pci Don't map memory/IO resource in device probe and just use PCI 2008-03-03 04:15:08 +00:00
powerpc Don't use in32() and out32() when writing to the CCSRBAR. The 2008-03-09 02:29:19 +00:00
rpc
security Remove XXX to remind me to check the free space calculation, which to my 2008-03-10 18:15:02 +00:00
sparc64 - Fix some style bugs. 2008-03-09 17:09:15 +00:00
sun4v - Rather than repeating the same preemption code everywhere call the scheduler 2008-03-10 01:32:48 +00:00
sys - Add a sched_preempt() routine to be called by md code after IPI_PREEMPT is 2008-03-10 01:30:35 +00:00
tools Introduce a standalone shell script for embedding MFS image. 2008-02-05 10:46:30 +00:00
ufs Remove include of opt_quota.h; as of revision 1.205 there is no longer 2008-03-10 18:44:07 +00:00
vm Eliminate an unnecessary test from vm_fault's delete-behind heuristic. 2008-03-09 06:08:58 +00:00
Makefile o Add boot, gdb, nfsserver and opencrypto dirs to CSCOPEDIRS; sort. 2008-01-23 08:50:34 +00:00