DragonFly-2.3.0.563.g5b9f6 master sys/cpu/amd64/include asmacros.h frame.h pmap.h psl.h reg.h signal.h ucontext.h sys/platform/pc64/amd64 exception.S genassym.c ipl.s machdep.c support.s swtch.s trap.c sys/platform/pc64/icu icu_vector.s sys/platform/pc64/include pcb.h

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Apr 1 18:06:30 PDT 2009


commit 5b9f6cc4be80527177ee4b19a289116490881da0
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Apr 1 17:57:01 2009 -0700

    AMD64 - Make signals operational, fix reg mappings, fix %fs management, trace
    
    Adjust sigframe, trapframe, mcontext, ucontext, and regs.  Add tf_xflags
    too all structures.  Reorder struct regs to match the register layout
    in the other structures.
    
    Implement the commented out signaling code.  Signals now work, or at least
    do not crash programs.  Theoretically the FP state is also saved and restored.
    
    The exec() code failed to adjust gd_user_fs and gd_user_gs when setting
    the msr registers for the user %fs and %gs, causing %fs to unexpectedly
    change in running user programs.
    
    Implement trace/debug support functions to set %rip and to single-step.
    
    Define the missing vkernel flag FP_SOFTFP.

Summary of changes:
 sys/cpu/amd64/include/asmacros.h    |    2 +-
 sys/cpu/amd64/include/frame.h       |    5 +-
 sys/cpu/amd64/include/pmap.h        |   14 ++
 sys/cpu/amd64/include/psl.h         |    2 +-
 sys/cpu/amd64/include/reg.h         |   23 ++--
 sys/cpu/amd64/include/signal.h      |    1 +
 sys/cpu/amd64/include/ucontext.h    |    4 +
 sys/platform/pc64/amd64/exception.S |    5 +-
 sys/platform/pc64/amd64/genassym.c  |    1 +
 sys/platform/pc64/amd64/ipl.s       |    1 +
 sys/platform/pc64/amd64/machdep.c   |  249 ++++++++++++-----------------------
 sys/platform/pc64/amd64/support.s   |    2 +-
 sys/platform/pc64/amd64/swtch.s     |    1 +
 sys/platform/pc64/amd64/trap.c      |    3 +
 sys/platform/pc64/icu/icu_vector.s  |    3 +-
 sys/platform/pc64/include/pcb.h     |    1 +
 16 files changed, 132 insertions(+), 185 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5b9f6cc4be80527177ee4b19a289116490881da0


-- 
DragonFly BSD source repository





More information about the Commits mailing list