Commit Graph

57 Commits

Author SHA1 Message Date
joerg
4cbe3e3436 Provide global variables with C linkage, otherwise they will create
conflicts for C++ modules use.
2019-01-08 17:35:42 +00:00
kre
486691905e Add the new signalname/signalnext/signalnumber interface to libc.
This as discussed on current-users in the thread
entitled:
  Proposal: new libc/libutil functions to map SIGXXXX <-> "XXXX"
that can be found (starting at):
  http://mail-index.netbsd.org/current-users/2017/04/28/msg031600.html

These functions provide the mechanism to enable applications
to divorce themselves from internal details of the signal
implementation.

Libc minor bumped, prototypes in <signal.h>, sets lists updated (and sorted).

One and all: feel free to improve the sources & man page (etc), but
please do not change the function signatures without discussion.
2017-05-09 11:14:16 +00:00
kamil
0c4bdb7434 Do as POSIX says, define the timespec structure in <signal.h>
Extract struct timespec from <sys/time.h> and put into a separate header.

This solution is minimally invasive.
2015-07-31 12:51:32 +00:00
christos
6a4804166f The signal number argument in psignal is int not unsigned int.
Add psiginfo.
2010-08-27 08:40:38 +00:00
joerg
44b309378f Define a new __c99inline macro for compilers known to implement the C99
behavior.  This unbreaks GCC 4.4's libgfortran build with the old
signal.h logic, because GCC decided to put the body for the sigsetop
functions in multiple objects.
2010-07-31 00:04:42 +00:00
plunky
c76d621ddd handle the difference between C99 and GNUC semantics of inline
functions with external linkage, by using "inline" for STDC and
"extern inline" for GNUC

(as noted by joerg@, using static inline may be clearer)
2010-05-04 09:07:11 +00:00
christos
50728e7823 merge christos-time_t 2009-01-11 02:57:17 +00:00
dholland
65900038ce Add a comment noting that the definition of __errno is now replicated in
signal.h. Per request of joerg@
2008-03-03 06:57:48 +00:00
dholland
933ac46844 signal.h is not supposed to define errno, so use ___errno instead.
Adjust errno.h in a compatible fashion to avoid -Wredundant-decls issues.
I have run a build to check the tree for places where errno.h is missing,
and fixed the cases I found, but there might be more in MD code.
2008-02-24 23:01:19 +00:00
kleink
5af00b0b39 pthread_sigmask(): Add restrict qualifier to set, oset args. 2006-01-07 20:10:29 +00:00
perry
e67ad767f5 inline -> __inline for selected things (specifically, the header
file is POSIX visible and the usage isn't #ifdef _KERNEL)

Discussed with core. I may need to go farther than this but for now
compilations done with gcc -ansi (i.e. firefox) will be okay.
2005-12-27 17:21:28 +00:00
perry
a2cd732268 Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 19:12:23 +00:00
drochner
ccaf4d6706 use __inline as before, otherwise "gcc -ansi" blows up 2005-09-15 13:44:41 +00:00
christos
66412e7240 compat code reorg 2005-09-13 01:44:32 +00:00
kleink
b9a719ae1e Add restrict qualifiers to remaining <signal.h> function arguments. 2005-03-22 20:25:31 +00:00
perry
19b7469a00 de-__P -- the hack is long since useless. Discussed with christos,
matt, kleink, others. Approved by christos.
2005-02-03 04:39:32 +00:00
drochner
e3842bbd8e Remove the remains of "struct sigcontext" and sigreturn() from the
user visible namespace.
These weren't supported interfaces for a while (it just happened to
work with COMPAT_16 kernels).
There are still internal uses in compat code and as jmp_buf format,
but this is all md code which uses <machine/signal.h>.
with christos' agreement
2005-01-20 20:42:05 +00:00
christos
0e466f4a8a Provide forward struct declarations for struct sigcontext*; this will allow
us to get rid of them in the machine/signal.h files.
2004-12-31 18:06:16 +00:00
nathanw
0eaa8971b7 Use CPP macros to cause many libpthread functions used by applications
to be transformed into the do-nothing-when-libpthread-isn't-linked libc
stub names. This will permit library code that uses <pthread.h> and pthread
functions "defensively" to not need to link against libpthread and not need
to be patched to the threadlib.h API.
2004-12-10 16:40:40 +00:00
kleink
7e47c9f64e Resolve some namespace protection confusion between XPG4.2 and 5/1003.1b,
making _XOPEN_SOURCE_EXTENDED work again.  Fixes PR lib/26077.
2004-07-01 23:46:07 +00:00
kleink
c3d77c559b Implement sigemptyset() and sigfillset() not as macros but as inline
functions, just like the rest of the sigsetops.  From J.T.Conklin
in PR lib/25627; originally prompted to work around problems with
an application but also fixing one important bug: per POSIX, these
functions may be additionally implemented as macros, iff they evaluate
their macros only once.  This was not the case.
2004-05-23 23:03:24 +00:00
christos
f2b01de1f8 don't put __libc_sigaction14 under __LIBC12_SOURCE__. It is wrong, because
then we have to define __LIBC12_SOURCE__ from __sigaction14_sigtramp.c and
that has the side effect of redefining struct sigaction to the old one.
2003-09-12 20:27:50 +00:00
christos
62da681012 s/COMPAT_16/__HAVE_SIGINFO/ pointed out by wiz. 2003-09-11 14:04:50 +00:00
christos
2232e7d76f sigreturn is not visible unless COMPAT_16 is enabled. 2003-09-11 13:12:52 +00:00
agc
039cc95684 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22270, verified by myself.
2003-08-07 09:44:09 +00:00
nathanw
1c5f5912e9 Synchronize the featuretest set for pthreads stuff to
_POSIX_C_SOURCE >= 199506L, _XOPEN_SOURCE >= 500, or _NETBSD_SOURCE.
2003-07-18 17:54:35 +00:00
thorpej
b65cdc9721 Back out previous; it is not correct. 2003-07-18 15:50:01 +00:00
lukem
f46e3353de for now, pull in <pthread_types.h> to get pthread_t for the
pthread_kill() prototype to work ...

