diff options
author | David Daney <ddaney@caviumnetworks.com> | 2010-02-19 00:13:04 (GMT) |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2010-04-12 16:26:14 (GMT) |
commit | c52d0d30aef84aa8893b34e5254716c8ab5c4472 (patch) | |
tree | 0ba93eb7e305229ceb2ee04119dc7ab22b9fa33d /arch/mips/include/asm/vdso.h | |
parent | 58b9e2239fa63c7c470acb4a77e9da17e6a6fa4f (diff) | |
download | linux-fsl-qoriq-c52d0d30aef84aa8893b34e5254716c8ab5c4472.tar.xz |
MIPS: Preliminary VDSO
This is a preliminary patch to add a vdso to all user processes. Still
missing are ELF headers and .eh_frame information. But it is enough to
allow us to move signal trampolines off of the stack. Note that emulation
of branch delay slots in the FPU emulator still requires the stack.
We allocate a single page (the vdso) and write all possible signal
trampolines into it. The stack is moved down by one page and the vdso is
mapped into this space.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
To: linux-mips@linux-mips.org
Patchwork: http://patchwork.linux-mips.org/patch/975/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include/asm/vdso.h')
-rw-r--r-- | arch/mips/include/asm/vdso.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/mips/include/asm/vdso.h b/arch/mips/include/asm/vdso.h new file mode 100644 index 0000000..cca56aa --- /dev/null +++ b/arch/mips/include/asm/vdso.h @@ -0,0 +1,29 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 2009 Cavium Networks + */ + +#ifndef __ASM_VDSO_H +#define __ASM_VDSO_H + +#include <linux/types.h> + + +#ifdef CONFIG_32BIT +struct mips_vdso { + u32 signal_trampoline[2]; + u32 rt_signal_trampoline[2]; +}; +#else /* !CONFIG_32BIT */ +struct mips_vdso { + u32 o32_signal_trampoline[2]; + u32 o32_rt_signal_trampoline[2]; + u32 rt_signal_trampoline[2]; + u32 n32_rt_signal_trampoline[2]; +}; +#endif /* CONFIG_32BIT */ + +#endif /* __ASM_VDSO_H */ |