hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/include/linux/elfcore.h
....@@ -5,11 +5,64 @@
55 #include <linux/user.h>
66 #include <linux/bug.h>
77 #include <linux/sched/task_stack.h>
8
-
9
-#include <asm/elf.h>
10
-#include <uapi/linux/elfcore.h>
8
+#include <linux/types.h>
9
+#include <linux/signal.h>
10
+#include <linux/time.h>
11
+#include <linux/ptrace.h>
12
+#include <linux/fs.h>
13
+#include <linux/elf.h>
1114
1215 struct coredump_params;
16
+
17
+struct elf_siginfo
18
+{
19
+ int si_signo; /* signal number */
20
+ int si_code; /* extra code */
21
+ int si_errno; /* errno */
22
+};
23
+
24
+/*
25
+ * Definitions to generate Intel SVR4-like core files.
26
+ * These mostly have the same names as the SVR4 types with "elf_"
27
+ * tacked on the front to prevent clashes with linux definitions,
28
+ * and the typedef forms have been avoided. This is mostly like
29
+ * the SVR4 structure, but more Linuxy, with things that Linux does
30
+ * not support and which gdb doesn't really use excluded.
31
+ */
32
+struct elf_prstatus
33
+{
34
+ struct elf_siginfo pr_info; /* Info associated with signal */
35
+ short pr_cursig; /* Current signal */
36
+ unsigned long pr_sigpend; /* Set of pending signals */
37
+ unsigned long pr_sighold; /* Set of held signals */
38
+ pid_t pr_pid;
39
+ pid_t pr_ppid;
40
+ pid_t pr_pgrp;
41
+ pid_t pr_sid;
42
+ struct __kernel_old_timeval pr_utime; /* User time */
43
+ struct __kernel_old_timeval pr_stime; /* System time */
44
+ struct __kernel_old_timeval pr_cutime; /* Cumulative user time */
45
+ struct __kernel_old_timeval pr_cstime; /* Cumulative system time */
46
+ elf_gregset_t pr_reg; /* GP registers */
47
+ int pr_fpvalid; /* True if math co-processor being used. */
48
+};
49
+
50
+#define ELF_PRARGSZ (80) /* Number of chars for args */
51
+
52
+struct elf_prpsinfo
53
+{
54
+ char pr_state; /* numeric process state */
55
+ char pr_sname; /* char for pr_state */
56
+ char pr_zomb; /* zombie */
57
+ char pr_nice; /* nice val */
58
+ unsigned long pr_flag; /* flags */
59
+ __kernel_uid_t pr_uid;
60
+ __kernel_gid_t pr_gid;
61
+ pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
62
+ /* Lots missing */
63
+ char pr_fname[16]; /* filename of executable */
64
+ char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
65
+};
1366
1467 static inline void elf_core_copy_regs(elf_gregset_t *elfregs, struct pt_regs *regs)
1568 {
....@@ -50,13 +103,6 @@
50103 return dump_fpu(regs, fpu);
51104 #endif
52105 }
53
-
54
-#ifdef ELF_CORE_COPY_XFPREGS
55
-static inline int elf_core_copy_task_xfpregs(struct task_struct *t, elf_fpxregset_t *xfpu)
56
-{
57
- return ELF_CORE_COPY_XFPREGS(t, xfpu);
58
-}
59
-#endif
60106
61107 #if (defined(CONFIG_UML) && defined(CONFIG_X86_32)) || defined(CONFIG_IA64)
62108 /*