this is probably not the correct long term solution, but the tree is
currently broken without it...
2003-07-18 08:53:42 +00:00
nathanw
86b9f2f3b1 Now that sys/types.h defines pthread_t, the forward structure
declaration for pthread_st isn't necessary (and is why I missed that
it was necessary before, as I already had the sys/types.h change in my
local tree).
2003-07-17 23:04:43 +00:00
bjh21
e3167f6ca1 Change !_ANSI_SOURCE to _POSIX_C_SOURCE || _XOPEN_SOURCE || _NETBSD_SOURCE. 2003-07-17 22:39:43 +00:00
martin
791508af9b Use a forward declaration equivalent to pthread_t instead of the
(undefined here) pthread_t.
2003-07-17 09:01:54 +00:00
nathanw
ffb042ea86 Give the pthread_kill() prototype here, as required. 2003-07-16 21:15:43 +00:00
bjh21
4be7a2dcf3 Add a new feature-test macro, _NETBSD_SOURCE. If this is defined
by the application, all NetBSD interfaces are made visible, even
if some other feature-test macro (like _POSIX_C_SOURCE) is defined.
<sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE,
_POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve
existing behaviour.

This has two major advantages:
+ Programs that require non-POSIX facilities but define _POSIX_C_SOURCE
  can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS.
+ It makes most of the #ifs simpler, in that they're all now ORs of the
  various macros, rather than having checks for (!defined(_ANSI_SOURCE) ||
  !defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.

I've tried not to change the semantics of the headers in any case where
_NETBSD_SOURCE wasn't defined, but there were some places where the
current semantics were clearly mad, and retaining them was harder than
correcting them.  In particular, I've mostly normalised things so that
_ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE,
_XOPEN_SOURCE and _NETBSD_SOURCE in that order.

Tested by building for vax, encouraged by thorpej, and uncontested in
tech-userlevel for a week.
2003-04-28 23:16:11 +00:00
jdolecek
af3d346a8c add POSIX sigtimedwait(), sigwaitinfo(), sigwait() - wait for queued signals
note these are for non-threaded programs only - libpthread will provide
it's own thread-aware wrapper
2003-02-15 21:11:47 +00:00
thorpej
c62a74e6d5 Merge the nathanw_sa branch. 2003-01-18 10:32:11 +00:00
kleink
30a90a73b4 Add sighold(3), sigignore(3), sigrelse(3) and sigset(3) to libc.
Fixes PR lib/19212, now redesignated standards/19212, from David Laight.
2003-01-15 23:55:41 +00:00
christos
d1969826ba protect against multiple declarations. This also fixes a problem where
the inline functions would compile differently depending on if errno.h
was included or not.
2000-12-18 21:21:26 +00:00
christos
03b9210133 Add /*LINTED*/ comments to sigfillset() and sigemptyset(). (void)sig*set(s);
produced warnings.
1998-12-09 12:50:47 +00:00
thorpej
82865be7fd Change the type of sys_siglist and sys_signame from const char *const [] to
const char *const *, and rename them to __sys_siglist14 and __sys_signame14.
This will prevent the size of the exported symbol from changing when more
signals are added to the list.
1998-11-30 20:36:27 +00:00
kleink
b3ce018f65 Rely on <sys/featuretest.h> defining _REENTRANT if appropriate. 1998-10-24 16:35:19 +00:00
kleink
e4ecd59b9a In the inlined sigset_t operations, redirect the error indicator assignment via
*__errno() when compiling _REENTRANT (or the like) code.
1998-10-01 19:41:23 +00:00
thorpej
2cb59aaa0b Declare the size of sys_siglist[] and sys_signame[] to be SIGUSR2+1
instead of _NSIG for now; we need to change these to char **'s, and do
a symbol renaming trick on them, eventually (a'la what Todd did with
libbfd's target match array).
1998-09-21 19:14:43 +00:00
thorpej
7dcac1e40c __LIBCxx_SOURCE__ refers to the library major number, not the NetBSD release
number.
1998-09-13 04:11:51 +00:00
mycroft
57387ec1ae Minor KNFing. 1998-09-12 11:10:43 +00:00
mycroft
43a24c4412 Do the syscall versioning. 1998-09-12 10:53:26 +00:00
kleink
c97ee76bc4 Reorganize name space protection, mostly related to interfaces introduced in
XPG 4.2.
1998-05-25 21:55:48 +00:00
kleink
5d7a8f4a16 Modify the recent sigaltstack() interface change to use the __RENAME() scheme;
add __sigaltstack14().
1997-11-29 18:38:20 +00:00
kleink
5abc2c37ce Update sigaltstack() to use stack_t parameters. 1997-11-26 16:51:12 +00:00
kleink
bb8dae3601 Move inclusion of <sys/types.h> before that of <sys/signal.h>. 1997-11-18 20:30:24 +00:00
jtc
2fb69ec781 Add prototype for sigaltstack; from John Kohl in PR #2129 1996-02-29 00:04:57 +00:00