diff options
Diffstat (limited to 'include/asm-generic/siginfo.h')
| -rw-r--r-- | include/asm-generic/siginfo.h | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/include/asm-generic/siginfo.h b/include/asm-generic/siginfo.h index 5e5e3865f1e..8ed67779fc0 100644 --- a/include/asm-generic/siginfo.h +++ b/include/asm-generic/siginfo.h @@ -98,9 +98,18 @@ typedef struct siginfo {  			__ARCH_SI_BAND_T _band;	/* POLL_IN, POLL_OUT, POLL_MSG */  			int _fd;  		} _sigpoll; + +		/* SIGSYS */ +		struct { +			void __user *_call_addr; /* calling user insn */ +			int _syscall;	/* triggering system call number */ +			unsigned int _arch;	/* AUDIT_ARCH_* of syscall */ +		} _sigsys;  	} _sifields;  } __ARCH_SI_ATTRIBUTES siginfo_t; +/* If the arch shares siginfo, then it has SIGSYS. */ +#define __ARCH_SIGSYS  #endif  /* @@ -124,6 +133,11 @@ typedef struct siginfo {  #define si_addr_lsb	_sifields._sigfault._addr_lsb  #define si_band		_sifields._sigpoll._band  #define si_fd		_sifields._sigpoll._fd +#ifdef __ARCH_SIGSYS +#define si_call_addr	_sifields._sigsys._call_addr +#define si_syscall	_sifields._sigsys._syscall +#define si_arch		_sifields._sigsys._arch +#endif  #ifdef __KERNEL__  #define __SI_MASK	0xffff0000u @@ -134,6 +148,7 @@ typedef struct siginfo {  #define __SI_CHLD	(4 << 16)  #define __SI_RT		(5 << 16)  #define __SI_MESGQ	(6 << 16) +#define __SI_SYS	(7 << 16)  #define __SI_CODE(T,N)	((T) | ((N) & 0xffff))  #else  #define __SI_KILL	0 @@ -143,6 +158,7 @@ typedef struct siginfo {  #define __SI_CHLD	0  #define __SI_RT		0  #define __SI_MESGQ	0 +#define __SI_SYS	0  #define __SI_CODE(T,N)	(N)  #endif @@ -240,6 +256,12 @@ typedef struct siginfo {  #define NSIGPOLL	6  /* + * SIGSYS si_codes + */ +#define SYS_SECCOMP		(__SI_SYS|1)	/* seccomp triggered */ +#define NSIGSYS	1 + +/*   * sigevent definitions   *    * It seems likely that SIGEV_THREAD will have to be handled from   |