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