1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * This file provides both A32 and T32 versions, in accordance with the 4 * arm sigreturn code. 5 * 6 * Copyright (C) 2018 ARM Limited 7 */ 8 9#include <linux/linkage.h> 10#include <asm/asm-offsets.h> 11#include <asm/unistd.h> 12 13#define ARM_ENTRY(name) \ 14 ENTRY(name) 15 16#define ARM_ENDPROC(name) \ 17 .type name, %function; \ 18 END(name) 19 20 .text 21 22 .arm 23 .fnstart 24 .save {r0-r15} 25 .pad #COMPAT_SIGFRAME_REGS_OFFSET 26 nop 27ARM_ENTRY(__kernel_sigreturn_arm) 28 mov r7, #__NR_compat_sigreturn 29 svc #0 30 .fnend 31ARM_ENDPROC(__kernel_sigreturn_arm) 32 33 .fnstart 34 .save {r0-r15} 35 .pad #COMPAT_RT_SIGFRAME_REGS_OFFSET 36 nop 37ARM_ENTRY(__kernel_rt_sigreturn_arm) 38 mov r7, #__NR_compat_rt_sigreturn 39 svc #0 40 .fnend 41ARM_ENDPROC(__kernel_rt_sigreturn_arm) 42 43 .thumb 44 .fnstart 45 .save {r0-r15} 46 .pad #COMPAT_SIGFRAME_REGS_OFFSET 47 nop 48ARM_ENTRY(__kernel_sigreturn_thumb) 49 mov r7, #__NR_compat_sigreturn 50 svc #0 51 .fnend 52ARM_ENDPROC(__kernel_sigreturn_thumb) 53 54 .fnstart 55 .save {r0-r15} 56 .pad #COMPAT_RT_SIGFRAME_REGS_OFFSET 57 nop 58ARM_ENTRY(__kernel_rt_sigreturn_thumb) 59 mov r7, #__NR_compat_rt_sigreturn 60 svc #0 61 .fnend 62ARM_ENDPROC(__kernel_rt_sigreturn_thumb) 63