freebsd kernel with SKQ
Go to file
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
bin Improved error handling in rev.1.18: don't ignore failure of execve(). 1999-07-04 15:42:04 +00:00
contrib Fixed style bugs in FreeBSD changes. KNF style doesn't apply to gnu 1999-07-04 15:46:44 +00:00
crypto Merge from non-crypto version: 1999-06-17 09:24:37 +00:00
etc Add support for the 'ida' driver. 1999-07-05 09:18:57 +00:00
games add support to buildworld as a normal user: 1999-06-24 22:50:24 +00:00
gnu Respect the NOFSCHG variable. Add an $Id$ while I'm here, for whatever 1999-07-05 02:46:20 +00:00
include Allow fpsetmask(3) and friends to be used from a C++ program on the Alpha. 1999-06-22 17:08:25 +00:00
kerberos5 Link everything against libcrypt. ELF builds complain without it. 1999-01-25 06:49:43 +00:00
kerberosIV Link everything against libcrypt. ELF builds complain without it. 1999-01-25 06:49:43 +00:00
lib Make the new %Z addition thread-safe. 1999-07-06 05:05:39 +00:00
libexec Shake hands with GDB a little bit earlier so that it is possible to 1999-07-03 23:54:02 +00:00
release My last modification for PC-card boot.flp was incomplete, and one more patch 1999-07-05 07:15:42 +00:00
sbin "Cannot" is one word. "Can not" has a different meaning if taken 1999-07-05 18:12:13 +00:00
secure Typo in comment. 1999-04-25 13:14:36 +00:00
share Clarify static_routes variable's meaning 1999-07-05 23:05:25 +00:00
sys Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more 1999-07-06 07:13:48 +00:00
tools Move the proper set of libraries. 1999-04-05 21:41:56 +00:00
usr.bin Clean up some ambiguous nested if/elses. 1999-07-04 17:26:16 +00:00
usr.sbin Make the source and the man page agree about the flags accepted by 1999-07-05 23:06:33 +00:00
COPYRIGHT Add Id keyword 1998-09-13 23:11:13 +00:00
Makefile Change !defined(NOAOUT) knob to defined(WANT_AOUT). 1999-03-29 10:59:53 +00:00
Makefile.inc0 fix (non destructive) braino to do with quoting in makefiles. 1999-06-06 20:21:27 +00:00
Makefile.inc1 ${.CURDIR} doesn't have to be /usr/src, especially in a cvs checkout. Make 1999-06-04 17:34:28 +00:00
Makefile.upgrade Set X11BASE to something deliberately bogus in elf_buildworld so that 1999-03-23 08:09:25 +00:00
README No more src/lkm dir... 1999-01-06 14:02:35 +00:00
UPDATING Latest updating changes for softupdates, inetd and newsysconfig. 1999-07-03 22:15:43 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on: $Id: README,v 1.13 1998/09/13 09:38:34 markm Exp $

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel and the contents of /etc.  Please see the top of the Makefile
in this directory for more information on the standard build targets
and compile-time flags.

Building a kernel with config(8) is a somewhat more involved process,
documentation for which can be found at:
   http://www.freebsd.org/handbook/kernelconfig.html
And in the config(8) man page.

The sample kernel configuration files reside in the sys/i386/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file LINT contains entries for all possible devices, not
just those commonly used, and is meant more as a general reference
than an actual kernel configuration file (a kernel built from it
wouldn't even run).


Source Roadmap:
---------------
bin		System/User commands.

contrib		Packages contributed by 3rd parties.

crypto		Export controlled stuff (see crypto/README).

etc		Template files for /etc

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberosIV	Kerberos package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		DES and DES-related utilities - NOT FOR EXPORT!

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/handbook/synching.html