History log of /freebsd-current/include/signal.h
Revision Date Author Comments
# 5a1d1441 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

include: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# 42b38843 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .h pattern

Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/


# 7dc859a5 11-Dec-2019 Kyle Evans <kevans@FreeBSD.org>

Add sigsetop extensions commonly found in musl libc and glibc

These functions (sigandset, sigisemptyset, sigorset) are commonly available
in at least musl libc and glibc; sigorset, at least, has proven quite useful
in qemu-bsd-user work for tracking the current process signal mask in a more
self-documenting/aesthetically pleasing manner.

Reviewed by: bapt, jilles, pfg
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D22187


# 2321c474 20-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

include: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.


# 649702c5 28-Jan-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

Make use of clang nullability attributes.

Replace uses of the GCC __nonnull__ attribute with the clang nullability
qualifiers. The replacement should be transparent for clang developers as
the new qualifiers will produce the same warnings and will be useful for
static checkers but will not cause aggressive optimizations.

GCC will not produce such warnings and developers will have to use
upgraded GCC ports built with the system headers from r312538.

Hinted by: Apple's Libc-1158.20.4, Bionic libc
MFC after: 11.1 Release

Differential Revision: https://reviews.freebsd.org/D9004


# f1b298ad 01-Jan-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

Remove some uses of the GCC __nonnull() attribute.

While the checks are considered useful, the attribute does dangerous
optimizations, removing NULL checks where they can be needed. Remove the
uses of this attribute introduced in r281130: the changes were inspired on
Google's bionic where this attribute is not used anymore.

The __nonnull() attribute will be deprecrated from our headers and
replaced with the Clang _Nonnull qualifier in the future.

MFC after: 3 days


# 0977bd1e 30-May-2016 Ed Schouten <ed@FreeBSD.org>

Fix the signature of the psignal() function.

POSIX 2008 added the psignal() function which has already been part of
the BSDs for a long time. The only difference is, the POSIX version uses
an 'int' for the signal number, unlike our version which uses an
'unsigned int'. Fix up the function to use an 'int'. This should not
affect the ABI.


# 2dd7d056 13-Feb-2016 Konstantin Belousov <kib@FreeBSD.org>

Hide ucontext_t and mcontext_t when neither POSIX nor XSI features are
enabled in the compilation environment, i.e. for ANSI C use of
#include <signal.h>.

Requested and reviewed by: bde
Sponsored by: The FreeBSD Foundation
MFC after: 13 days


# 90edf67e 12-Feb-2016 Konstantin Belousov <kib@FreeBSD.org>

POSIX states that #include <signal.h> shall make both mcontext_t and
ucontext_t available. Our code even has XXX comment about this.

Add a bit of compliance by moving struct __ucontext definition into
sys/_ucontext.h and including it into signal.h and sys/ucontext.h.

Several machine/ucontext.h headers were changed to use namespace-safe
types (like uint64_t->__uint64_t) to not depend on sys/types.h.
struct __stack_t from sys/signal.h is made always visible in private
namespace to satisfy sys/_ucontext.h requirements.

Apparently mips _types.h pollutes global namespace with f_register_t
type definition. This commit does not try to fix the issue.

PR: 207079
Reported and tested by: Ting-Wei Lan <lantw44@gmail.com>
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks


# 153cbcd6 05-Apr-2015 Pedro F. Giffuni <pfg@FreeBSD.org>

Make use of gcc attributes in some standard include headers.

The `nonnull' attribute specifies that some function parameters should be
non-null pointers. This is very useful as it helps the compiler generate
warnings on suspicious code and can also enable some small optimizations.

Also start using 'alloc_size' attribute in the allocator functions.

This is an initial step to better integrate our libc with the compiler:
these attributes are fully supported by clang and they are also useful
for the static analyzer.

Note that due to some bogus internal procedure in the way gcc ports
are built they may require updating if they were built before r280801.

Relnotes: yes
Hinted by: Android's bionic libc
Differential Revision: https://reviews.freebsd.org/D2107


# 28cdb3ee 25-Mar-2015 Pedro F. Giffuni <pfg@FreeBSD.org>

Temporarily revert 280458.

GCC is still carries an old version of cdefs.h which doesn't
accept multiple parameters for the nonnull attribute.

Since this issue probably affects many ports in the tree
we will revert it for now until gcc gets fixed.


# 512cd135 24-Mar-2015 Pedro F. Giffuni <pfg@FreeBSD.org>

Introduce nonnull attributes in the signal and pthread headers.

The `nonnull' attribute specifies that some function parameters should be
non-null pointers. This is very useful as it helps the compiler generate
warnings on suspicious code and can also enable some small optimizations.
In clang this is also useful for the static analyzer.

