0001
0002
0003
0004
0005 #ifndef _LINUX_KCORE_H
0006 #define _LINUX_KCORE_H
0007
0008 enum kcore_type {
0009 KCORE_TEXT,
0010 KCORE_VMALLOC,
0011 KCORE_RAM,
0012 KCORE_VMEMMAP,
0013 KCORE_USER,
0014 };
0015
0016 struct kcore_list {
0017 struct list_head list;
0018 unsigned long addr;
0019 size_t size;
0020 int type;
0021 };
0022
0023 struct vmcore {
0024 struct list_head list;
0025 unsigned long long paddr;
0026 unsigned long long size;
0027 loff_t offset;
0028 };
0029
0030 struct vmcoredd_node {
0031 struct list_head list;
0032 void *buf;
0033 unsigned int size;
0034 };
0035
0036 #ifdef CONFIG_PROC_KCORE
0037 void __init kclist_add(struct kcore_list *, void *, size_t, int type);
0038
0039 extern int __init register_mem_pfn_is_ram(int (*fn)(unsigned long pfn));
0040 #else
0041 static inline
0042 void kclist_add(struct kcore_list *new, void *addr, size_t size, int type)
0043 {
0044 }
0045 #endif
0046
0047 #endif