LCOV - code coverage report
Current view: top level - include/linux - elfcore.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 1 0.0 %
Date: 2014-04-16 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #ifndef _LINUX_ELFCORE_H
       2                 :            : #define _LINUX_ELFCORE_H
       3                 :            : 
       4                 :            : #include <linux/user.h>
       5                 :            : #include <linux/bug.h>
       6                 :            : #include <asm/elf.h>
       7                 :            : #include <uapi/linux/elfcore.h>
       8                 :            : 
       9                 :            : struct coredump_params;
      10                 :            : 
      11                 :            : static inline void elf_core_copy_regs(elf_gregset_t *elfregs, struct pt_regs *regs)
      12                 :            : {
      13                 :            : #ifdef ELF_CORE_COPY_REGS
      14                 :            :         ELF_CORE_COPY_REGS((*elfregs), regs)
      15                 :            : #else
      16                 :            :         BUG_ON(sizeof(*elfregs) != sizeof(*regs));
      17                 :          0 :         *(struct pt_regs *)elfregs = *regs;
      18                 :            : #endif
      19                 :            : }
      20                 :            : 
      21                 :            : static inline void elf_core_copy_kernel_regs(elf_gregset_t *elfregs, struct pt_regs *regs)
      22                 :            : {
      23                 :            : #ifdef ELF_CORE_COPY_KERNEL_REGS
      24                 :            :         ELF_CORE_COPY_KERNEL_REGS((*elfregs), regs);
      25                 :            : #else
      26                 :            :         elf_core_copy_regs(elfregs, regs);
      27                 :            : #endif
      28                 :            : }
      29                 :            : 
      30                 :            : static inline int elf_core_copy_task_regs(struct task_struct *t, elf_gregset_t* elfregs)
      31                 :            : {
      32                 :            : #if defined (ELF_CORE_COPY_TASK_REGS)
      33                 :            :         return ELF_CORE_COPY_TASK_REGS(t, elfregs);
      34                 :            : #elif defined (task_pt_regs)
      35                 :            :         elf_core_copy_regs(elfregs, task_pt_regs(t));
      36                 :            : #endif
      37                 :            :         return 0;
      38                 :            : }
      39                 :            : 
      40                 :            : extern int dump_fpu (struct pt_regs *, elf_fpregset_t *);
      41                 :            : 
      42                 :            : static inline int elf_core_copy_task_fpregs(struct task_struct *t, struct pt_regs *regs, elf_fpregset_t *fpu)
      43                 :            : {
      44                 :            : #ifdef ELF_CORE_COPY_FPREGS
      45                 :            :         return ELF_CORE_COPY_FPREGS(t, fpu);
      46                 :            : #else
      47                 :            :         return dump_fpu(regs, fpu);
      48                 :            : #endif
      49                 :            : }
      50                 :            : 
      51                 :            : #ifdef ELF_CORE_COPY_XFPREGS
      52                 :            : static inline int elf_core_copy_task_xfpregs(struct task_struct *t, elf_fpxregset_t *xfpu)
      53                 :            : {
      54                 :            :         return ELF_CORE_COPY_XFPREGS(t, xfpu);
      55                 :            : }
      56                 :            : #endif
      57                 :            : 
      58                 :            : /*
      59                 :            :  * These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out
      60                 :            :  * extra segments containing the gate DSO contents.  Dumping its
      61                 :            :  * contents makes post-mortem fully interpretable later without matching up
      62                 :            :  * the same kernel and hardware config to see what PC values meant.
      63                 :            :  * Dumping its extra ELF program headers includes all the other information
      64                 :            :  * a debugger needs to easily find how the gate DSO was being used.
      65                 :            :  */
      66                 :            : extern Elf_Half elf_core_extra_phdrs(void);
      67                 :            : extern int
      68                 :            : elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset);
      69                 :            : extern int
      70                 :            : elf_core_write_extra_data(struct coredump_params *cprm);
      71                 :            : extern size_t elf_core_extra_data_size(void);
      72                 :            : 
      73                 :            : #endif /* _LINUX_ELFCORE_H */

Generated by: LCOV version 1.9