While we could go on defining this all over the tree, it only
makes sense to annotate a subset of critical functions.

Hinted by: Android's bionic libc
Differential Revision: https://reviews.freebsd.org/D2101


# 448f5f73 11-May-2014 Jilles Tjoelker <jilles@FreeBSD.org>

include: Remove checks for __BSD_VISIBLE where redundant with __XSI_VISIBLE
or __POSIX_VISIBLE.

Whenever <sys/cdefs.h> sets __BSD_VISIBLE to non-zero, it also sets
__POSIX_VISIBLE and __XSI_VISIBLE to the newest version supported.

No functional change is intended.


# f6ab8089 13-Dec-2011 Ed Schouten <ed@FreeBSD.org>

Replace __const by const in all non-contributed source code.

As C1X is close to being released, there is no need to wrap around a
feature that is already part of C90. Most of these files already use
`const' in different placed as well.


# ba13377a 20-Feb-2011 Konstantin Belousov <kib@FreeBSD.org>

Add restrict keyword to pthread_sigmask prototype and manpage.

MFC after: 1 week


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# f2556687 16-Feb-2010 Warner Losh <imp@FreeBSD.org>

Remove the Berkeley clause 3's.
Add a few $FreeBSD$


# f2d58a1d 31-Jan-2010 Konstantin Belousov <kib@FreeBSD.org>

MFC r199827:
Implement sighold, sigignore, sigpause, sigrelse, sigset functions.

MFC r200881 (by cognet):
Don't name parameters.


# 536fb659 22-Dec-2009 Olivier Houchard <cognet@FreeBSD.org>

Don't name parameters, for consistency with the rest of the file, and because
it breaks third-party apps.

Submitted by: gahr


# 9a6ceace 26-Nov-2009 Konstantin Belousov <kib@FreeBSD.org>

Implement sighold, sigignore, sigpause, sigrelse, sigset functions
from SUSv4 XSI. Note that the functions are obsoleted, and only
provided to ease porting from System V-like systems. Since sigpause
already exists in compat with different interface, XSI sigpause is
named xsi_sigpause.

Reviewed by: davidxu
MFC after: 3 weeks


# 1068c815 17-Apr-2009 David Schultz <das@FreeBSD.org>

Revert r190943, since the problem in ports seems to be fixed now.
It's amazing how a well-placed eyesore generates more motivation in a
day than email generates in three weeks.


# 84997ef7 11-Apr-2009 David Schultz <das@FreeBSD.org>

GNU Pth has some fragile kludges that were broken by r189828.
I've discussed this with the Pth maintainer and no clear solution
has emerged on the ports side of things, so for now, hack around
the issue in signal.h.


# 48a3f7d9 14-Mar-2009 David Schultz <das@FreeBSD.org>

Fix the visibility of several prototypes. Also move pthread_kill() and
pthread_sigmask() to signal.h. In principle, this shouldn't break anything,
since they're already in signal.h on other systems, and the FreeBSD
manpage says that both pthread.h and signal.h need to be included to
get these functions.

Add a hack to declare pthread_t in the P1003.1-2008 namespace
in signal.h.


# a5e88ed7 03-Mar-2009 David Schultz <das@FreeBSD.org>

Add psignal to the POSIX.1-2008 namespace.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# d2c8dd81 16-Oct-2005 David Xu <davidxu@FreeBSD.org>

Use __pid_t instead of pid_t for sigqueue as other functions.


# 05e72fac 14-Oct-2005 David Xu <davidxu@FreeBSD.org>

Add sigqueue function prototype.


# a447cd8b 31-Mar-2003 Jeff Roberson <jeff@FreeBSD.org>

- Define sigwait, sigtimedwait, and sigwaitinfo in terms of
kern_sigtimedwait() which is capable of supporting all of their semantics.
- These should be POSIX compliant but more careful review is needed before
we announce this.


# 0dfac89a 16-Oct-2002 Bruce Evans <bde@FreeBSD.org>

Fixed style bug near $FreeBSD$. VCS ids in copyrights should not be
separated by a blank line.


# ed583c28 14-Oct-2002 Mike Barcroft <mike@FreeBSD.org>

o Move forward declaration for struct timespec to a more appropriate
location.
o Don't prototype functions for which we don't have an implementation.
o Add forward declaration for struct __ucontext, previously this was
forward declared in <sys/signal.h>.
o Add a comment about the size of NSIG.

PR: 35924
Submitted by: bde


# 3357acdd 12-Oct-2002 Mike Barcroft <mike@FreeBSD.org>

Assume POSIX/XSI is always visible in the __BSD_VISIBLE case. Fix a
mix-up with siginterrupt().


# 54e4e385 12-Oct-2002 Mike Barcroft <mike@FreeBSD.org>

Add restrict type-qualifier.


# eb74223b 06-Oct-2002 Mike Barcroft <mike@FreeBSD.org>

o Use relatively new visibility primitives from <sys/cdefs.h>.
o Add typedef for pid_t.
o Add comment about missing restrict type-qualifier.
o Remove unneeded includes (<sys/_posix.h> and <sys/time.h>).


# e31d11c3 02-Oct-2002 Robert Drehmel <robert@FreeBSD.org>

Add the 'restrict' type qualifier to the prototypes of `sigaction',
`sigprocmask', `sigaltstack', and `sigwait' as well as to the
prototypes of the apparantly unimplemented functions `sigtimedwait'
and `sigwaitinfo'. This complies with IEEE Std 1003.1-2001.


