Modify the trapframe sigcontext, ucontext, etc. Add %gs to the trapframe
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 8 Jan 2007 03:33:43 +0000 (03:33 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 8 Jan 2007 03:33:43 +0000 (03:33 +0000)
commit4e7c41c549d873c60943035447ac04c4d30ad100
tree95f589d228c2c4f122a1c1becb4021137d4fa07e
parent947d5e7278e397906c85dec9c3df84fc462cb4e7
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