linux/arch/m68k/include/asm/signal.h
<<
>>
Prefs
   1#ifndef _M68K_SIGNAL_H
   2#define _M68K_SIGNAL_H
   3
   4#include <uapi/asm/signal.h>
   5
   6/* Most things should be clean enough to redefine this at will, if care
   7   is taken to make libc match.  */
   8
   9#define _NSIG           64
  10#define _NSIG_BPW       32
  11#define _NSIG_WORDS     (_NSIG / _NSIG_BPW)
  12
  13typedef unsigned long old_sigset_t;             /* at least 32 bits */
  14
  15typedef struct {
  16        unsigned long sig[_NSIG_WORDS];
  17} sigset_t;
  18
  19#define __ARCH_HAS_SA_RESTORER
  20
  21#include <asm/sigcontext.h>
  22
  23#ifndef CONFIG_CPU_HAS_NO_BITFIELDS
  24#define __HAVE_ARCH_SIG_BITOPS
  25
  26static inline void sigaddset(sigset_t *set, int _sig)
  27{
  28        asm ("bfset %0{%1,#1}"
  29                : "+o" (*set)
  30                : "id" ((_sig - 1) ^ 31)
  31                : "cc");
  32}
  33
  34static inline void sigdelset(sigset_t *set, int _sig)
  35{
  36        asm ("bfclr %0{%1,#1}"
  37                : "+o" (*set)
  38                : "id" ((_sig - 1) ^ 31)
  39                : "cc");
  40}
  41
  42static inline int __const_sigismember(sigset_t *set, int _sig)
  43{
  44        unsigned long sig = _sig - 1;
  45        return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW));
  46}
  47
  48static inline int __gen_sigismember(sigset_t *set, int _sig)
  49{
  50        int ret;
  51        asm ("bfextu %1{%2,#1},%0"
  52                : "=d" (ret)
  53                : "o" (*set), "id" ((_sig-1) ^ 31)
  54                : "cc");
  55        return ret;
  56}
  57
  58#define sigismember(set,sig)                    \
  59        (__builtin_constant_p(sig) ?            \
  60         __const_sigismember(set,sig) :         \
  61         __gen_sigismember(set,sig))
  62
  63#endif /* !CONFIG_CPU_HAS_NO_BITFIELDS */
  64
  65#ifndef __uClinux__
  66extern void ptrace_signal_deliver(void);
  67#define ptrace_signal_deliver ptrace_signal_deliver
  68#endif /* __uClinux__ */
  69
  70#endif /* _M68K_SIGNAL_H */
  71