# abbd8902 21-Aug-2002 Mike Barcroft <mike@FreeBSD.org>

o Merge <machine/ansi.h> and <machine/types.h> into a new header
called <machine/_types.h>.
o <machine/ansi.h> will continue to live so it can define MD clock
macros, which are only MD because of gratuitous differences between
architectures.
o Change all headers to make use of this. This mainly involves
changing:
#ifdef _BSD_FOO_T_
typedef _BSD_FOO_T_ foo_t;
#undef _BSD_FOO_T_
#endif
to:
#ifndef _FOO_T_DECLARED
typedef __foo_t foo_t;
#define _FOO_T_DECLARED
#endif

Concept by: bde
Reviewed by: jake, obrien


# bb28f3c2 23-Mar-2002 Warner Losh <imp@FreeBSD.org>

Breath deep and take __P out of the system include files.

# This appears to not break X11, but I'm having problems compiling the
# glide part of the server with or without this patch, so I can't tell
# for sure.


# 3445a5f0 17-Feb-2002 Daniel Eischen <deischen@FreeBSD.org>

Oops, forgot to commit this (s/ucontext_t/struct __ucontext/).


# 9102cd0a 02-Oct-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Remove the inline versions of sigaddset, sigdelset, sigemptyset,
sigfillset and sigismember.

Submitted by: bde


# 3cf3c5d9 29-Sep-1999 Marcel Moolenaar <marcel@FreeBSD.org>

sigset_t change (part 5 of 5)
-----------------------------

Most of the userland changes are in libc. For both the alpha
and the i386 setjmp has been changed to accomodate for the
new sigset_t. Internally, libc is mostly rewritten to use the
new syscalls. The exception is in compat-43/sigcompat.c

The POSIX thread library has also been rewritten to use the
new sigset_t. Except, that it currently only handles NSIG
signals instead of the maximum _SIG_MAXSIG. This should not
be a problem because current applications don't use any
signals higher than NSIG.

There are version bumps for the following libraries:
libdialog
libreadline
libc
libc_r
libedit
libftpio
libss

These libraries either a) have one of the modified structures
visible in the interface, or b) use sigset_t internally and
may cause breakage if new binaries are used against libraries
that don't have the sigset_t change. This not an immediate
issue, but will be as soon as applications start using the
new range to its fullest.

