xref: /linux-6.15/include/linux/kcore.h (revision 6fbd8569)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * /proc/kcore definitions
4  */
5 #ifndef _LINUX_KCORE_H
6 #define _LINUX_KCORE_H
7 
8 enum kcore_type {
9 	KCORE_TEXT,
10 	KCORE_VMALLOC,
11 	KCORE_RAM,
12 	KCORE_VMEMMAP,
13 	KCORE_USER,
14 	KCORE_OTHER,
15 };
16 
17 struct kcore_list {
18 	struct list_head list;
19 	unsigned long addr;
20 	size_t size;
21 	int type;
22 };
23 
24 struct vmcore {
25 	struct list_head list;
26 	unsigned long long paddr;
27 	unsigned long long size;
28 	loff_t offset;
29 };
30 
31 struct vmcoredd_node {
32 	struct list_head list;	/* List of dumps */
33 	void *buf;		/* Buffer containing device's dump */
34 	unsigned int size;	/* Size of the buffer */
35 };
36 
37 #ifdef CONFIG_PROC_KCORE
38 extern void kclist_add(struct kcore_list *, void *, size_t, int type);
39 #else
40 static inline
41 void kclist_add(struct kcore_list *new, void *addr, size_t size, int type)
42 {
43 }
44 #endif
45 
46 #endif /* _LINUX_KCORE_H */
47