|  | /* 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 */ |