1*55d5cc9dSnjoly /* $NetBSD: linux_siginfo.h,v 1.2 2009/06/08 11:46:07 njoly Exp $ */ 2*55d5cc9dSnjoly 3*55d5cc9dSnjoly /*- 4*55d5cc9dSnjoly * This code is derived from software contributed to The NetBSD Foundation 5*55d5cc9dSnjoly * by Eric Haszlakiewicz. 6*55d5cc9dSnjoly * 7*55d5cc9dSnjoly * Redistribution and use in source and binary forms, with or without 8*55d5cc9dSnjoly * modification, are permitted provided that the following conditions 9*55d5cc9dSnjoly * are met: 10*55d5cc9dSnjoly * 1. Redistributions of source code must retain the above copyright 11*55d5cc9dSnjoly * notice, this list of conditions and the following disclaimer. 12*55d5cc9dSnjoly * 2. Redistributions in binary form must reproduce the above copyright 13*55d5cc9dSnjoly * notice, this list of conditions and the following disclaimer in the 14*55d5cc9dSnjoly * documentation and/or other materials provided with the distribution. 15*55d5cc9dSnjoly * 16*55d5cc9dSnjoly * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 17*55d5cc9dSnjoly * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 18*55d5cc9dSnjoly * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19*55d5cc9dSnjoly * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 20*55d5cc9dSnjoly * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21*55d5cc9dSnjoly * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22*55d5cc9dSnjoly * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23*55d5cc9dSnjoly * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24*55d5cc9dSnjoly * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25*55d5cc9dSnjoly * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26*55d5cc9dSnjoly * POSSIBILITY OF SUCH DAMAGE. 27*55d5cc9dSnjoly */ 28*55d5cc9dSnjoly 29*55d5cc9dSnjoly #ifndef _ARM_LINUX_SIGINFO_H 30*55d5cc9dSnjoly #define _ARM_LINUX_SIGINFO_H 31*55d5cc9dSnjoly 32*55d5cc9dSnjoly typedef union linux_sigval { 33*55d5cc9dSnjoly int sival_int; 34*55d5cc9dSnjoly void *sival_ptr; 35*55d5cc9dSnjoly } linux_sigval_t; 36*55d5cc9dSnjoly 37*55d5cc9dSnjoly #define SI_MAX_SIZE 128 38*55d5cc9dSnjoly #define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int)) - 3) 39*55d5cc9dSnjoly 40*55d5cc9dSnjoly typedef struct linux_siginfo { 41*55d5cc9dSnjoly int lsi_signo; 42*55d5cc9dSnjoly int lsi_errno; 43*55d5cc9dSnjoly int lsi_code; 44*55d5cc9dSnjoly union { 45*55d5cc9dSnjoly int _pad[SI_PAD_SIZE]; 46*55d5cc9dSnjoly 47*55d5cc9dSnjoly /* kill() */ 48*55d5cc9dSnjoly struct { 49*55d5cc9dSnjoly linux_pid_t _pid; 50*55d5cc9dSnjoly linux_uid_t _uid; 51*55d5cc9dSnjoly } _kill; 52*55d5cc9dSnjoly 53*55d5cc9dSnjoly /* POSIX.1b signals */ 54*55d5cc9dSnjoly struct { 55*55d5cc9dSnjoly linux_pid_t _pid; 56*55d5cc9dSnjoly linux_uid_t _uid; 57*55d5cc9dSnjoly linux_sigval_t _sigval; 58*55d5cc9dSnjoly } _rt; 59*55d5cc9dSnjoly 60*55d5cc9dSnjoly /* POSIX.1b timers */ 61*55d5cc9dSnjoly struct { 62*55d5cc9dSnjoly unsigned int _timer1; 63*55d5cc9dSnjoly unsigned int _timer2; 64*55d5cc9dSnjoly } _timer; 65*55d5cc9dSnjoly 66*55d5cc9dSnjoly /* SIGCHLD */ 67*55d5cc9dSnjoly struct { 68*55d5cc9dSnjoly linux_pid_t _pid; 69*55d5cc9dSnjoly linux_uid_t _uid; 70*55d5cc9dSnjoly int _status; 71*55d5cc9dSnjoly linux_clock_t _utime; 72*55d5cc9dSnjoly linux_clock_t _stime; 73*55d5cc9dSnjoly } _sigchld; 74*55d5cc9dSnjoly 75*55d5cc9dSnjoly /* SIGPOLL */ 76*55d5cc9dSnjoly struct { 77*55d5cc9dSnjoly int _band; 78*55d5cc9dSnjoly int _fd; 79*55d5cc9dSnjoly } _sigpoll; 80*55d5cc9dSnjoly 81*55d5cc9dSnjoly /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ 82*55d5cc9dSnjoly struct { 83*55d5cc9dSnjoly void *_addr; 84*55d5cc9dSnjoly } _sigfault; 85*55d5cc9dSnjoly } _sidata; 86*55d5cc9dSnjoly } linux_siginfo_t; 87*55d5cc9dSnjoly 88*55d5cc9dSnjoly #endif /* !_ARM_LINUX_SIGINFO_H */ 89