diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2023-12-02 02:20:17 +0100 |
---|---|---|
committer | Hans-Peter Nilsson <hp@bitrange.com> | 2023-12-06 18:46:49 +0100 |
commit | 3bafe2fae7a0878598a82777c623edb2faa70b74 (patch) | |
tree | c800b69ec4b2987bd526548f7ff2f3832ec6e5f7 /newlib/libc | |
parent | 7cce4cdd6e53abb1e89a871fc7511f0d8563d483 (diff) | |
download | newlib-3bafe2fae7a0878598a82777c623edb2faa70b74.zip newlib-3bafe2fae7a0878598a82777c623edb2faa70b74.tar.gz newlib-3bafe2fae7a0878598a82777c623edb2faa70b74.tar.bz2 |
newlib cris: Fix compilation warnings that recent gcc treats as errors
For the newlib part, warnings are all from lack of sync between
libc/machine/cris/sys/signal.h and libc/include/sys/signal.h. This
commit gets them sufficiently in sync again, functionality-wise and
declaration-wise. Still, nothing is declared that isn't supported at
the system level (i.e. in libgloss system calls and handled by the
CRIS simulator in the gdb project).
Diffstat (limited to 'newlib/libc')
-rw-r--r-- | newlib/libc/machine/cris/sys/signal.h | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/newlib/libc/machine/cris/sys/signal.h b/newlib/libc/machine/cris/sys/signal.h index 9cb7ba5..7b6f3fa 100644 --- a/newlib/libc/machine/cris/sys/signal.h +++ b/newlib/libc/machine/cris/sys/signal.h @@ -12,6 +12,8 @@ extern "C" { #endif #include "_ansi.h" +#include <sys/features.h> +#include <sys/types.h> typedef unsigned long sigset_t; @@ -32,21 +34,50 @@ struct sigaction { /* Adjusted to glibc; other values. */ #define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */ + +#if __POSIX_VISIBLE #define SIG_SETMASK 2 /* set mask with sigprocmask() */ #define SIG_BLOCK 0 /* set of signals to block */ #define SIG_UNBLOCK 1 /* set of signals to, well, unblock */ +int sigprocmask (int __how, const sigset_t *__a, sigset_t *__b); +#endif /* __POSIX_VISIBLE */ + +#ifdef _LIBC +int _kill (pid_t, int); +#endif + +#if __POSIX_VISIBLE + +int kill (pid_t, int); +int sigaddset (sigset_t *, const int); +int sigdelset (sigset_t *, const int); +int sigismember (const sigset_t *, int); +int sigfillset (sigset_t *); +int sigemptyset (sigset_t *); + /* These depend upon the type of sigset_t, which right now is always a long.. They're in the POSIX namespace, but are not ANSI. */ -#define sigaddset(what,sig) (*(what) |= (1<<(sig))) -#define sigemptyset(what) (*(what) = 0) +#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0) +#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0) +#define sigemptyset(what) (*(what) = 0, 0) +#define sigfillset(what) (*(what) = ~(0), 0) +#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0) -int sigprocmask (int __how, const sigset_t *__a, sigset_t *__b); +#endif /* __POSIX_VISIBLE */ + +/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */ +#if __MISC_VISIBLE + +/* POSIX Issue 8 adds sig2str() and str2sig() */ + +#define SIG2STR_MAX 17 /* (sizeof("RTMAX+") + sizeof("4294967295") - 1) */ + +int sig2str(int, char *); +int str2sig(const char *__restrict, int *__restrict); -/* The first argument is really a pid_t, but that's just a typedef'd - int, so let's avoid requiring sys/types only for this declaration. */ -int kill (int, int); +#endif /* __MISC_VISIBLE */ #define SIGHUP 1 #define SIGINT 2 |