1790baaccSWarner Losh /* 2790baaccSWarner Losh * i386 dependent signal definitions 3790baaccSWarner Losh * 4790baaccSWarner Losh * 5790baaccSWarner Losh * This program is free software; you can redistribute it and/or modify 6790baaccSWarner Losh * it under the terms of the GNU General Public License as published by 7790baaccSWarner Losh * the Free Software Foundation; either version 2 of the License, or 8790baaccSWarner Losh * (at your option) any later version. 9790baaccSWarner Losh * 10790baaccSWarner Losh * This program is distributed in the hope that it will be useful, 11790baaccSWarner Losh * but WITHOUT ANY WARRANTY; without even the implied warranty of 12790baaccSWarner Losh * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13790baaccSWarner Losh * GNU General Public License for more details. 14790baaccSWarner Losh * 15790baaccSWarner Losh * You should have received a copy of the GNU General Public License 16790baaccSWarner Losh * along with this program; if not, see <http://www.gnu.org/licenses/>. 17790baaccSWarner Losh */ 18790baaccSWarner Losh #ifndef TARGET_ARCH_SIGNAL_H 19790baaccSWarner Losh #define TARGET_ARCH_SIGNAL_H 20790baaccSWarner Losh 21790baaccSWarner Losh #include "cpu.h" 22790baaccSWarner Losh 23790baaccSWarner Losh /* Size of the signal trampolin code placed on the stack. */ 24790baaccSWarner Losh #define TARGET_SZSIGCODE 0 25790baaccSWarner Losh 26790baaccSWarner Losh /* compare to x86/include/_limits.h */ 27790baaccSWarner Losh #define TARGET_MINSIGSTKSZ (512 * 4) /* min sig stack size */ 28790baaccSWarner Losh #define TARGET_SIGSTKSZ (MINSIGSTKSZ + 32768) /* recommended size */ 29790baaccSWarner Losh 30790baaccSWarner Losh typedef struct target_mcontext { 31790baaccSWarner Losh } target_mcontext_t; 32790baaccSWarner Losh 33*c504713fSWarner Losh #include "target_os_ucontext.h" 34790baaccSWarner Losh 35790baaccSWarner Losh struct target_sigframe { 36790baaccSWarner Losh abi_ulong sf_signum; 37790baaccSWarner Losh abi_ulong sf_siginfo; /* code or pointer to sf_si */ 38790baaccSWarner Losh abi_ulong sf_ucontext; /* points to sf_uc */ 39790baaccSWarner Losh abi_ulong sf_addr; /* undocumented 4th arg */ 40790baaccSWarner Losh target_ucontext_t sf_uc; /* = *sf_uncontext */ 41790baaccSWarner Losh target_siginfo_t sf_si; /* = *sf_siginfo (SA_SIGINFO case)*/ 42790baaccSWarner Losh uint32_t __spare__[2]; 43790baaccSWarner Losh }; 44790baaccSWarner Losh 45790baaccSWarner Losh /* 46790baaccSWarner Losh * Compare to i386/i386/machdep.c sendsig() 47790baaccSWarner Losh * Assumes that target stack frame memory is locked. 48790baaccSWarner Losh */ 49790baaccSWarner Losh static inline abi_long set_sigtramp_args(CPUX86State *regs, 50790baaccSWarner Losh int sig, struct target_sigframe *frame, abi_ulong frame_addr, 51790baaccSWarner Losh struct target_sigaction *ka) 52790baaccSWarner Losh { 53790baaccSWarner Losh /* XXX return -TARGET_EOPNOTSUPP; */ 54790baaccSWarner Losh return 0; 55790baaccSWarner Losh } 56790baaccSWarner Losh 57790baaccSWarner Losh /* Compare to i386/i386/machdep.c get_mcontext() */ 58790baaccSWarner Losh static inline abi_long get_mcontext(CPUX86State *regs, 59790baaccSWarner Losh target_mcontext_t *mcp, int flags) 60790baaccSWarner Losh { 61790baaccSWarner Losh /* XXX */ 62790baaccSWarner Losh return -TARGET_EOPNOTSUPP; 63790baaccSWarner Losh } 64790baaccSWarner Losh 65790baaccSWarner Losh /* Compare to i386/i386/machdep.c set_mcontext() */ 66790baaccSWarner Losh static inline abi_long set_mcontext(CPUX86State *regs, 67790baaccSWarner Losh target_mcontext_t *mcp, int srflag) 68790baaccSWarner Losh { 69790baaccSWarner Losh /* XXX */ 70790baaccSWarner Losh return -TARGET_EOPNOTSUPP; 71790baaccSWarner Losh } 72790baaccSWarner Losh 73790baaccSWarner Losh static inline abi_long get_ucontext_sigreturn(CPUX86State *regs, 74790baaccSWarner Losh abi_ulong target_sf, abi_ulong *target_uc) 75790baaccSWarner Losh { 76790baaccSWarner Losh /* XXX */ 77790baaccSWarner Losh *target_uc = 0; 78790baaccSWarner Losh return -TARGET_EOPNOTSUPP; 79790baaccSWarner Losh } 80790baaccSWarner Losh 81790baaccSWarner Losh #endif /* TARGET_ARCH_SIGNAL_H */ 82