]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
088e7af7 DH |
2 | #ifndef _LINUX_COREDUMP_H |
3 | #define _LINUX_COREDUMP_H | |
4 | ||
5 | #include <linux/types.h> | |
6 | #include <linux/mm.h> | |
7 | #include <linux/fs.h> | |
1d46e232 | 8 | #include <asm/siginfo.h> |
088e7af7 | 9 | |
a64b8908 | 10 | #ifdef CONFIG_COREDUMP |
a07279c9 JH |
11 | struct core_vma_metadata { |
12 | unsigned long start, end; | |
13 | unsigned long flags; | |
14 | unsigned long dump_size; | |
15 | }; | |
16 | ||
a64b8908 AV |
17 | extern int core_uses_pid; |
18 | extern char core_pattern[]; | |
19 | extern unsigned int core_pipe_limit; | |
20 | ||
088e7af7 DH |
21 | /* |
22 | * These are the only things you should do on a core-file: use only these | |
23 | * functions to write out all the necessary info. | |
24 | */ | |
ecc8c772 | 25 | struct coredump_params; |
d0f1088b AV |
26 | extern void dump_skip_to(struct coredump_params *cprm, unsigned long to); |
27 | extern void dump_skip(struct coredump_params *cprm, size_t nr); | |
ecc8c772 | 28 | extern int dump_emit(struct coredump_params *cprm, const void *addr, int nr); |
22a8cb82 | 29 | extern int dump_align(struct coredump_params *cprm, int align); |
afc63a97 JH |
30 | int dump_user_range(struct coredump_params *cprm, unsigned long start, |
31 | unsigned long len); | |
a07279c9 JH |
32 | int dump_vma_snapshot(struct coredump_params *cprm, int *vma_count, |
33 | struct core_vma_metadata **vma_meta, | |
34 | size_t *vma_data_size_ptr); | |
ae7795bc | 35 | extern void do_coredump(const kernel_siginfo_t *siginfo); |
179899fd | 36 | #else |
ae7795bc | 37 | static inline void do_coredump(const kernel_siginfo_t *siginfo) {} |
179899fd | 38 | #endif |
088e7af7 DH |
39 | |
40 | #endif /* _LINUX_COREDUMP_H */ |