Subject: CVS commit: src/sys
To: None <source-changes@NetBSD.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 10/08/2003 00:28:42
Module Name:	src
Committed By:	thorpej
Date:		Wed Oct  8 00:28:42 UTC 2003

Modified Files:
	src/sys/arch/alpha/alpha: compat_16_machdep.c trap.c
	src/sys/arch/amiga/amiga: trap.c
	src/sys/arch/arm/arm: sig_machdep.c syscall.c undefined.c
	src/sys/arch/arm/arm32: fault.c
	src/sys/arch/atari/atari: trap.c
	src/sys/arch/cesfic/cesfic: trap.c
	src/sys/arch/hp300/hp300: hpux_machdep.c trap.c
	src/sys/arch/i386/i386: compat_16_machdep.c freebsd_machdep.c
	    ibcs2_machdep.c linux_trap.c machdep.c math_emulate.c
	    svr4_machdep.c syscall.c trap.c vm86.c
	src/sys/arch/luna68k/luna68k: trap.c
	src/sys/arch/m68k/m68k: compat_16_machdep.c sig_machdep.c
	    sunos_machdep.c svr4_machdep.c
	src/sys/arch/mac68k/mac68k: trap.c
	src/sys/arch/mvme68k/mvme68k: trap.c
	src/sys/arch/news68k/news68k: trap.c
	src/sys/arch/next68k/next68k: trap.c
	src/sys/arch/powerpc/ibm4xx: trap.c
	src/sys/arch/powerpc/powerpc: sig_machdep.c trap.c
	src/sys/arch/sh5/sh5: sig_machdep.c trap.c
	src/sys/arch/sparc/sparc: machdep.c trap.c
	src/sys/arch/sun2/sun2: trap.c
	src/sys/arch/sun3/sun3: trap.c
	src/sys/arch/vax/vax: trap.c
	src/sys/arch/x68k/x68k: trap.c
	src/sys/kern: kern_ktrace.c kern_sig.c kern_time.c
	src/sys/sys: siginfo.h

Log Message:
* Shuffle some data structures so, and add a flags word to ksiginfo_t.
  Right now the only flag is used to indicate if a ksiginfo_t is a
  result of a trap.  Add a predicate macro to test for this flag.
* Add initialization macros for ksiginfo_t's.
* Add accssor macro for ksi_trap.  Expands to 0 if the ksiginfo_t was
  not the result of a trap.  This matches the sigcontext trapcode semantics.
* In kpsendsig(), use KSI_TRAP_P() to select the lwp that gets the signal.
  Inspired by Matthias Drochner's fix to kpsendsig(), but correctly handles
  the case of non-trap-generated signals that have a > 0 si_code.

This patch fixes a signal delivery problem with threaded programs noted by
Matthias Drochner on tech-kern.

As discussed on tech-kern.  Reviewed and OK's by Christos.


To generate a diff of this commit:
cvs rdiff -r1.1 -r1.2 src/sys/arch/alpha/alpha/compat_16_machdep.c
cvs rdiff -r1.85 -r1.86 src/sys/arch/alpha/alpha/trap.c
cvs rdiff -r1.95 -r1.96 src/sys/arch/amiga/amiga/trap.c
cvs rdiff -r1.21 -r1.22 src/sys/arch/arm/arm/sig_machdep.c
cvs rdiff -r1.19 -r1.20 src/sys/arch/arm/arm/syscall.c
cvs rdiff -r1.18 -r1.19 src/sys/arch/arm/arm/undefined.c
cvs rdiff -r1.34 -r1.35 src/sys/arch/arm/arm32/fault.c
cvs rdiff -r1.71 -r1.72 src/sys/arch/atari/atari/trap.c
cvs rdiff -r1.14 -r1.15 src/sys/arch/cesfic/cesfic/trap.c
cvs rdiff -r1.38 -r1.39 src/sys/arch/hp300/hp300/hpux_machdep.c
cvs rdiff -r1.103 -r1.104 src/sys/arch/hp300/hp300/trap.c
cvs rdiff -r1.4 -r1.5 src/sys/arch/i386/i386/compat_16_machdep.c
cvs rdiff -r1.40 -r1.41 src/sys/arch/i386/i386/freebsd_machdep.c
cvs rdiff -r1.26 -r1.27 src/sys/arch/i386/i386/ibcs2_machdep.c \
    src/sys/arch/i386/i386/math_emulate.c
cvs rdiff -r1.8 -r1.9 src/sys/arch/i386/i386/linux_trap.c
cvs rdiff -r1.539 -r1.540 src/sys/arch/i386/i386/machdep.c
cvs rdiff -r1.71 -r1.72 src/sys/arch/i386/i386/svr4_machdep.c
cvs rdiff -r1.23 -r1.24 src/sys/arch/i386/i386/syscall.c
cvs rdiff -r1.188 -r1.189 src/sys/arch/i386/i386/trap.c
cvs rdiff -r1.33 -r1.34 src/sys/arch/i386/i386/vm86.c
cvs rdiff -r1.25 -r1.26 src/sys/arch/luna68k/luna68k/trap.c
cvs rdiff -r1.2 -r1.3 src/sys/arch/m68k/m68k/compat_16_machdep.c
cvs rdiff -r1.23 -r1.24 src/sys/arch/m68k/m68k/sig_machdep.c
cvs rdiff -r1.26 -r1.27 src/sys/arch/m68k/m68k/sunos_machdep.c
cvs rdiff -r1.14 -r1.15 src/sys/arch/m68k/m68k/svr4_machdep.c
cvs rdiff -r1.106 -r1.107 src/sys/arch/mac68k/mac68k/trap.c
cvs rdiff -r1.69 -r1.70 src/sys/arch/mvme68k/mvme68k/trap.c
cvs rdiff -r1.31 -r1.32 src/sys/arch/news68k/news68k/trap.c
cvs rdiff -r1.45 -r1.46 src/sys/arch/next68k/next68k/trap.c
cvs rdiff -r1.18 -r1.19 src/sys/arch/powerpc/ibm4xx/trap.c
cvs rdiff -r1.17 -r1.18 src/sys/arch/powerpc/powerpc/sig_machdep.c
cvs rdiff -r1.89 -r1.90 src/sys/arch/powerpc/powerpc/trap.c
cvs rdiff -r1.17 -r1.18 src/sys/arch/sh5/sh5/sig_machdep.c
cvs rdiff -r1.28 -r1.29 src/sys/arch/sh5/sh5/trap.c
cvs rdiff -r1.234 -r1.235 src/sys/arch/sparc/sparc/machdep.c
cvs rdiff -r1.143 -r1.144 src/sys/arch/sparc/sparc/trap.c
cvs rdiff -r1.13 -r1.14 src/sys/arch/sun2/sun2/trap.c
cvs rdiff -r1.112 -r1.113 src/sys/arch/sun3/sun3/trap.c
cvs rdiff -r1.85 -r1.86 src/sys/arch/vax/vax/trap.c
cvs rdiff -r1.66 -r1.67 src/sys/arch/x68k/x68k/trap.c
cvs rdiff -r1.79 -r1.80 src/sys/kern/kern_ktrace.c
cvs rdiff -r1.165 -r1.166 src/sys/kern/kern_sig.c
cvs rdiff -r1.76 -r1.77 src/sys/kern/kern_time.c
cvs rdiff -r1.4 -r1.5 src/sys/sys/siginfo.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.