]>
git.ipfire.org Git - thirdparty/systemd.git/blob - klibc/klibc/include/signal.h
8 #include <klibc/extern.h>
9 #include <string.h> /* For memset() */
10 #include <limits.h> /* For LONG_BIT */
11 #include <sys/types.h>
12 #include <asm/signal.h>
14 /* Some architectures don't define these */
16 # define SA_RESETHAND SA_ONESHOT
19 # define SA_NODEFER SA_NOMASK
25 typedef int sig_atomic_t;
27 __extern
const char * const sys_siglist
[];
29 /* This assumes sigset_t is either an unsigned long or an array of such,
30 and that _NSIG_BPW in the kernel is always LONG_BIT */
32 static __inline__
int sigemptyset(sigset_t
*__set
)
34 memset(__set
, 0, sizeof *__set
);
37 static __inline__
int sigfillset(sigset_t
*__set
)
39 memset(__set
, ~0, sizeof *__set
);
42 static __inline__
int sigaddset(sigset_t
*__set
, int __signum
)
44 unsigned long *__lset
= (unsigned long *)__set
;
45 __lset
[__signum
/LONG_BIT
] |= 1UL << (__signum
%LONG_BIT
);
48 static __inline__
int sigdelset(sigset_t
*__set
, int __signum
)
50 unsigned long *__lset
= (unsigned long *)__set
;
51 __lset
[__signum
/LONG_BIT
] &= ~(1UL << (__signum
%LONG_BIT
));
54 static __inline__
int sigismember(sigset_t
*__set
, int __signum
)
56 unsigned long *__lset
= (unsigned long *)__set
;
57 return (int)((__lset
[__signum
/LONG_BIT
] >> (__signum
%LONG_BIT
)) & 1);
60 __extern __sighandler_t
__signal(int, __sighandler_t
, int);
61 __extern __sighandler_t
signal(int, __sighandler_t
);
62 __extern __sighandler_t
bsd_signal(int, __sighandler_t
);
63 __extern
int sigaction(int, const struct sigaction
*, struct sigaction
*);
64 __extern
int sigprocmask(int, const sigset_t
*, sigset_t
*);
65 __extern
int sigpending(sigset_t
*);
66 __extern
int sigsuspend(const sigset_t
*);
67 __extern
int rt_sigaction(int, const struct sigaction
*, struct sigaction
*, size_t);
68 __extern
int rt_sigprocmask(int, const sigset_t
*, sigset_t
*, size_t);
69 __extern
int rt_sigpending(sigset_t
*, size_t);
70 __extern
int rt_sigsuspend(const sigset_t
*, size_t);
71 __extern
int raise(int);
72 __extern
int kill(pid_t
, int);
74 #endif /* _SIGNAL_H */