Commit f7a7b153 authored by Paul Mundt's avatar Paul Mundt

sh: Move in the SH-5 signal trampoline impl.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 76168c21
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
extra-y := head.o init_task.o vmlinux.lds extra-y := head.o init_task.o vmlinux.lds
obj-y := debugtraps.o io.o io_generic.o irq.o machvec.o process_32.o \ obj-y := debugtraps.o io.o io_generic.o irq.o machvec.o process_32.o \
ptrace_32.o semaphore.o setup.o signal.o sys_sh.o syscalls.o \ ptrace_32.o semaphore.o setup.o signal_32.o sys_sh.o syscalls.o \
time.o topology.o traps.o time.o topology.o traps.o
obj-y += cpu/ timers/ obj-y += cpu/ timers/
......
extra-y := head.o init_task.o vmlinux.lds extra-y := head.o init_task.o vmlinux.lds
obj-y := debugtraps.o io.o io_generic.o irq.o machvec.o process_64.o \ obj-y := debugtraps.o io.o io_generic.o irq.o machvec.o process_64.o \
ptrace_64.o semaphore.o setup.o signal.o sys_sh.o syscalls.o \ ptrace_64.o semaphore.o setup.o signal_64.o sys_sh.o syscalls.o \
time.o topology.o traps.o time.o topology.o traps.o
obj-y += cpu/ timers/ obj-y += cpu/ timers/
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include <asm/ucontext.h> #include <asm/ucontext.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/cacheflush.h>
#define REG_RET 9 #define REG_RET 9
#define REG_ARG1 2 #define REG_ARG1 2
...@@ -227,10 +227,14 @@ setup_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc) ...@@ -227,10 +227,14 @@ setup_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc)
#else #else
static inline int static inline int
restore_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc) restore_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc)
{} {
return 0;
}
static inline int static inline int
setup_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc) setup_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc)
{} {
return 0;
}
#endif #endif
static int static int
......
...@@ -4,6 +4,18 @@ ...@@ -4,6 +4,18 @@
struct sigcontext { struct sigcontext {
unsigned long oldmask; unsigned long oldmask;
#if defined(__SH5__) || defined(CONFIG_CPU_SH5)
/* CPU registers */
unsigned long long sc_regs[63];
unsigned long long sc_tregs[8];
unsigned long long sc_pc;
unsigned long long sc_sr;
/* FPU registers */
unsigned long long sc_fpregs[32];
unsigned int sc_fpscr;
unsigned int sc_fpvalid;
#else
/* CPU registers */ /* CPU registers */
unsigned long sc_regs[16]; unsigned long sc_regs[16];
unsigned long sc_pc; unsigned long sc_pc;
...@@ -21,6 +33,7 @@ struct sigcontext { ...@@ -21,6 +33,7 @@ struct sigcontext {
unsigned int sc_fpul; unsigned int sc_fpul;
unsigned int sc_ownedfp; unsigned int sc_ownedfp;
#endif #endif
#endif
}; };
#endif /* __ASM_SH_SIGCONTEXT_H */ #endif /* __ASM_SH_SIGCONTEXT_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment