xref: /linux-6.15/include/linux/kcore.h (revision e00a844a)
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_OTHER,
14 };
15 
16 struct kcore_list {
17 	struct list_head list;
18 	unsigned long addr;
19 	size_t size;
20 	int type;
21 };
22 
23 struct vmcore {
24 	struct list_head list;
25 	unsigned long long paddr;
26 	unsigned long long size;
27 	loff_t offset;
28 };
29 
30 #ifdef CONFIG_PROC_KCORE
31 extern void kclist_add(struct kcore_list *, void *, size_t, int type);
32 #else
33 static inline
34 void kclist_add(struct kcore_list *new, void *addr, size_t size, int type)
35 {
36 }
37 #endif
38 
39 #endif /* _LINUX_KCORE_H */
40