Back to home page

OSCL-LXR

 
 

    


0001 #ifndef _ASM_MIPS_ELFCORE_COMPAT_H
0002 #define _ASM_MIPS_ELFCORE_COMPAT_H
0003 
0004 /*
0005  * On mips we have two 32bit ABIs - o32 and n32.  The latter
0006  * has bigger registers, so we use it for compat_elf_regset_t.
0007  * The former uses o32_elf_prstatus and PRSTATUS_SIZE/SET_PR_FPVALID
0008  * are used to choose the size and location of ->pr_fpvalid of
0009  * the layout actually used.
0010  */
0011 typedef elf_gregset_t compat_elf_gregset_t;
0012 
0013 struct o32_elf_prstatus
0014 {
0015     struct compat_elf_prstatus_common   common;
0016     unsigned int            pr_reg[ELF_NGREG];
0017     compat_int_t            pr_fpvalid;
0018 };
0019 
0020 #define PRSTATUS_SIZE \
0021     (!test_thread_flag(TIF_32BIT_REGS) \
0022         ? sizeof(struct compat_elf_prstatus) \
0023         : sizeof(struct o32_elf_prstatus))
0024 #define SET_PR_FPVALID(S) \
0025     (*(!test_thread_flag(TIF_32BIT_REGS) \
0026         ? &(S)->pr_fpvalid  \
0027         : &((struct o32_elf_prstatus *)(S))->pr_fpvalid) = 1)
0028 
0029 #endif