Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _LINUX_ELFCORE_COMPAT_H
0003 #define _LINUX_ELFCORE_COMPAT_H
0004 
0005 #include <linux/elf.h>
0006 #include <linux/elfcore.h>
0007 #include <linux/compat.h>
0008 
0009 /*
0010  * Make sure these layouts match the linux/elfcore.h native definitions.
0011  */
0012 
0013 struct compat_elf_siginfo
0014 {
0015     compat_int_t            si_signo;
0016     compat_int_t            si_code;
0017     compat_int_t            si_errno;
0018 };
0019 
0020 struct compat_elf_prstatus_common
0021 {
0022     struct compat_elf_siginfo   pr_info;
0023     short               pr_cursig;
0024     compat_ulong_t          pr_sigpend;
0025     compat_ulong_t          pr_sighold;
0026     compat_pid_t            pr_pid;
0027     compat_pid_t            pr_ppid;
0028     compat_pid_t            pr_pgrp;
0029     compat_pid_t            pr_sid;
0030     struct old_timeval32        pr_utime;
0031     struct old_timeval32        pr_stime;
0032     struct old_timeval32        pr_cutime;
0033     struct old_timeval32        pr_cstime;
0034 };
0035 
0036 struct compat_elf_prpsinfo
0037 {
0038     char                pr_state;
0039     char                pr_sname;
0040     char                pr_zomb;
0041     char                pr_nice;
0042     compat_ulong_t          pr_flag;
0043     __compat_uid_t          pr_uid;
0044     __compat_gid_t          pr_gid;
0045     compat_pid_t            pr_pid, pr_ppid, pr_pgrp, pr_sid;
0046     /*
0047      * The hard-coded 16 is derived from TASK_COMM_LEN, but it can't be
0048      * changed as it is exposed to userspace. We'd better make it hard-coded
0049      * here.
0050      */
0051     char                pr_fname[16];
0052     char                pr_psargs[ELF_PRARGSZ];
0053 };
0054 
0055 #ifdef CONFIG_ARCH_HAS_ELFCORE_COMPAT
0056 #include <asm/elfcore-compat.h>
0057 #endif
0058 
0059 struct compat_elf_prstatus
0060 {
0061     struct compat_elf_prstatus_common   common;
0062     compat_elf_gregset_t        pr_reg;
0063     compat_int_t            pr_fpvalid;
0064 };
0065 
0066 #endif /* _LINUX_ELFCORE_COMPAT_H */