diff options
author | Jesper Juhl <juhl-lkml@dif.dk> | 2005-05-01 08:59:13 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-01 08:59:13 -0700 |
commit | e5bdd883a189243541e7a132385580703b049102 (patch) | |
tree | 6e56919829118d5aa6aa89991edaba764825fab2 | |
parent | 1c72d46d98e4eb16f1a1b38eba94cc3aa8022cfa (diff) | |
download | op-kernel-dev-e5bdd883a189243541e7a132385580703b049102.zip op-kernel-dev-e5bdd883a189243541e7a132385580703b049102.tar.gz |
[PATCH] new valid_signal() function
This patch adds a new function valid_signal() that tests if its argument is
a valid signal number.
The reasons for adding this new function are:
- some code currently testing _NSIG directly has off-by-one errors.
Using this function instead avoids such errors.
- some code currently tests unsigned signal numbers for <0 which is
pointless and generates warnings when building with gcc -W. Using this
function instead avoids such warnings.
I considered various places to add this function but eventually settled on
include/linux/signal.h as the most logical place for it. If there's some
reason this is a bad choice then please let me know (hints as to a better
location are then welcome of course).
Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | include/linux/signal.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/signal.h b/include/linux/signal.h index 78bfb26..0a98f5e 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -220,6 +220,12 @@ static inline void init_sigpending(struct sigpending *sig) INIT_LIST_HEAD(&sig->list); } +/* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */ +static inline int valid_signal(unsigned long sig) +{ + return sig <= _NSIG ? 1 : 0; +} + extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p); extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *); extern long do_sigpending(void __user *, unsigned long); |