X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-mips%2Felf.h;h=7b92c8045cc24593c513445498466a85e5d00382;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=aad1db9e170e45008d35d4a7be9465ba6c422870;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/asm-mips/elf.h b/include/asm-mips/elf.h index aad1db9e1..7b92c8045 100644 --- a/include/asm-mips/elf.h +++ b/include/asm-mips/elf.h @@ -23,7 +23,8 @@ #define EF_MIPS_ABI_O64 0x00002000 /* O32 extended for 64 bit. */ #define PT_MIPS_REGINFO 0x70000000 -#define PT_MIPS_OPTIONS 0x70000001 +#define PT_MIPS_RTPROC 0x70000001 +#define PT_MIPS_OPTIONS 0x70000002 /* Flags in the e_flags field of the header */ #define EF_MIPS_NOREORDER 0x00000001 @@ -40,9 +41,10 @@ #define DT_MIPS_ICHECKSUM 0x70000003 #define DT_MIPS_IVERSION 0x70000004 #define DT_MIPS_FLAGS 0x70000005 - #define RHF_NONE 0 - #define RHF_HARDWAY 1 - #define RHF_NOTPOT 2 + #define RHF_NONE 0x00000000 + #define RHF_HARDWAY 0x00000001 + #define RHF_NOTPOT 0x00000002 + #define RHF_SGI_ONLY 0x00000010 #define DT_MIPS_BASE_ADDRESS 0x70000006 #define DT_MIPS_CONFLICT 0x70000008 #define DT_MIPS_LIBLIST 0x70000009 @@ -222,18 +224,22 @@ do { current->thread.mflags &= ~MF_ABI_MASK; \ #endif /* CONFIG_MIPS64 */ +extern void dump_regs(elf_greg_t *, struct pt_regs *regs); +extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *); + +#define ELF_CORE_COPY_REGS(elf_regs, regs) \ + dump_regs((elf_greg_t *)&(elf_regs), regs); +#define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) \ + dump_task_fpu(tsk, elf_fpregs) + #endif /* __KERNEL__ */ /* This one accepts IRIX binaries. */ -#define irix_elf_check_arch(hdr) ((hdr)->e_machine == EM_MIPS) +#define irix_elf_check_arch(hdr) ((hdr)->e_flags & RHF_SGI_ONLY) #define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE PAGE_SIZE -#define ELF_CORE_COPY_REGS(_dest,_regs) \ - memcpy((char *) &_dest, (char *) _regs, \ - sizeof(struct pt_regs)); - /* This yields a mask that user programs can use to figure out what instruction set this cpu supports. This could be done in userspace, but it's not easy, and we've already done it here. */