freebsd-src/sys
Martin Cracauer aff66c5455 Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more
than a review, this was a nice puzzle.

This is supposed to be binary and source compatible with older
applications that access the old FreeBSD-style three arguments to a
signal handler.

Except those applications that access hidden signal handler arguments
bejond the documented third one. If you have applications that do,
please let me know so that we take the opportunity to provide the
functionality they need in a documented manner.

Also except application that use 'struct sigframe' directly. You need
to recompile gdb and doscmd. `make world` is recommended.

Example program that demonstrates how SA_SIGINFO and old-style FreeBSD
handlers (with their three args) may be used in the same process is at
http://www3.cons.org/tmp/fbsd-siginfo.c

Programs that use the old FreeBSD-style three arguments are easy to
change to SA_SIGINFO (although they don't need to, since the old style
will still work):

  Old args to signal handler:
    void handler_sn(int sig, int code, struct sigcontext *scp)

  New args:
    void handler_si(int sig, siginfo_t *si, void *third)
  where:
    old:code == new:second->si_code
    old:scp == &(new:si->si_scp)     /* Passed by value! */

The latter is also pointed to by new:third, but accessing via
si->si_scp is preferred because it is type-save.

FreeBSD implementation notes:
- This is just the framework to make the interface POSIX compatible.
  For now, no additional functionality is provided. This is supposed
  to happen now, starting with floating point values.
- We don't use 'sigcontext_t.si_value' for now (POSIX meant it for
  realtime-related values).
- Documentation will be updated when new functionality is added and
  the exact arguments passed are determined. The comments in
  sys/signal.h are meant to be useful.

Reviewed by:	BDE
1999-07-06 07:13:48 +00:00
..
alpha Rename struct members sa_siginfo. POSIX reserves identifiers starting 1999-07-06 06:55:29 +00:00
amd64 Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more 1999-07-06 07:13:48 +00:00
boot Document the hw.physmem tunable. (There should be arch-specific tunable 1999-07-02 20:38:05 +00:00
cam suggestions from bde to clean up last checkin slighty 1999-07-06 01:40:03 +00:00
coda Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
compat Rename struct members sa_siginfo. POSIX reserves identifiers starting 1999-07-06 06:55:29 +00:00
compile
conf add another ISP option 1999-07-05 20:19:34 +00:00
contrib Update to latest version of PowerMACH Works from Olicom. 1999-07-05 17:47:50 +00:00
ddb Quiet warnings on Alpha. (db_expr_t is a long on alpha, int on x86) 1999-07-01 19:42:56 +00:00
dev add in (controlled by option) 2200 Expanded Lun F/W 1999-07-06 05:38:24 +00:00
fs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
geom Initialize and hold locks for ccd generated bufs.. 1999-06-27 09:28:43 +00:00
gnu Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
i4b devsw and cdevsw_add() changes for i4b. 1999-06-01 08:46:56 +00:00
i386 Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more 1999-07-06 07:13:48 +00:00
isa Remove cmaj and bmaj args from DEV_DRIVER_MODULE. 1999-07-04 14:58:56 +00:00
isofs/cd9660 Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
kern Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more 1999-07-06 07:13:48 +00:00
libkern Add a fast version of bcmp which compares longwords at a time. 1999-06-19 16:30:28 +00:00
miscfs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
modules Use the correct value for banksize so splash_pcx works in LFB modes. 1999-06-28 13:52:29 +00:00
msdosfs move <sys/systm.h> before <sys/buf.h> 1999-07-01 22:12:39 +00:00
net Fixed English errors, spelling errors and formatting errors in rev.1.51 1999-07-05 12:00:05 +00:00
netatalk
netatm Allow configuration of up to 256 network interfaces per physical interface - 1999-05-10 23:02:29 +00:00
netinet Use the new tunable macros for the net.inet.tcp.tcbhashsize tunable. 1999-07-05 08:46:55 +00:00
netipx
netkey
netnatm
netns
nfs Fix warning. va_fsid is udev_t, which is int32_t. No need to use %lx. 1999-07-01 13:32:54 +00:00
nfsclient Fix warning. va_fsid is udev_t, which is int32_t. No need to use %lx. 1999-07-01 13:32:54 +00:00
nfsserver Submitted by: "David E. Cross" <crossd@cs.rpi.edu> 1999-06-30 04:29:13 +00:00
ntfs Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
pc98 Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
pccard Eliminate a bunch of #include "pci.h" and #if NPCI > 0 around entire 1999-07-03 20:17:08 +00:00
pci add in a boot environment isp_disable flag 1999-07-06 01:24:20 +00:00
posix4
powerpc Add alpha_platform_setup_ide_intr() and alpha_platform_assign_pciintr() 1999-07-01 22:47:53 +00:00
rpc
svr4 Rename struct members sa_siginfo. POSIX reserves identifiers starting 1999-07-06 06:55:29 +00:00
sys Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more 1999-07-06 07:13:48 +00:00
tools Add a vnode argument to VOP_BWRITE to get rid of the last vnode 1999-06-16 23:27:55 +00:00
ufs Update pathnames for new location of soft-updates sources. 1999-07-03 21:34:05 +00:00
vm Reformat previous fix to remove an uglier than average goto. 1999-07-05 12:50:54 +00:00
Makefile Use MACHINE_ARCH instead of MACHINE to check x86 architecture. 1999-06-03 10:38:07 +00:00