NOTE: libncurses already had an version bump and has not been
given one now.

NOTE: doscmd is a real casualty and has been disconnected for
the moment. Reconnection will eventually happen after
doscmd has been fixed. I'm aware that being the last one
to touch it, I'm automaticly promoted to being maintainer.
According to good taste this means that I will receive a
badge which either will be glued or mechanically stapled,
drilled or otherwise violently forced onto me :-)

NOTE: pcvt/vttest cannot be compiled with -traditional. The
change cause sys/types to be included along the way which
contains the const and volatile modifiers. I don't consider
this a solution, but more a workaround.


# 78121e79 17-May-1999 Peter Wemm <peter@FreeBSD.org>

Add a strsignal(3) (like strerror(3)) for libc compatability with other
systems. NetBSD, Linux, SVR4 etc all have it.


# 5520d464 25-Aug-1998 John Birrell <jb@FreeBSD.org>

Add the prototype for sigwait().


# c989e80e 05-Aug-1998 Doug Rabson <dfr@FreeBSD.org>

Move the include of <machine/ansi.h> to before <sys/signal.h>.


# d919f8a3 14-May-1998 Peter Wemm <peter@FreeBSD.org>

nuke signanosleep().


# 8a6472b7 28-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Finish _POSIX_PRIORITY_SCHEDULING. Needs P1003_1B and
_KPOSIX_PRIORITY_SCHEDULING options to work. Changes:

Change all "posix4" to "p1003_1b". Misnamed files are left
as "posix4" until I'm told if I can simply delete them and add
new ones;

Add _POSIX_PRIORITY_SCHEDULING system calls for FreeBSD and Linux;

Add man pages for _POSIX_PRIORITY_SCHEDULING system calls;

Add options to LINT;

Minor fixes to P1003_1B code during testing.


# 7a2ac24c 08-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Put sigevent and AIO_LISTIO_MAX back in aio.h so
that kernels can be built.


# aac4ad2c 08-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Reviewed by: bde

Changes to support building with _POSIX_SOURCE set to 199309L:

1. Add sys/_posix.h to handle those preprocessor defs that POSIX
says have effects when defined before including any header files;

2. Change POSIX4_VISIBLE back to _POSIX4_VISIBLE

3. Add _POSIX4_VISIBLE_HISTORICALLY for pre-existing BSD features now
defined in POSIX. These show up when:

_POSIX_SOURCE and _POSIX_C_SOURCE are not set or
_POSIX_C_SOURCE is set >= 199309L

and vanish when:

_POSIX_SOURCE is set or _POSIX_C_SOURCE is < 199309L.

4. Explain these in man 9 posix4;

5. Include _posix.h and conditionalize on new feature test.


# 917e476d 04-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Reviewed by: msmith, bde long ago
POSIX.4 headers and sysctl variables. Nothing should change
unless POSIX4 is defined or _POSIX_VERSION is set to 199309.


# 70c780fe 15-Jan-1998 Bruce Evans <bde@FreeBSD.org>

Added missing declaration of signanosleep().


# e862fa8c 27-Jun-1996 Sujal Patel <smpatel@FreeBSD.org>

Added missing prototype for sigaltstack()


# 943c1801 27-Jun-1995 Bruce Evans <bde@FreeBSD.org>

Fix standards conformance bugs in <signal.h>:

include/signal.h:
There was massive namespace pollution from including <sys/types.h>.
POSIX functions were declared even when _ANSI_SOURCE is defined.

sys.sys/signal.h:
NSIG was declared even if _ANSI_SOURCE or _POSIX_SOURCE is defined.
sig_atomic_t wasn't declared if _POSIX_SOURCE is defined.
Declare a typedef for signal handling functions and use it to
unobfuscate declarations and to avoid half-baked function types
that cause unwanted compiler warnings at certain warning levels.
Fix confusing comment about SA_RESTART.

sys/i386/include/signal.h:
This has to be included to get the declaration of sig_atomic_t even
when _ANSI_SOURCE is defined, so be more careful about polluting
the ANSI namespace.

Uniformize idempotency ifdefs.


# 59deaec5 24-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite Include Sources