sh: Share the ELF dump_task interfaces.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 20 Nov 2007 06:48:39 +0000 (15:48 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 28 Jan 2008 04:18:49 +0000 (13:18 +0900)
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/Makefile_32
arch/sh/kernel/Makefile_64
arch/sh/kernel/dump_task.c [new file with mode: 0644]
arch/sh/kernel/process_32.c

index 5c7fa594d6d167cb57bbedd814cc640450112710..17216f5e7c93d2dd2810004658d779689d2f839d 100644 (file)
@@ -21,5 +21,6 @@ obj-$(CONFIG_KEXEC)           += machine_kexec.o relocate_kernel.o
 obj-$(CONFIG_CRASH_DUMP)       += crash_dump.o
 obj-$(CONFIG_PM)               += pm.o
 obj-$(CONFIG_STACKTRACE)       += stacktrace.o
+obj-$(CONFIG_BINFMT_ELF)       += dump_task.o
 
 EXTRA_CFLAGS += -Werror
index 585b6a11d3f6acc65b766c392ffd6a3248ebd952..1211e864ef12c9595011c7f94fb204783785f69d 100644 (file)
@@ -17,5 +17,6 @@ obj-$(CONFIG_KEXEC)           += machine_kexec.o relocate_kernel.o
 obj-$(CONFIG_CRASH_DUMP)       += crash_dump.o
 obj-$(CONFIG_PM)               += pm.o
 obj-$(CONFIG_STACKTRACE)       += stacktrace.o
+obj-$(CONFIG_BINFMT_ELF)       += dump_task.o
 
 EXTRA_CFLAGS += -Werror
diff --git a/arch/sh/kernel/dump_task.c b/arch/sh/kernel/dump_task.c
new file mode 100644 (file)
index 0000000..4a8a408
--- /dev/null
@@ -0,0 +1,31 @@
+#include <linux/elfcore.h>
+#include <linux/sched.h>
+
+/*
+ * Capture the user space registers if the task is not running (in user space)
+ */
+int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs)
+{
+       struct pt_regs ptregs;
+
+       ptregs = *task_pt_regs(tsk);
+       elf_core_copy_regs(regs, &ptregs);
+
+       return 1;
+}
+
+int dump_task_fpu(struct task_struct *tsk, elf_fpregset_t *fpu)
+{
+       int fpvalid = 0;
+
+#if defined(CONFIG_SH_FPU)
+       fpvalid = !!tsk_used_math(tsk);
+       if (fpvalid) {
+               unlazy_fpu(tsk, task_pt_regs(tsk));
+               memcpy(fpu, &tsk->thread.fpu.hard, sizeof(*fpu));
+       }
+#endif
+
+       return fpvalid;
+}
+
index 6d7f2b07e4917ee8ff7e25b7ca01bad63ff0f311..c9291f462311a5102a063b4732c9f3185234ca64 100644 (file)
@@ -230,34 +230,6 @@ int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu)
        return fpvalid;
 }
 
-/*
- * Capture the user space registers if the task is not running (in user space)
- */
-int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs)
-{
-       struct pt_regs ptregs;
-
-       ptregs = *task_pt_regs(tsk);
-       elf_core_copy_regs(regs, &ptregs);
-
-       return 1;
-}
-
-int dump_task_fpu(struct task_struct *tsk, elf_fpregset_t *fpu)
-{
-       int fpvalid = 0;
-
-#if defined(CONFIG_SH_FPU)
-       fpvalid = !!tsk_used_math(tsk);
-       if (fpvalid) {
-               unlazy_fpu(tsk, task_pt_regs(tsk));
-               memcpy(fpu, &tsk->thread.fpu.hard, sizeof(*fpu));
-       }
-#endif
-
-       return fpvalid;
-}
-
 asmlinkage void ret_from_fork(void);
 
 int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,