Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2005 12:43:47 +0000 (UTC)
From:      David Xu <davidxu@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/alpha/alpha machdep.c trap.c src/sys/alpha/linux linux_sysvec.c src/sys/alpha/osf1 osf1_signal.c osf1_signal.h src/sys/amd64/amd64 machdep.c trap.c src/sys/amd64/ia32 ia32_signal.c ia32_syscall.c ...
Message-ID:  <200510141243.j9EChlE7045701@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
davidxu     2005-10-14 12:43:47 UTC

  FreeBSD src repository

  Modified files:
    sys/alpha/alpha      machdep.c trap.c 
    sys/alpha/linux      linux_sysvec.c 
    sys/alpha/osf1       osf1_signal.c osf1_signal.h 
    sys/amd64/amd64      machdep.c trap.c 
    sys/amd64/ia32       ia32_signal.c ia32_syscall.c 
    sys/amd64/linux32    linux32_sysvec.c 
    sys/arm/arm          machdep.c trap.c undefined.c 
    sys/compat/ia32      ia32_signal.h 
    sys/compat/linux     linux_misc.c 
    sys/compat/svr4      svr4_signal.h 
    sys/fs/procfs        procfs_ctl.c 
    sys/i386/i386        machdep.c trap.c 
    sys/i386/linux       linux_sysvec.c 
    sys/i386/svr4        svr4_machdep.c 
    sys/ia64/ia32        ia32_signal.c ia32_trap.c 
    sys/ia64/ia64        machdep.c trap.c 
    sys/kern             init_sysent.c kern_exec.c kern_exit.c 
                         kern_kse.c kern_sig.c kern_thr.c 
                         kern_thread.c subr_trap.c syscalls.master 
    sys/pc98/pc98        machdep.c 
    sys/powerpc/powerpc  machdep.c trap.c 
    sys/sparc64/sparc64  machdep.c trap.c 
    sys/sys              proc.h signalvar.h sysent.h 
  Log:
  1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most
     changes in MD code are trivial, before this change, trapsignal and
     sendsig use discrete parameters, now they uses member fields of
     ksiginfo_t structure. For sendsig, this change allows us to pass
     POSIX realtime signal value to user code.
  
  2. Remove cpu_thread_siginfo, it is no longer needed because we now always
     generate ksiginfo_t data and feed it to libpthread.
  
  3. Add p_sigqueue to proc structure to hold shared signals which were
     blocked by all threads in the proc.
  
  4. Add td_sigqueue to thread structure to hold all signals delivered to
     thread.
  
  5. i386 and amd64 now return POSIX standard si_code, other arches will
     be fixed.
  
  6. In this sigqueue implementation, pending signal set is kept as before,
     an extra siginfo list holds additional siginfo_t data for signals.
     kernel code uses psignal() still behavior as before, it won't be failed
     even under memory pressure, only exception is when deleting a signal,
     we should call sigqueue_delete to remove signal from sigqueue but
     not SIGDELSET. Current there is no kernel code will deliver a signal
     with additional data, so kernel should be as stable as before,
     a ksiginfo can carry more information, for example, allow signal to
     be delivered but throw away siginfo data if memory is not enough.
     SIGKILL and SIGSTOP have fast path in sigqueue_add, because they can
     not be caught or masked.
     The sigqueue() syscall allows user code to queue a signal to target
     process, if resource is unavailable, EAGAIN will be returned as
     specification said.
     Just before thread exits, signal queue memory will be freed by
     sigqueue_flush.
     Current, all signals are allowed to be queued, not only realtime signals.
  
  Earlier patch reviewed by: jhb, deischen
  Tested on: i386, amd64
  
  Revision  Changes    Path
  1.236     +22 -34    src/sys/alpha/alpha/machdep.c
  1.126     +7 -1      src/sys/alpha/alpha/trap.c
  1.96      +1 -1      src/sys/alpha/linux/linux_sysvec.c
  1.43      +6 -2      src/sys/alpha/osf1/osf1_signal.c
  1.4       +1 -1      src/sys/alpha/osf1/osf1_signal.h
  1.641     +15 -33    src/sys/amd64/amd64/machdep.c
  1.295     +40 -8     src/sys/amd64/amd64/trap.c
  1.12      +48 -14    src/sys/amd64/ia32/ia32_signal.c
  1.9       +6 -1      src/sys/amd64/ia32/ia32_syscall.c
  1.10      +27 -9     src/sys/amd64/linux32/linux32_sysvec.c
  1.18      +7 -16     src/sys/arm/arm/machdep.c
  1.18      +7 -3      src/sys/arm/arm/trap.c
  1.9       +18 -3     src/sys/arm/arm/undefined.c
  1.8       +3 -1      src/sys/compat/ia32/ia32_signal.h
  1.171     +1 -1      src/sys/compat/linux/linux_misc.c
  1.12      +3 -1      src/sys/compat/svr4/svr4_signal.h
  1.54      +1 -1      src/sys/fs/procfs/procfs_ctl.c
  1.618     +66 -62    src/sys/i386/i386/machdep.c
  1.282     +41 -12    src/sys/i386/i386/trap.c
  1.139     +26 -10    src/sys/i386/linux/linux_sysvec.c
  1.36      +6 -3      src/sys/i386/svr4/svr4_machdep.c
  1.10      +2 -2      src/sys/ia64/ia32/ia32_signal.c
  1.6       +12 -2     src/sys/ia64/ia32/ia32_trap.c
  1.203     +10 -21    src/sys/ia64/ia64/machdep.c
  1.116     +5 -1      src/sys/ia64/ia64/trap.c
  1.198     +1 -0      src/sys/kern/init_sysent.c
  1.280     +1 -1      src/sys/kern/kern_exec.c
  1.266     +2 -2      src/sys/kern/kern_exit.c
  1.219     +9 -8      src/sys/kern/kern_kse.c
  1.307     +502 -171  src/sys/kern/kern_sig.c
  1.35      +2 -1      src/sys/kern/kern_thr.c
  1.218     +7 -0      src/sys/kern/kern_thread.c
  1.282     +5 -1      src/sys/kern/subr_trap.c
  1.200     +1 -1      src/sys/kern/syscalls.master
  1.366     +47 -17    src/sys/pc98/pc98/machdep.c
  1.91      +7 -22     src/sys/powerpc/powerpc/machdep.c
  1.56      +7 -1      src/sys/powerpc/powerpc/trap.c
  1.126     +7 -23     src/sys/sparc64/sparc64/machdep.c
  1.75      +7 -1      src/sys/sparc64/sparc64/trap.c
  1.437     +7 -4      src/sys/sys/proc.h
  1.70      +27 -3     src/sys/sys/signalvar.h
  1.46      +3 -2      src/sys/sys/sysent.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510141243.j9EChlE7045701>