Modify the trapframe sigcontext, ucontext, etc. Add %gs to the trapframe
commitb6984ddd2a4249bd5f15132f487b3db292e8d7e6
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 8 Jan 2007 03:33:43 +0000 (8 03:33 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 8 Jan 2007 03:33:43 +0000 (8 03:33 +0000)
tree6d65b87daf7851fce7638dece51f22d9e91e68db
parent7f99a98e2f7110b459ab2a405c305725f0b0ecd4
Modify the trapframe sigcontext, ucontext, etc.  Add %gs to the trapframe
and xflags and an expanded floating point save area to sigcontext/ucontext
so traps can be fully specified.

Remove all the %gs hacks in the system code and signal trampoline and handle
%gs faults natively, like we do %fs faults.

Implement writebacks to the virtual page table to set VPTE_M and VPTE_A and
add checks for VPTE_R and VPTE_W.

Consolidate the TLS save area into a MD structure that can be accessed by MI
code.

Reformulate the vmspace_ctl() system call to allow an extended context to be
passed (for TLS info and soon the FP and eventually the LDT).

Adjust the GDB patches to recognize the new location of %gs.

Properly detect non-exception returns to the virtual kernel when the virtual
kernel is running an emulated user process and receives a signal.

And misc other work on the virtual kernel.
65 files changed:
gnu/usr.bin/gdb/libgdb/patches/i386fbsd-nat.c.patch
lib/libc/sys/mmap.2
sys/cpu/i386/include/frame.h
sys/cpu/i386/include/npx.h
sys/cpu/i386/include/reg.h
sys/cpu/i386/include/segments.h
sys/cpu/i386/include/signal.h
sys/cpu/i386/include/ucontext.h
sys/cpu/i386/include/vm86.h
sys/emulation/linux/i386/linux_sysvec.c
sys/kern/init_sysent.c
sys/kern/syscalls.c
sys/kern/syscalls.master
sys/kern/tty_cons.c
sys/platform/pc32/apic/apic_vector.s
sys/platform/pc32/i386/db_interface.c
sys/platform/pc32/i386/db_trace.c
sys/platform/pc32/i386/exception.s
sys/platform/pc32/i386/genassym.c
sys/platform/pc32/i386/locore.s
sys/platform/pc32/i386/machdep.c
sys/platform/pc32/i386/support.s
sys/platform/pc32/i386/swtch.s
sys/platform/pc32/i386/sys_machdep.c
sys/platform/pc32/i386/tls.c
sys/platform/pc32/i386/trap.c
sys/platform/pc32/i386/vm86.c
sys/platform/pc32/i386/vm_machdep.c
sys/platform/pc32/icu/icu_vector.s
sys/platform/pc32/include/md_var.h
sys/platform/pc32/include/pcb.h
sys/platform/pc32/include/pcb_ext.h
sys/platform/pc32/include/thread.h
sys/platform/pc32/isa/ipl.s
sys/platform/pc32/isa/npx.c
sys/platform/vkernel/i386/cpu_regs.c
sys/platform/vkernel/i386/db_interface.c
sys/platform/vkernel/i386/db_trace.c
sys/platform/vkernel/i386/exception.c
sys/platform/vkernel/i386/genassym.c
sys/platform/vkernel/i386/locore.s
sys/platform/vkernel/i386/npx.c
sys/platform/vkernel/i386/swtch.s
sys/platform/vkernel/i386/tls.c
sys/platform/vkernel/i386/trap.c
sys/platform/vkernel/i386/vm_machdep.c
sys/platform/vkernel/include/md_var.h
sys/platform/vkernel/include/pcb.h
sys/platform/vkernel/include/pcb_ext.h
sys/platform/vkernel/include/thread.h
sys/platform/vkernel/platform/console.c
sys/platform/vkernel/platform/init.c
sys/platform/vkernel/platform/machintr.c
sys/platform/vkernel/platform/pmap.c
sys/platform/vkernel/platform/pmap_inval.c
sys/sys/syscall-hide.h
sys/sys/syscall.h
sys/sys/syscall.mk
sys/sys/sysproto.h
sys/sys/systm.h
sys/sys/sysunion.h
sys/sys/vkernel.h
sys/sys/vmspace.h
sys/vm/vm_fault.c
sys/vm/vm_vmspace.c