Loading arch/mips/kernel/binfmt_elfo32.c +18 −13 Original line number Diff line number Diff line Loading @@ -98,7 +98,7 @@ struct elf_prpsinfo32 #define init_elf_binfmt init_elf32_binfmt #define jiffies_to_timeval jiffies_to_compat_timeval static __inline__ void static inline void jiffies_to_compat_timeval(unsigned long jiffies, struct compat_timeval *value) { /* Loading @@ -113,21 +113,26 @@ jiffies_to_compat_timeval(unsigned long jiffies, struct compat_timeval *value) #undef ELF_CORE_COPY_REGS #define ELF_CORE_COPY_REGS(_dest,_regs) elf32_core_copy_regs(_dest,_regs); void elf32_core_copy_regs(elf_gregset_t _dest, struct pt_regs *_regs) void elf32_core_copy_regs(elf_gregset_t grp, struct pt_regs *regs) { int i; memset(_dest, 0, sizeof(elf_gregset_t)); /* XXXKW the 6 is from EF_REG0 in gdb/gdb/mips-linux-tdep.c, include/asm-mips/reg.h */ for (i=6; i<38; i++) _dest[i] = (elf_greg_t) _regs->regs[i-6]; _dest[i++] = (elf_greg_t) _regs->lo; _dest[i++] = (elf_greg_t) _regs->hi; _dest[i++] = (elf_greg_t) _regs->cp0_epc; _dest[i++] = (elf_greg_t) _regs->cp0_badvaddr; _dest[i++] = (elf_greg_t) _regs->cp0_status; _dest[i++] = (elf_greg_t) _regs->cp0_cause; for (i = 0; i < EF_R0; i++) grp[i] = 0; grp[EF_R0] = 0; for (i = 1; i <= 31; i++) grp[EF_R0 + i] = (elf_greg_t) regs->regs[i]; grp[EF_R26] = 0; grp[EF_R27] = 0; grp[EF_LO] = (elf_greg_t) regs->lo; grp[EF_HI] = (elf_greg_t) regs->hi; grp[EF_CP0_EPC] = (elf_greg_t) regs->cp0_epc; grp[EF_CP0_BADVADDR] = (elf_greg_t) regs->cp0_badvaddr; grp[EF_CP0_STATUS] = (elf_greg_t) regs->cp0_status; grp[EF_CP0_CAUSE] = (elf_greg_t) regs->cp0_cause; #ifdef EF_UNUSED0 grp[EF_UNUSED0] = 0; #endif } MODULE_DESCRIPTION("Binary format loader for compatibility with o32 Linux/MIPS binaries"); Loading Loading
arch/mips/kernel/binfmt_elfo32.c +18 −13 Original line number Diff line number Diff line Loading @@ -98,7 +98,7 @@ struct elf_prpsinfo32 #define init_elf_binfmt init_elf32_binfmt #define jiffies_to_timeval jiffies_to_compat_timeval static __inline__ void static inline void jiffies_to_compat_timeval(unsigned long jiffies, struct compat_timeval *value) { /* Loading @@ -113,21 +113,26 @@ jiffies_to_compat_timeval(unsigned long jiffies, struct compat_timeval *value) #undef ELF_CORE_COPY_REGS #define ELF_CORE_COPY_REGS(_dest,_regs) elf32_core_copy_regs(_dest,_regs); void elf32_core_copy_regs(elf_gregset_t _dest, struct pt_regs *_regs) void elf32_core_copy_regs(elf_gregset_t grp, struct pt_regs *regs) { int i; memset(_dest, 0, sizeof(elf_gregset_t)); /* XXXKW the 6 is from EF_REG0 in gdb/gdb/mips-linux-tdep.c, include/asm-mips/reg.h */ for (i=6; i<38; i++) _dest[i] = (elf_greg_t) _regs->regs[i-6]; _dest[i++] = (elf_greg_t) _regs->lo; _dest[i++] = (elf_greg_t) _regs->hi; _dest[i++] = (elf_greg_t) _regs->cp0_epc; _dest[i++] = (elf_greg_t) _regs->cp0_badvaddr; _dest[i++] = (elf_greg_t) _regs->cp0_status; _dest[i++] = (elf_greg_t) _regs->cp0_cause; for (i = 0; i < EF_R0; i++) grp[i] = 0; grp[EF_R0] = 0; for (i = 1; i <= 31; i++) grp[EF_R0 + i] = (elf_greg_t) regs->regs[i]; grp[EF_R26] = 0; grp[EF_R27] = 0; grp[EF_LO] = (elf_greg_t) regs->lo; grp[EF_HI] = (elf_greg_t) regs->hi; grp[EF_CP0_EPC] = (elf_greg_t) regs->cp0_epc; grp[EF_CP0_BADVADDR] = (elf_greg_t) regs->cp0_badvaddr; grp[EF_CP0_STATUS] = (elf_greg_t) regs->cp0_status; grp[EF_CP0_CAUSE] = (elf_greg_t) regs->cp0_cause; #ifdef EF_UNUSED0 grp[EF_UNUSED0] = 0; #endif } MODULE_DESCRIPTION("Binary format loader for compatibility with o32 Linux/MIPS binaries"); Loading