Hexagon: Add signal functions
PATCH v5 14/36 Hexagon: Add signal functions
Signed-off-by Richard Kuo <[email protected]>
Signed-off-by Linas Vepstas <[email protected]>
Acked-by Arnd Bergmann <[email protected]>
--- arch/hexagon/include/asm/sigcontext.h | 33 +++ arch/hexagon/include/asm/signal.h | 26 +++ arch/hexagon/include/asm/vdso.h | 31 +++ arch/hexagon/kernel/signal.c | 345 +++++++++++++++++++++++++++++++++ arch/hexagon/kernel/trampoline.S | 35 ++++ arch/hexagon/kernel/vdso.c | 101 ++++++++++ 6 files changed, 571 insertions(+), 0 deletions(-) create mode 100644 arch/hexagon/include/asm/sigcontext.h create mode 100644 arch/hexagon/include/asm/signal.h create mode 100644 arch/hexagon/include/asm/vdso.h create mode 100644 arch/hexagon/kernel/signal.c create mode 100644 arch/hexagon/kernel/trampoline.S create mode 100644 arch/hexagon/kernel/vdso.c
arch/hexagon/include/asm/sigcontext.h new file +33 -0
@@ -0,0 +1,33 @@ +/* +* Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +* 02110-1301, USA. +*/ + +#ifndef _ASM_SIGCONTEXT_H +#define _ASM_SIGCONTEXT_H + +#include <asm/user.h> + +/* +* Signal context structure - contains all info to do with the state +* before the signal handler was invoked. Note: only add new entries +* to the end of the structure. +*/ +struct sigcontext { +struct user_regs_struct sc_regs; +}__aligned(8) ; + +#endif
arch/hexagon/include/asm/signal.h new file +26 -0
@@ -0,0 +1,26 @@ +/* +* Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +* 02110-1301, USA. +*/ + +#ifndef _ASM_SIGNAL_H +#define _ASM_SIGNAL_H + +extern unsigned long __rt_sigtramp_template[2 ]; + +#include <asm-generic/signal.h> + +#endif
arch/hexagon/include/asm/vdso.h new file +31 -0
@@ -0,0 +1,31 @@ +/* +* vDSO implementation for Hexagon +* +* Copyright (c) 2011, Code Aurora Forum. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +* 02110-1301, USA. +*/ + +#ifndef __ASM_VDSO_H +#define __ASM_VDSO_H + +#include <linux/types.h> + +struct hexagon_vdso { +u32 rt_signal_trampoline[2 ]; +}; + +#endif /* __ASM_VDSO_H */ +
arch/hexagon/kernel/signal.c new file +345 -0
345 lines not on this page · raw message
arch/hexagon/kernel/trampoline.S new file +35 -0
@@ -0,0 +1,35 @@ +/* + * Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +/* + * Trampoline sequences to be copied onto user stack. + * This consumes a little more space than hand-assembling + * immediate constants for use in C, but is more portable + * to future tweaks to the Hexagon instruction set. + */ + +#include <asm/unistd.h> + +/* Sig trampolines - call sys_sigreturn or sys_rt_sigreturn as appropriate */ + +/* plain sigreturn is gone. */ + + .globl __rt_sigtramp_template +__rt_sigtramp_template: + r6 = #__NR_rt_sigreturn; + trap0(#1);
arch/hexagon/kernel/vdso.c new file +101 -0
101 lines not on this page · raw message
Signature · 7 lines
1.7.1 -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.