|
@@ -2,6 +2,7 @@
|
|
|
#define _LINUX_SIGNAL_H
|
|
|
|
|
|
#include <linux/list.h>
|
|
|
+#include <linux/bug.h>
|
|
|
#include <uapi/linux/signal.h>
|
|
|
|
|
|
struct task_struct;
|
|
@@ -67,7 +68,6 @@ static inline int sigismember(sigset_t *set, int _sig)
|
|
|
|
|
|
static inline int sigisemptyset(sigset_t *set)
|
|
|
{
|
|
|
- extern void _NSIG_WORDS_is_unsupported_size(void);
|
|
|
switch (_NSIG_WORDS) {
|
|
|
case 4:
|
|
|
return (set->sig[3] | set->sig[2] |
|
|
@@ -77,7 +77,7 @@ static inline int sigisemptyset(sigset_t *set)
|
|
|
case 1:
|
|
|
return set->sig[0] == 0;
|
|
|
default:
|
|
|
- _NSIG_WORDS_is_unsupported_size();
|
|
|
+ BUILD_BUG();
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
@@ -90,24 +90,23 @@ static inline int sigisemptyset(sigset_t *set)
|
|
|
#define _SIG_SET_BINOP(name, op) \
|
|
|
static inline void name(sigset_t *r, const sigset_t *a, const sigset_t *b) \
|
|
|
{ \
|
|
|
- extern void _NSIG_WORDS_is_unsupported_size(void); \
|
|
|
unsigned long a0, a1, a2, a3, b0, b1, b2, b3; \
|
|
|
\
|
|
|
switch (_NSIG_WORDS) { \
|
|
|
- case 4: \
|
|
|
+ case 4: \
|
|
|
a3 = a->sig[3]; a2 = a->sig[2]; \
|
|
|
b3 = b->sig[3]; b2 = b->sig[2]; \
|
|
|
r->sig[3] = op(a3, b3); \
|
|
|
r->sig[2] = op(a2, b2); \
|
|
|
- case 2: \
|
|
|
+ case 2: \
|
|
|
a1 = a->sig[1]; b1 = b->sig[1]; \
|
|
|
r->sig[1] = op(a1, b1); \
|
|
|
- case 1: \
|
|
|
+ case 1: \
|
|
|
a0 = a->sig[0]; b0 = b->sig[0]; \
|
|
|
r->sig[0] = op(a0, b0); \
|
|
|
break; \
|
|
|
- default: \
|
|
|
- _NSIG_WORDS_is_unsupported_size(); \
|
|
|
+ default: \
|
|
|
+ BUILD_BUG(); \
|
|
|
} \
|
|
|
}
|
|
|
|
|
@@ -128,16 +127,14 @@ _SIG_SET_BINOP(sigandnsets, _sig_andn)
|
|
|
#define _SIG_SET_OP(name, op) \
|
|
|
static inline void name(sigset_t *set) \
|
|
|
{ \
|
|
|
- extern void _NSIG_WORDS_is_unsupported_size(void); \
|
|
|
- \
|
|
|
switch (_NSIG_WORDS) { \
|
|
|
- case 4: set->sig[3] = op(set->sig[3]); \
|
|
|
- set->sig[2] = op(set->sig[2]); \
|
|
|
- case 2: set->sig[1] = op(set->sig[1]); \
|
|
|
- case 1: set->sig[0] = op(set->sig[0]); \
|
|
|
+ case 4: set->sig[3] = op(set->sig[3]); \
|
|
|
+ set->sig[2] = op(set->sig[2]); \
|
|
|
+ case 2: set->sig[1] = op(set->sig[1]); \
|
|
|
+ case 1: set->sig[0] = op(set->sig[0]); \
|
|
|
break; \
|
|
|
- default: \
|
|
|
- _NSIG_WORDS_is_unsupported_size(); \
|
|
|
+ default: \
|
|
|
+ BUILD_BUG(); \
|
|
|
} \
|
|
|
}
|
|
|
|