aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/mm/init.c1
-rw-r--r--arch/score/mm/init.c2
-rw-r--r--arch/x86/mm/init_64.c1
-rw-r--r--fs/proc/kcore.c1
-rw-r--r--fs/proc/vmcore.c3
-rw-r--r--include/linux/kcore.h38
-rw-r--r--include/linux/proc_fs.h31
7 files changed, 44 insertions, 33 deletions
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 67929251286c..60547b7fe2ff 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -29,6 +29,7 @@
29#include <linux/pfn.h> 29#include <linux/pfn.h>
30#include <linux/hardirq.h> 30#include <linux/hardirq.h>
31#include <linux/gfp.h> 31#include <linux/gfp.h>
32#include <linux/kcore.h>
32 33
33#include <asm/asm-offsets.h> 34#include <asm/asm-offsets.h>
34#include <asm/bootinfo.h> 35#include <asm/bootinfo.h>
diff --git a/arch/score/mm/init.c b/arch/score/mm/init.c
index cee6bce1e30c..8b6f796c6ade 100644
--- a/arch/score/mm/init.c
+++ b/arch/score/mm/init.c
@@ -31,7 +31,7 @@
31#include <linux/mm.h> 31#include <linux/mm.h>
32#include <linux/mman.h> 32#include <linux/mman.h>
33#include <linux/pagemap.h> 33#include <linux/pagemap.h>
34#include <linux/proc_fs.h> 34#include <linux/kcore.h>
35#include <linux/sched.h> 35#include <linux/sched.h>
36#include <linux/initrd.h> 36#include <linux/initrd.h>
37 37
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 474e28f10815..24ceda0101bb 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -32,6 +32,7 @@
32#include <linux/memory_hotplug.h> 32#include <linux/memory_hotplug.h>
33#include <linux/nmi.h> 33#include <linux/nmi.h>
34#include <linux/gfp.h> 34#include <linux/gfp.h>
35#include <linux/kcore.h>
35 36
36#include <asm/processor.h> 37#include <asm/processor.h>
37#include <asm/bios_ebda.h> 38#include <asm/bios_ebda.h>
diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
index eda6f017f272..8e6ce830de44 100644
--- a/fs/proc/kcore.c
+++ b/fs/proc/kcore.c
@@ -11,6 +11,7 @@
11 11
12#include <linux/mm.h> 12#include <linux/mm.h>
13#include <linux/proc_fs.h> 13#include <linux/proc_fs.h>
14#include <linux/kcore.h>
14#include <linux/user.h> 15#include <linux/user.h>
15#include <linux/capability.h> 16#include <linux/capability.h>
16#include <linux/elf.h> 17#include <linux/elf.h>
diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
index b870f740ab5a..38edddc25816 100644
--- a/fs/proc/vmcore.c
+++ b/fs/proc/vmcore.c
@@ -8,7 +8,7 @@
8 */ 8 */
9 9
10#include <linux/mm.h> 10#include <linux/mm.h>
11#include <linux/proc_fs.h> 11#include <linux/kcore.h>
12#include <linux/user.h> 12#include <linux/user.h>
13#include <linux/elf.h> 13#include <linux/elf.h>
14#include <linux/elfcore.h> 14#include <linux/elfcore.h>
@@ -22,6 +22,7 @@
22#include <linux/list.h> 22#include <linux/list.h>
23#include <asm/uaccess.h> 23#include <asm/uaccess.h>
24#include <asm/io.h> 24#include <asm/io.h>
25#include "internal.h"
25 26
26/* List representing chunks of contiguous memory areas and their offsets in 27/* List representing chunks of contiguous memory areas and their offsets in
27 * vmcore file. 28 * vmcore file.
diff --git a/include/linux/kcore.h b/include/linux/kcore.h
new file mode 100644
index 000000000000..d92762286645
--- /dev/null
+++ b/include/linux/kcore.h
@@ -0,0 +1,38 @@
1/*
2 * /proc/kcore definitions
3 */
4#ifndef _LINUX_KCORE_H
5#define _LINUX_KCORE_H
6
7enum kcore_type {
8 KCORE_TEXT,
9 KCORE_VMALLOC,
10 KCORE_RAM,
11 KCORE_VMEMMAP,
12 KCORE_OTHER,
13};
14
15struct kcore_list {
16 struct list_head list;
17 unsigned long addr;
18 size_t size;
19 int type;
20};
21
22struct vmcore {
23 struct list_head list;
24 unsigned long long paddr;
25 unsigned long long size;
26 loff_t offset;
27};
28
29#ifdef CONFIG_PROC_KCORE
30extern void kclist_add(struct kcore_list *, void *, size_t, int type);
31#else
32static inline
33void kclist_add(struct kcore_list *new, void *addr, size_t size, int type)
34{
35}
36#endif
37
38#endif /* _LINUX_KCORE_H */
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index f5105f4e54f4..805edacfc2fc 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -68,28 +68,6 @@ struct proc_dir_entry {
68 char name[]; 68 char name[];
69}; 69};
70 70
71enum kcore_type {
72 KCORE_TEXT,
73 KCORE_VMALLOC,
74 KCORE_RAM,
75 KCORE_VMEMMAP,
76 KCORE_OTHER,
77};
78
79struct kcore_list {
80 struct list_head list;
81 unsigned long addr;
82 size_t size;
83 int type;
84};
85
86struct vmcore {
87 struct list_head list;
88 unsigned long long paddr;
89 unsigned long long size;
90 loff_t offset;
91};
92
93#ifdef CONFIG_PROC_FS 71#ifdef CONFIG_PROC_FS
94 72
95extern void proc_root_init(void); 73extern void proc_root_init(void);
@@ -214,15 +192,6 @@ static inline void proc_free_inum(unsigned int inum)
214} 192}
215#endif /* CONFIG_PROC_FS */ 193#endif /* CONFIG_PROC_FS */
216 194
217#if !defined(CONFIG_PROC_KCORE)
218static inline void
219kclist_add(struct kcore_list *new, void *addr, size_t size, int type)
220{
221}
222#else
223extern void kclist_add(struct kcore_list *, void *, size_t, int type);
224#endif
225
226struct nsproxy; 195struct nsproxy;
227struct proc_ns_operations { 196struct proc_ns_operations {
228 const char *name; 197 const char *name;