| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * /proc/kcore definitions | |
| */ | |
| #ifndef _LINUX_KCORE_H | |
| #define _LINUX_KCORE_H | |
| enum kcore_type { | |
| KCORE_TEXT, | |
| KCORE_VMALLOC, | |
| KCORE_RAM, | |
| KCORE_VMEMMAP, | |
| KCORE_USER, | |
| KCORE_OTHER, | |
| KCORE_REMAP, | |
| }; | |
| struct kcore_list { | |
| struct list_head list; | |
| unsigned long addr; | |
| unsigned long vaddr; | |
| size_t size; | |
| int type; | |
| }; | |
| struct vmcore { | |
| struct list_head list; | |
| unsigned long long paddr; | |
| unsigned long long size; | |
| loff_t offset; | |
| }; | |
| struct vmcoredd_node { | |
| struct list_head list; /* List of dumps */ | |
| void *buf; /* Buffer containing device's dump */ | |
| unsigned int size; /* Size of the buffer */ | |
| }; | |
| #ifdef CONFIG_PROC_KCORE | |
| void __init kclist_add(struct kcore_list *, void *, size_t, int type); | |
| extern int __init register_mem_pfn_is_ram(int (*fn)(unsigned long pfn)); | |
| #else | |
| static inline | |
| void kclist_add(struct kcore_list *new, void *addr, size_t size, int type) | |
| { | |
| } | |
| #endif | |
| #endif /* _LINUX_KCORE_H */ |