signal32.h (1980B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2012 ARM Ltd. 4 */ 5#ifndef __ASM_SIGNAL32_H 6#define __ASM_SIGNAL32_H 7 8#ifdef CONFIG_COMPAT 9#include <linux/compat.h> 10 11struct compat_sigcontext { 12 /* We always set these two fields to 0 */ 13 compat_ulong_t trap_no; 14 compat_ulong_t error_code; 15 16 compat_ulong_t oldmask; 17 compat_ulong_t arm_r0; 18 compat_ulong_t arm_r1; 19 compat_ulong_t arm_r2; 20 compat_ulong_t arm_r3; 21 compat_ulong_t arm_r4; 22 compat_ulong_t arm_r5; 23 compat_ulong_t arm_r6; 24 compat_ulong_t arm_r7; 25 compat_ulong_t arm_r8; 26 compat_ulong_t arm_r9; 27 compat_ulong_t arm_r10; 28 compat_ulong_t arm_fp; 29 compat_ulong_t arm_ip; 30 compat_ulong_t arm_sp; 31 compat_ulong_t arm_lr; 32 compat_ulong_t arm_pc; 33 compat_ulong_t arm_cpsr; 34 compat_ulong_t fault_address; 35}; 36 37struct compat_ucontext { 38 compat_ulong_t uc_flags; 39 compat_uptr_t uc_link; 40 compat_stack_t uc_stack; 41 struct compat_sigcontext uc_mcontext; 42 compat_sigset_t uc_sigmask; 43 int __unused[32 - (sizeof(compat_sigset_t) / sizeof(int))]; 44 compat_ulong_t uc_regspace[128] __attribute__((__aligned__(8))); 45}; 46 47struct compat_sigframe { 48 struct compat_ucontext uc; 49 compat_ulong_t retcode[2]; 50}; 51 52struct compat_rt_sigframe { 53 struct compat_siginfo info; 54 struct compat_sigframe sig; 55}; 56 57int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set, 58 struct pt_regs *regs); 59int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, 60 struct pt_regs *regs); 61 62void compat_setup_restart_syscall(struct pt_regs *regs); 63#else 64 65static inline int compat_setup_frame(int usid, struct ksignal *ksig, 66 sigset_t *set, struct pt_regs *regs) 67{ 68 return -ENOSYS; 69} 70 71static inline int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, 72 struct pt_regs *regs) 73{ 74 return -ENOSYS; 75} 76 77static inline void compat_setup_restart_syscall(struct pt_regs *regs) 78{ 79} 80#endif /* CONFIG_COMPAT */ 81#endif /* __ASM_SIGNAL32_H */