From: | Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx> |
Date: | Sun, 7 Jan 2007 19:33:43 -0800 (PST) |
dillon 2007/01/07 19:33:43 PST DragonFly src repository Modified files: gnu/usr.bin/gdb/libgdb/patches i386fbsd-nat.c.patch lib/libc/sys mmap.2 sys/cpu/i386/include frame.h npx.h reg.h segments.h signal.h ucontext.h vm86.h sys/emulation/linux/i386 linux_sysvec.c sys/kern init_sysent.c syscalls.c syscalls.master tty_cons.c sys/machine/pc32/apic apic_vector.s sys/machine/pc32/i386 db_interface.c db_trace.c exception.s genassym.c locore.s machdep.c support.s swtch.s sys_machdep.c tls.c trap.c vm86.c vm_machdep.c sys/machine/pc32/icu icu_vector.s sys/machine/pc32/include md_var.h pcb.h pcb_ext.h thread.h sys/machine/pc32/isa ipl.s npx.c sys/machine/vkernel/i386 cpu_regs.c db_interface.c db_trace.c exception.c genassym.c locore.s npx.c swtch.s tls.c trap.c vm_machdep.c sys/machine/vkernel/include md_var.h pcb.h pcb_ext.h thread.h sys/machine/vkernel/platform console.c init.c machintr.c pmap.c pmap_inval.c sys/sys syscall-hide.h syscall.h syscall.mk sysproto.h systm.h sysunion.h vkernel.h vmspace.h sys/vm vm_fault.c vm_vmspace.c Log: 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. Revision Changes Path 1.2 +11 -3 src/gnu/usr.bin/gdb/libgdb/patches/i386fbsd-nat.c.patch 1.7 +4 -1 src/lib/libc/sys/mmap.2 1.7 +6 -0 src/sys/cpu/i386/include/frame.h 1.11 +8 -4 src/sys/cpu/i386/include/npx.h 1.8 +22 -19 src/sys/cpu/i386/include/reg.h 1.13 +8 -0 src/sys/cpu/i386/include/segments.h 1.8 +5 -5 src/sys/cpu/i386/include/signal.h 1.4 +3 -2 src/sys/cpu/i386/include/ucontext.h 1.9 +2 -0 src/sys/cpu/i386/include/vm86.h 1.25 +10 -2 src/sys/emulation/linux/i386/linux_sysvec.c 1.49 +1 -1 src/sys/kern/init_sysent.c 1.48 +1 -1 src/sys/kern/syscalls.c 1.47 +3 -2 src/sys/kern/syscalls.master 1.20 +2 -1 src/sys/kern/tty_cons.c 1.35 +10 -5 src/sys/machine/pc32/apic/apic_vector.s 1.16 +1 -0 src/sys/machine/pc32/i386/db_interface.c 1.17 +0 -2 src/sys/machine/pc32/i386/db_trace.c 1.30 +25 -9 src/sys/machine/pc32/i386/exception.s 1.54 +1 -2 src/sys/machine/pc32/i386/genassym.c 1.13 +0 -1 src/sys/machine/pc32/i386/locore.s 1.112 +54 -23 src/sys/machine/pc32/i386/machdep.c 1.19 +1 -0 src/sys/machine/pc32/i386/support.s 1.43 +0 -12 src/sys/machine/pc32/i386/swtch.s 1.30 +3 -3 src/sys/machine/pc32/i386/sys_machdep.c 1.8 +2 -2 src/sys/machine/pc32/i386/tls.c 1.92 +15 -135 src/sys/machine/pc32/i386/trap.c 1.24 +1 -1 src/sys/machine/pc32/i386/vm86.c 1.53 +1 -6 src/sys/machine/pc32/i386/vm_machdep.c 1.29 +9 -4 src/sys/machine/pc32/icu/icu_vector.s 1.24 +2 -0 src/sys/machine/pc32/include/md_var.h 1.11 +1 -1 src/sys/machine/pc32/include/pcb.h 1.9 +0 -1 src/sys/machine/pc32/include/pcb_ext.h 1.17 +2 -2 src/sys/machine/pc32/include/thread.h 1.27 +20 -4 src/sys/machine/pc32/isa/ipl.s 1.39 +7 -0 src/sys/machine/pc32/isa/npx.c 1.4 +60 -49 src/sys/machine/vkernel/i386/cpu_regs.c 1.2 +1 -0 src/sys/machine/vkernel/i386/db_interface.c 1.3 +0 -2 src/sys/machine/vkernel/i386/db_trace.c 1.2 +9 -4 src/sys/machine/vkernel/i386/exception.c 1.55 +1 -2 src/sys/machine/vkernel/i386/genassym.c 1.6 +0 -1 src/sys/machine/vkernel/i386/locore.s 1.3 +7 -0 src/sys/machine/vkernel/i386/npx.c 1.4 +0 -18 src/sys/machine/vkernel/i386/swtch.s 1.3 +6 -3 src/sys/machine/vkernel/i386/tls.c 1.5 +49 -32 src/sys/machine/vkernel/i386/trap.c 1.3 +1 -6 src/sys/machine/vkernel/i386/vm_machdep.c 1.9 +1 -0 src/sys/machine/vkernel/include/md_var.h 1.2 +1 -1 src/sys/machine/vkernel/include/pcb.h 1.2 +0 -1 src/sys/machine/vkernel/include/pcb_ext.h 1.2 +9 -7 src/sys/machine/vkernel/include/thread.h 1.3 +2 -2 src/sys/machine/vkernel/platform/console.c 1.14 +0 -10 src/sys/machine/vkernel/platform/init.c 1.5 +11 -0 src/sys/machine/vkernel/platform/machintr.c 1.6 +15 -15 src/sys/machine/vkernel/platform/pmap.c 1.3 +18 -11 src/sys/machine/vkernel/platform/pmap_inval.c 1.49 +1 -1 src/sys/sys/syscall-hide.h 1.49 +1 -1 src/sys/sys/syscall.h 1.49 +1 -1 src/sys/sys/syscall.mk 1.49 +3 -4 src/sys/sys/sysproto.h 1.60 +3 -0 src/sys/sys/systm.h 1.46 +1 -1 src/sys/sys/sysunion.h 1.7 +7 -2 src/sys/sys/vkernel.h 1.6 +5 -1 src/sys/sys/vmspace.h 1.36 +81 -11 src/sys/vm/vm_fault.c 1.8 +38 -15 src/sys/vm/vm_vmspace.c http://www.dragonflybsd.org/cvsweb/src/gnu/usr.bin/gdb/libgdb/patches/i386fbsd-nat.c.patch.diff?r1=1.1&r2=1.2&f=u http://www.dragonflybsd.org/cvsweb/src/lib/libc/sys/mmap.2.diff?r1=1.6&r2=1.7&f=u http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/frame.h.diff?r1=1.6&r2=1.7&f=u http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/npx.h.diff?r1=1.10&r2=1.11&f=u http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/reg.h.diff?r1=1.7&r2=1.8&f=u http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/segments.h.diff?r1=1.12&r2=1.13&f=u http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/signal.h.diff?r1=1.7&r2=1.8&f=u http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/ucontext.h.diff?r1=1.3&r2=1.4&f=u http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/vm86.h.diff?r1=1.8&r2=1.9&f=u http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/i386/linux_sysvec.c.diff?r1=1.24&r2=1.25&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/init_sysent.c.diff?r1=1.48&r2=1.49&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/syscalls.c.diff?r1=1.47&r2=1.48&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/syscalls.master.diff?r1=1.46&r2=1.47&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/tty_cons.c.diff?r1=1.19&r2=1.20&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/apic/apic_vector.s.diff?r1=1.34&r2=1.35&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/db_interface.c.diff?r1=1.15&r2=1.16&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/db_trace.c.diff?r1=1.16&r2=1.17&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/exception.s.diff?r1=1.29&r2=1.30&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/genassym.c.diff?r1=1.53&r2=1.54&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/locore.s.diff?r1=1.12&r2=1.13&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/machdep.c.diff?r1=1.111&r2=1.112&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/support.s.diff?r1=1.18&r2=1.19&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/swtch.s.diff?r1=1.42&r2=1.43&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/sys_machdep.c.diff?r1=1.29&r2=1.30&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/tls.c.diff?r1=1.7&r2=1.8&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/trap.c.diff?r1=1.91&r2=1.92&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/vm86.c.diff?r1=1.23&r2=1.24&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/i386/vm_machdep.c.diff?r1=1.52&r2=1.53&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/icu/icu_vector.s.diff?r1=1.28&r2=1.29&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/include/md_var.h.diff?r1=1.23&r2=1.24&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/include/pcb.h.diff?r1=1.10&r2=1.11&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/include/pcb_ext.h.diff?r1=1.8&r2=1.9&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/include/thread.h.diff?r1=1.16&r2=1.17&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/isa/ipl.s.diff?r1=1.26&r2=1.27&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/pc32/isa/npx.c.diff?r1=1.38&r2=1.39&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/cpu_regs.c.diff?r1=1.3&r2=1.4&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/db_interface.c.diff?r1=1.1&r2=1.2&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/db_trace.c.diff?r1=1.2&r2=1.3&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/exception.c.diff?r1=1.1&r2=1.2&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/genassym.c.diff?r1=1.54&r2=1.55&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/locore.s.diff?r1=1.5&r2=1.6&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/npx.c.diff?r1=1.2&r2=1.3&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/swtch.s.diff?r1=1.3&r2=1.4&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/tls.c.diff?r1=1.2&r2=1.3&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/trap.c.diff?r1=1.4&r2=1.5&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/i386/vm_machdep.c.diff?r1=1.2&r2=1.3&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/include/md_var.h.diff?r1=1.8&r2=1.9&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/include/pcb.h.diff?r1=1.1&r2=1.2&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/include/pcb_ext.h.diff?r1=1.1&r2=1.2&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/include/thread.h.diff?r1=1.1&r2=1.2&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/platform/console.c.diff?r1=1.2&r2=1.3&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/platform/init.c.diff?r1=1.13&r2=1.14&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/platform/machintr.c.diff?r1=1.4&r2=1.5&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/platform/pmap.c.diff?r1=1.5&r2=1.6&f=u http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/platform/pmap_inval.c.diff?r1=1.2&r2=1.3&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/syscall-hide.h.diff?r1=1.48&r2=1.49&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/syscall.h.diff?r1=1.48&r2=1.49&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/syscall.mk.diff?r1=1.48&r2=1.49&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/sysproto.h.diff?r1=1.48&r2=1.49&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/systm.h.diff?r1=1.59&r2=1.60&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/sysunion.h.diff?r1=1.45&r2=1.46&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/vkernel.h.diff?r1=1.6&r2=1.7&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/vmspace.h.diff?r1=1.5&r2=1.6&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_fault.c.diff?r1=1.35&r2=1.36&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_vmspace.c.diff?r1=1.7&r2=1.8&f=u