Skip to content
Snippets Groups Projects
Select Git revision
  • 2823d4da5d8a0c222747b24eceb65f5b30717d02
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

signal.h

Blame
  • signal.h 2.19 KiB
    #ifndef _ASM_X86_SIGNAL_H
    #define _ASM_X86_SIGNAL_H
    
    #ifndef __ASSEMBLY__
    #include <linux/linkage.h>
    
    /* Most things should be clean enough to redefine this at will, if care
       is taken to make libc match.  */
    
    #define _NSIG		64
    
    #ifdef __i386__
    # define _NSIG_BPW	32
    #else
    # define _NSIG_BPW	64
    #endif
    
    #define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
    
    typedef unsigned long old_sigset_t;		/* at least 32 bits */
    
    typedef struct {
    	unsigned long sig[_NSIG_WORDS];
    } sigset_t;
    
    #ifndef CONFIG_COMPAT
    typedef sigset_t compat_sigset_t;
    #endif
    
    #endif /* __ASSEMBLY__ */
    #include <uapi/asm/signal.h>
    #ifndef __ASSEMBLY__
    extern void do_signal(struct pt_regs *regs);
    
    #define __ARCH_HAS_SA_RESTORER
    
    #include <uapi/asm/sigcontext.h>
    
    #ifdef __i386__
    
    #define __HAVE_ARCH_SIG_BITOPS
    
    #define sigaddset(set,sig)		    \
    	(__builtin_constant_p(sig)	    \
    	 ? __const_sigaddset((set), (sig))  \
    	 : __gen_sigaddset((set), (sig)))
    
    static inline void __gen_sigaddset(sigset_t *set, int _sig)
    {
    	asm("btsl %1,%0" : "+m"(*set) : "Ir"(_sig - 1) : "cc");
    }
    
    static inline void __const_sigaddset(sigset_t *set, int _sig)
    {
    	unsigned long sig = _sig - 1;
    	set->sig[sig / _NSIG_BPW] |= 1 << (sig % _NSIG_BPW);
    }
    
    #define sigdelset(set, sig)		    \
    	(__builtin_constant_p(sig)	    \
    	 ? __const_sigdelset((set), (sig))  \
    	 : __gen_sigdelset((set), (sig)))
    
    
    static inline void __gen_sigdelset(sigset_t *set, int _sig)
    {
    	asm("btrl %1,%0" : "+m"(*set) : "Ir"(_sig - 1) : "cc");
    }
    
    static inline void __const_sigdelset(sigset_t *set, int _sig)
    {
    	unsigned long sig = _sig - 1;
    	set->sig[sig / _NSIG_BPW] &= ~(1 << (sig % _NSIG_BPW));
    }
    
    static inline int __const_sigismember(sigset_t *set, int _sig)
    {
    	unsigned long sig = _sig - 1;
    	return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW));
    }
    
    static inline int __gen_sigismember(sigset_t *set, int _sig)
    {
    	unsigned char ret;
    	asm("btl %2,%1\n\tsetc %0"
    	    : "=qm"(ret) : "m"(*set), "Ir"(_sig-1) : "cc");
    	return ret;
    }
    
    #define sigismember(set, sig)			\
    	(__builtin_constant_p(sig)		\
    	 ? __const_sigismember((set), (sig))	\
    	 : __gen_sigismember((set), (sig)))
    
    struct pt_regs;
    
    #else /* __i386__ */
    
    #undef __HAVE_ARCH_SIG_BITOPS
    
    #endif /* !__i386__ */
    
    #endif /* __ASSEMBLY__ */
    #endif /* _ASM_X86_SIGNAL_H */