1 #ifndef _LINUX_ELFCORE_COMPAT_H
2 #define _LINUX_ELFCORE_COMPAT_H
3 
4 #include <linux/elf.h>
5 #include <linux/elfcore.h>
6 #include <linux/compat.h>
7 
8 /*
9  * Make sure these layouts match the linux/elfcore.h native definitions.
10  */
11 
12 struct compat_elf_siginfo
13 {
14 	compat_int_t			si_signo;
15 	compat_int_t			si_code;
16 	compat_int_t			si_errno;
17 };
18 
19 struct compat_elf_prstatus
20 {
21 	struct compat_elf_siginfo	pr_info;
22 	short				pr_cursig;
23 	compat_ulong_t			pr_sigpend;
24 	compat_ulong_t			pr_sighold;
25 	compat_pid_t			pr_pid;
26 	compat_pid_t			pr_ppid;
27 	compat_pid_t			pr_pgrp;
28 	compat_pid_t			pr_sid;
29 	struct compat_timeval		pr_utime;
30 	struct compat_timeval		pr_stime;
31 	struct compat_timeval		pr_cutime;
32 	struct compat_timeval		pr_cstime;
33 	compat_elf_gregset_t		pr_reg;
34 #ifdef CONFIG_BINFMT_ELF_FDPIC
35 	compat_ulong_t			pr_exec_fdpic_loadmap;
36 	compat_ulong_t			pr_interp_fdpic_loadmap;
37 #endif
38 	compat_int_t			pr_fpvalid;
39 };
40 
41 struct compat_elf_prpsinfo
42 {
43 	char				pr_state;
44 	char				pr_sname;
45 	char				pr_zomb;
46 	char				pr_nice;
47 	compat_ulong_t			pr_flag;
48 	__compat_uid_t			pr_uid;
49 	__compat_gid_t			pr_gid;
50 	compat_pid_t			pr_pid, pr_ppid, pr_pgrp, pr_sid;
51 	char				pr_fname[16];
52 	char				pr_psargs[ELF_PRARGSZ];
53 };
54 
55 #endif /* _LINUX_ELFCORE_COMPAT_H */
56