1*17228103Sryo /* $NetBSD: linux32_siginfo.h,v 1.2 2021/11/25 03:08:04 ryo Exp $ */ 2202e985bSchristos 3202e985bSchristos /*- 4202e985bSchristos * Copyright (c) 1998 The NetBSD Foundation, Inc. 5202e985bSchristos * All rights reserved. 6202e985bSchristos * 7202e985bSchristos * This code is derived from software contributed to The NetBSD Foundation 8202e985bSchristos * by Eric Haszlakiewicz. 9202e985bSchristos * 10202e985bSchristos * Redistribution and use in source and binary forms, with or without 11202e985bSchristos * modification, are permitted provided that the following conditions 12202e985bSchristos * are met: 13202e985bSchristos * 1. Redistributions of source code must retain the above copyright 14202e985bSchristos * notice, this list of conditions and the following disclaimer. 15202e985bSchristos * 2. Redistributions in binary form must reproduce the above copyright 16202e985bSchristos * notice, this list of conditions and the following disclaimer in the 17202e985bSchristos * documentation and/or other materials provided with the distribution. 18202e985bSchristos * 19202e985bSchristos * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20202e985bSchristos * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21202e985bSchristos * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22202e985bSchristos * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23202e985bSchristos * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24202e985bSchristos * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25202e985bSchristos * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26202e985bSchristos * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27202e985bSchristos * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28202e985bSchristos * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29202e985bSchristos * POSSIBILITY OF SUCH DAMAGE. 30202e985bSchristos */ 31202e985bSchristos 32202e985bSchristos #ifndef _LINUX32_SIGINFO_H 33202e985bSchristos #define _LINUX32_SIGINFO_H 34202e985bSchristos 35*17228103Sryo #if defined(__aarch64__) 36*17228103Sryo #include <compat/linux32/arch/aarch64/linux32_siginfo.h> 37*17228103Sryo #elif defined(__amd64__) 38202e985bSchristos #include <compat/linux32/arch/amd64/linux32_siginfo.h> 39*17228103Sryo #else 40*17228103Sryo #error Undefined linux32_siginfo.h machine type. 41202e985bSchristos #endif 42202e985bSchristos 43202e985bSchristos /* si_code values for non signal */ 44202e985bSchristos #define LINUX32_SI_USER 0 45202e985bSchristos #define LINUX32_SI_KERNEL 0x80 46202e985bSchristos #define LINUX32_SI_QUEUE -1 47202e985bSchristos #ifndef LINUX32_SI_TIMER /* all except mips */ 48202e985bSchristos #define LINUX32_SI_TIMER -2 49202e985bSchristos #define LINUX32_SI_MESGQ -3 50202e985bSchristos #define LINUX32_SI_ASYNCIO -4 51202e985bSchristos #endif /* LINUX32_SI_TIMER */ 52202e985bSchristos #define LINUX32_SI_SIGIO -5 53202e985bSchristos #define LINUX32_SI_TKILL -6 54202e985bSchristos #define LINUX32_SI_DETHREAD -7 55202e985bSchristos 56202e985bSchristos /* si_code values for SIGILL */ 57202e985bSchristos #define LINUX32_ILL_ILLOPC 1 58202e985bSchristos #define LINUX32_ILL_ILLOPN 2 59202e985bSchristos #define LINUX32_ILL_ILLADR 3 60202e985bSchristos #define LINUX32_ILL_ILLTRP 4 61202e985bSchristos #define LINUX32_ILL_PRVOPC 5 62202e985bSchristos #define LINUX32_ILL_PRVREG 6 63202e985bSchristos #define LINUX32_ILL_COPROC 7 64202e985bSchristos #define LINUX32_ILL_BADSTK 8 65202e985bSchristos 66202e985bSchristos /* si_code values for SIGFPE */ 67202e985bSchristos #define LINUX32_FPE_INTDIV 1 68202e985bSchristos #define LINUX32_FPE_INTOVF 2 69202e985bSchristos #define LINUX32_FPE_FLTDIV 3 70202e985bSchristos #define LINUX32_FPE_FLTOVF 4 71202e985bSchristos #define LINUX32_FPE_FLTUND 5 72202e985bSchristos #define LINUX32_FPE_FLTRES 6 73202e985bSchristos #define LINUX32_FPE_FLTINV 7 74202e985bSchristos #define LINUX32_FPE_FLTSUB 8 75202e985bSchristos 76202e985bSchristos /* si_code values for SIGSEGV */ 77202e985bSchristos #define LINUX32_SEGV_MAPERR 1 78202e985bSchristos #define LINUX32_SEGV_ACCERR 2 79202e985bSchristos 80202e985bSchristos /* si_code values for SIGBUS */ 81202e985bSchristos #define LINUX32_BUS_ADRALN 1 82202e985bSchristos #define LINUX32_BUS_ADRERR 2 83202e985bSchristos #define LINUX32_BUS_OBJERR 3 84202e985bSchristos 85202e985bSchristos /* si_code values for SIGTRAP */ 86202e985bSchristos #define LINUX32_TRAP_BRKPT 1 87202e985bSchristos #define LINUX32_TRAP_TRACE 2 88202e985bSchristos 89202e985bSchristos /* si_code values for SIGCHLD */ 90202e985bSchristos #define LINUX32_CLD_EXITED 1 91202e985bSchristos #define LINUX32_CLD_KILLED 2 92202e985bSchristos #define LINUX32_CLD_DUMPED 3 93202e985bSchristos #define LINUX32_CLD_TRAPPED 4 94202e985bSchristos #define LINUX32_CLD_STOPPED 5 95202e985bSchristos #define LINUX32_CLD_CONTINUED 6 96202e985bSchristos 97202e985bSchristos /* si_code values for SIGPOLL */ 98202e985bSchristos #define LINUX32_POLL_IN 1 99202e985bSchristos #define LINUX32_POLL_OUT 2 100202e985bSchristos #define LINUX32_POLL_MSG 3 101202e985bSchristos #define LINUX32_POLL_ERR 4 102202e985bSchristos #define LINUX32_POLL_PRI 5 103202e985bSchristos #define LINUX32_POLL_HUP 6 104202e985bSchristos 105202e985bSchristos #define LINUX32_SI_FROMUSER(sp) ((sp)->si_code <= 0) 106202e985bSchristos #define LINUX32_SI_FROMKERNEL(sp) ((sp)->si_code > 0) 107202e985bSchristos 108202e985bSchristos #define lsi_pid _sidata._kill._pid 109202e985bSchristos #define lsi_uid _sidata._kill._uid 110202e985bSchristos #define lsi_status _sidata._sigchld._status 111202e985bSchristos #define lsi_utime _sidata._sigchld._utime 112202e985bSchristos #define lsi_stime _sidata._sigchld._stime 113202e985bSchristos #define lsi_value _sidata._rt._sigval 114202e985bSchristos #define lsi_sival_int _sidata._rt._sigval.sival_int 115202e985bSchristos #define lsi_sival_ptr _sidata._rt._sigval.sival_ptr 116202e985bSchristos #define lsi_addr _sidata._sigfault._addr 117202e985bSchristos #define lsi_band _sidata._sigpoll._band 118202e985bSchristos #define lsi_fd _sidata._sigpoll._fd 119202e985bSchristos 120202e985bSchristos void native_to_linux32_siginfo(linux32_siginfo_t *, const struct _ksiginfo *); 121202e985bSchristos 122202e985bSchristos #endif /* !_LINUX32_SIGINFO_H */ 123