111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _ASM_GENERIC_SIGINFO_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _ASM_GENERIC_SIGINFO_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/compiler.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h> 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef union sigval { 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int sival_int; 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *sival_ptr; 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} sigval_t; 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __ARCH_SI_PREAMBLE_SIZE 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int)) 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_MAX_SIZE 128 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef SI_PAD_SIZE 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_PAD_SIZE ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int)) 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __ARCH_SI_UID_T 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __ARCH_SI_UID_T uid_t 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __ARCH_SI_BAND_T 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __ARCH_SI_BAND_T long 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef HAVE_ARCH_SIGINFO_T 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct siginfo { 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int si_signo; 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int si_errno; 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int si_code; 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int _pad[SI_PAD_SIZE]; 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert pid_t _pid; 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __ARCH_SI_UID_T _uid; 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _kill; 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert timer_t _tid; 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int _overrun; 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)]; 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert sigval_t _sigval; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int _sys_private; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _timer; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert pid_t _pid; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __ARCH_SI_UID_T _uid; 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert sigval_t _sigval; 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _rt; 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert pid_t _pid; 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __ARCH_SI_UID_T _uid; 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int _status; 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert clock_t _utime; 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert clock_t _stime; 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _sigchld; 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *_addr; 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __ARCH_SI_TRAPNO 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int _trapno; 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _sigfault; 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __ARCH_SI_BAND_T _band; 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int _fd; 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _sigpoll; 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _sifields; 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} siginfo_t; 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_pid _sifields._kill._pid 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_uid _sifields._kill._uid 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_tid _sifields._timer._tid 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_overrun _sifields._timer._overrun 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_sys_private _sifields._timer._sys_private 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_status _sifields._sigchld._status 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_utime _sifields._sigchld._utime 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_stime _sifields._sigchld._stime 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_value _sifields._rt._sigval 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_int _sifields._rt._sigval.sival_int 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_ptr _sifields._rt._sigval.sival_ptr 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_addr _sifields._sigfault._addr 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __ARCH_SI_TRAPNO 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_trapno _sifields._sigfault._trapno 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_band _sifields._sigpoll._band 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define si_fd _sifields._sigpoll._fd 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SI_KILL 0 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SI_TIMER 0 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SI_POLL 0 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SI_FAULT 0 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SI_CHLD 0 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SI_RT 0 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SI_MESGQ 0 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __SI_CODE(T,N) (N) 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_USER 0 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_KERNEL 0x80 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_QUEUE -1 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_TIMER __SI_CODE(__SI_TIMER,-2) 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3) 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_ASYNCIO -4 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_SIGIO -5 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_TKILL -6 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_DETHREAD -7 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_FROMUSER(siptr) ((siptr)->si_code <= 0) 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0) 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ILL_ILLOPC (__SI_FAULT|1) 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ILL_ILLOPN (__SI_FAULT|2) 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ILL_ILLADR (__SI_FAULT|3) 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ILL_ILLTRP (__SI_FAULT|4) 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ILL_PRVOPC (__SI_FAULT|5) 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ILL_PRVREG (__SI_FAULT|6) 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ILL_COPROC (__SI_FAULT|7) 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ILL_BADSTK (__SI_FAULT|8) 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NSIGILL 8 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPE_INTDIV (__SI_FAULT|1) 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPE_INTOVF (__SI_FAULT|2) 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPE_FLTDIV (__SI_FAULT|3) 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPE_FLTOVF (__SI_FAULT|4) 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPE_FLTUND (__SI_FAULT|5) 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPE_FLTRES (__SI_FAULT|6) 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPE_FLTINV (__SI_FAULT|7) 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPE_FLTSUB (__SI_FAULT|8) 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NSIGFPE 8 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEGV_MAPERR (__SI_FAULT|1) 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEGV_ACCERR (__SI_FAULT|2) 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NSIGSEGV 2 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BUS_ADRALN (__SI_FAULT|1) 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BUS_ADRERR (__SI_FAULT|2) 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BUS_OBJERR (__SI_FAULT|3) 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NSIGBUS 3 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TRAP_BRKPT (__SI_FAULT|1) 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TRAP_TRACE (__SI_FAULT|2) 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NSIGTRAP 2 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLD_EXITED (__SI_CHLD|1) 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLD_KILLED (__SI_CHLD|2) 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLD_DUMPED (__SI_CHLD|3) 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLD_TRAPPED (__SI_CHLD|4) 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLD_STOPPED (__SI_CHLD|5) 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLD_CONTINUED (__SI_CHLD|6) 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NSIGCHLD 6 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define POLL_IN (__SI_POLL|1) 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define POLL_OUT (__SI_POLL|2) 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define POLL_MSG (__SI_POLL|3) 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define POLL_ERR (__SI_POLL|4) 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define POLL_PRI (__SI_POLL|5) 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define POLL_HUP (__SI_POLL|6) 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NSIGPOLL 6 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SIGEV_SIGNAL 0 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SIGEV_NONE 1 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SIGEV_THREAD 2 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SIGEV_THREAD_ID 4 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __ARCH_SIGEV_PREAMBLE_SIZE 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t)) 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SIGEV_MAX_SIZE 64 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) / sizeof(int)) 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct sigevent { 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert sigval_t sigev_value; 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int sigev_signo; 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int sigev_notify; 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int _pad[SIGEV_PAD_SIZE]; 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int _tid; 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void (*_function)(sigval_t); 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *_attribute; 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _sigev_thread; 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } _sigev_un; 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} sigevent_t; 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define sigev_notify_function _sigev_un._sigev_thread._function 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define sigev_notify_attributes _sigev_un._sigev_thread._attribute 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define sigev_notify_thread_id _sigev_un._tid 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 214