1234567891011121314151617181920212223242526272829303132 |
- #include <linux/elfcore.h>
- #include <linux/sched.h>
- #include <asm/fpu.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;
- }
|