127622b73SSascha Wildner /*- 227622b73SSascha Wildner * Copyright (c) 2019 The DragonFly Project. All rights reserved. 327622b73SSascha Wildner * 427622b73SSascha Wildner * Redistribution and use in source and binary forms, with or without 527622b73SSascha Wildner * modification, are permitted provided that the following conditions 627622b73SSascha Wildner * are met: 727622b73SSascha Wildner * 827622b73SSascha Wildner * 1. Redistributions of source code must retain the above copyright 927622b73SSascha Wildner * notice, this list of conditions and the following disclaimer. 1027622b73SSascha Wildner * 2. Redistributions in binary form must reproduce the above copyright 1127622b73SSascha Wildner * notice, this list of conditions and the following disclaimer in 1227622b73SSascha Wildner * the documentation and/or other materials provided with the 1327622b73SSascha Wildner * distribution. 1427622b73SSascha Wildner * 3. Neither the name of The DragonFly Project nor the names of its 1527622b73SSascha Wildner * contributors may be used to endorse or promote products derived 1627622b73SSascha Wildner * from this software without specific, prior written permission. 1727622b73SSascha Wildner * 1827622b73SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1927622b73SSascha Wildner * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2027622b73SSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 2127622b73SSascha Wildner * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 2227622b73SSascha Wildner * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 2327622b73SSascha Wildner * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 2427622b73SSascha Wildner * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 2527622b73SSascha Wildner * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 2627622b73SSascha Wildner * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 2727622b73SSascha Wildner * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 2827622b73SSascha Wildner * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2927622b73SSascha Wildner * SUCH DAMAGE. 3027622b73SSascha Wildner */ 3127622b73SSascha Wildner 3227622b73SSascha Wildner #ifndef _SYS__SIGINFO_H_ 3327622b73SSascha Wildner #define _SYS__SIGINFO_H_ 3427622b73SSascha Wildner 3527622b73SSascha Wildner #include <sys/cdefs.h> 36*33346040SSascha Wildner #include <machine/stdint.h> 3727622b73SSascha Wildner 3827622b73SSascha Wildner #ifndef _PID_T_DECLARED 3927622b73SSascha Wildner typedef __pid_t pid_t; 4027622b73SSascha Wildner #define _PID_T_DECLARED 4127622b73SSascha Wildner #endif 4227622b73SSascha Wildner 4327622b73SSascha Wildner #ifndef _UID_T_DECLARED 4427622b73SSascha Wildner typedef __uint32_t uid_t; /* user id */ 4527622b73SSascha Wildner #define _UID_T_DECLARED 4627622b73SSascha Wildner #endif 4727622b73SSascha Wildner 4827622b73SSascha Wildner #if __POSIX_VISIBLE >= 199309 || __XSI_VISIBLE >= 500 4927622b73SSascha Wildner union sigval { 5027622b73SSascha Wildner int sival_int; 5127622b73SSascha Wildner void *sival_ptr; 5227622b73SSascha Wildner }; 5327622b73SSascha Wildner #endif 5427622b73SSascha Wildner 5527622b73SSascha Wildner #if __POSIX_VISIBLE 5627622b73SSascha Wildner /** si_code */ 5727622b73SSascha Wildner #define SI_USER 0 /* Sent by kill(2) */ 5827622b73SSascha Wildner #define SI_QUEUE -1 /* Sent by the sigqueue(2) */ 5927622b73SSascha Wildner #define SI_TIMER -2 /* Generated by expiration of a timer */ 6027622b73SSascha Wildner /* set by timer_settime(2) */ 6127622b73SSascha Wildner #define SI_ASYNCIO -3 /* Generated by completion of an */ 6227622b73SSascha Wildner /* asynchronous I/O signal */ 6327622b73SSascha Wildner #define SI_MESGQ -4 /* Generated by arrival of a message on */ 6427622b73SSascha Wildner /* an empty message queue */ 6527622b73SSascha Wildner #endif 6627622b73SSascha Wildner 6727622b73SSascha Wildner #if __POSIX_VISIBLE >= 199309 || __XSI_VISIBLE 6827622b73SSascha Wildner /* 6927622b73SSascha Wildner * si_code stuff 7027622b73SSascha Wildner */ 7127622b73SSascha Wildner /* SIGILL */ 7227622b73SSascha Wildner #define ILL_ILLOPC 1 /* Illegal opcode */ 7327622b73SSascha Wildner #define ILL_ILLOPN 2 /* Illegal operand */ 7427622b73SSascha Wildner #define ILL_ILLADR 3 /* Illegal addressing mode */ 7527622b73SSascha Wildner #define ILL_ILLTRP 4 /* Illegal trap */ 7627622b73SSascha Wildner #define ILL_PRVOPC 5 /* Privileged opcode */ 7727622b73SSascha Wildner #define ILL_PRVREG 6 /* Privileged register */ 7827622b73SSascha Wildner #define ILL_COPROC 7 /* Coprocessor error */ 7927622b73SSascha Wildner #define ILL_BADSTK 8 /* Internal stack error */ 8027622b73SSascha Wildner 8127622b73SSascha Wildner /* SIGFPE */ 8227622b73SSascha Wildner #define FPE_INTOVF 1 /* Integer overflow */ 8327622b73SSascha Wildner #define FPE_INTDIV 2 /* Integer divide by zero */ 8427622b73SSascha Wildner #define FPE_FLTDIV 3 /* Floating point divide by zero */ 8527622b73SSascha Wildner #define FPE_FLTOVF 4 /* Floating point overflow */ 8627622b73SSascha Wildner #define FPE_FLTUND 5 /* Floating point underflow */ 8727622b73SSascha Wildner #define FPE_FLTRES 6 /* Floating point inexact result */ 8827622b73SSascha Wildner #define FPE_FLTINV 7 /* Invalid Floating point operation */ 8927622b73SSascha Wildner #define FPE_FLTSUB 8 /* Subscript out of range */ 9027622b73SSascha Wildner 9127622b73SSascha Wildner /* SIGSEGV */ 9227622b73SSascha Wildner #define SEGV_MAPERR 1 /* Address not mapped to object */ 9327622b73SSascha Wildner #define SEGV_ACCERR 2 /* Invalid permissions for mapped object*/ 9427622b73SSascha Wildner 9527622b73SSascha Wildner /* SIGBUS */ 9627622b73SSascha Wildner #define BUS_ADRALN 1 /* Invalid address alignment */ 9727622b73SSascha Wildner #define BUS_ADRERR 2 /* Non-existent physical address */ 9827622b73SSascha Wildner #define BUS_OBJERR 3 /* Object specific hardware error */ 9927622b73SSascha Wildner 10027622b73SSascha Wildner /* SIGTRAP */ 10127622b73SSascha Wildner #define TRAP_BRKPT 1 /* Process breakpoint */ 10227622b73SSascha Wildner #define TRAP_TRACE 2 /* Process trace trap */ 10327622b73SSascha Wildner 10427622b73SSascha Wildner /* SIGCHLD */ 10527622b73SSascha Wildner #define CLD_EXITED 1 /* Child has exited */ 10627622b73SSascha Wildner #define CLD_KILLED 2 /* Child has terminated abnormally but */ 10727622b73SSascha Wildner /* did not create a core file */ 10827622b73SSascha Wildner #define CLD_DUMPED 3 /* Child has terminated abnormally and */ 10927622b73SSascha Wildner /* created a core file */ 11027622b73SSascha Wildner #define CLD_TRAPPED 4 /* Traced child has trapped */ 11127622b73SSascha Wildner #define CLD_STOPPED 5 /* Child has stopped */ 11227622b73SSascha Wildner #define CLD_CONTINUED 6 /* Stopped child has continued */ 11327622b73SSascha Wildner 11427622b73SSascha Wildner /* SIGPOLL */ 11527622b73SSascha Wildner #define POLL_IN 1 /* Data input available */ 11627622b73SSascha Wildner #define POLL_OUT 2 /* Output buffers available */ 11727622b73SSascha Wildner #define POLL_MSG 3 /* Input message available */ 11827622b73SSascha Wildner #define POLL_ERR 4 /* I/O Error */ 11927622b73SSascha Wildner #define POLL_PRI 5 /* High priority input available */ 12027622b73SSascha Wildner #define POLL_HUP 6 /* Device disconnected */ 12127622b73SSascha Wildner 12227622b73SSascha Wildner typedef struct __siginfo { 12327622b73SSascha Wildner int si_signo; /* signal number */ 12427622b73SSascha Wildner int si_errno; /* errno association */ 12527622b73SSascha Wildner /* 12627622b73SSascha Wildner * Cause of signal, one of the SI_ macros or signal-specific 12727622b73SSascha Wildner * values, i.e. one of the FPE_... values for SIGFPE. This 12827622b73SSascha Wildner * value is equivalent to the second argument to an old-style 12927622b73SSascha Wildner * FreeBSD signal handler. 13027622b73SSascha Wildner */ 13127622b73SSascha Wildner int si_code; /* signal code */ 13227622b73SSascha Wildner pid_t si_pid; /* sending process */ 13327622b73SSascha Wildner uid_t si_uid; /* sender's ruid */ 13427622b73SSascha Wildner int si_status; /* exit value */ 13527622b73SSascha Wildner void *si_addr; /* faulting instruction */ 13627622b73SSascha Wildner union sigval si_value; /* signal value */ 13727622b73SSascha Wildner long si_band; /* band event for SIGPOLL */ 13827622b73SSascha Wildner int __spare__[7]; /* gimme some slack */ 13927622b73SSascha Wildner } siginfo_t; 14027622b73SSascha Wildner #endif /* __POSIX_VISIBLE >= 199309 || __XSI_VISIBLE */ 14127622b73SSascha Wildner 14227622b73SSascha Wildner #endif /* !_SYS__SIGINFO_H_ */ 143