1#ifndef _LINUX_ELFCORE_H
2#define _LINUX_ELFCORE_H
3
4#include <linux/types.h>
5#include <linux/signal.h>
6#include <linux/time.h>
7#include <linux/ptrace.h>
8#include <linux/user.h>
9
10struct elf_siginfo
11{
12	int	si_signo;			/* signal number */
13	int	si_code;			/* extra code */
14	int	si_errno;			/* errno */
15};
16
17#include <asm/elf.h>
18
19#ifndef __KERNEL__
20typedef elf_greg_t greg_t;
21typedef elf_gregset_t gregset_t;
22typedef elf_fpregset_t fpregset_t;
23typedef elf_fpxregset_t fpxregset_t;
24#define NGREG ELF_NGREG
25#endif
26
27struct elf_prstatus
28{
29	struct elf_siginfo pr_info;	/* Info associated with signal */
30	short	pr_cursig;		/* Current signal */
31	unsigned long pr_sigpend;	/* Set of pending signals */
32	unsigned long pr_sighold;	/* Set of held signals */
33	pid_t	pr_pid;
34	pid_t	pr_ppid;
35	pid_t	pr_pgrp;
36	pid_t	pr_sid;
37	struct timeval pr_utime;	/* User time */
38	struct timeval pr_stime;	/* System time */
39	struct timeval pr_cutime;	/* Cumulative user time */
40	struct timeval pr_cstime;	/* Cumulative system time */
41	elf_gregset_t pr_reg;	/* GP registers */
42	int pr_fpvalid;		/* True if math co-processor being used.  */
43};
44
45#define ELF_PRARGSZ	(80)	/* Number of chars for args */
46
47struct elf_prpsinfo
48{
49	char	pr_state;	/* numeric process state */
50	char	pr_sname;	/* char for pr_state */
51	char	pr_zomb;	/* zombie */
52	char	pr_nice;	/* nice val */
53	unsigned long pr_flag;	/* flags */
54	__kernel_uid_t	pr_uid;
55	__kernel_gid_t	pr_gid;
56	pid_t	pr_pid, pr_ppid, pr_pgrp, pr_sid;
57	/* Lots missing */
58	char	pr_fname[16];	/* filename of executable */
59	char	pr_psargs[ELF_PRARGSZ];	/* initial part of arg list */
60};
61
62#ifndef __KERNEL__
63typedef struct elf_prstatus prstatus_t;
64typedef struct elf_prpsinfo prpsinfo_t;
65#define PRARGSZ ELF_PRARGSZ
66#endif
67
68#endif /* _LINUX_ELFCORE_H */
69