blob: c843f4a9c512588edc333075cdc3856dc9a582d3 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
David Howells2f96b8c2013-04-12 00:10:25 +01002/*
3 * /proc/kcore definitions
4 */
5#ifndef _LINUX_KCORE_H
6#define _LINUX_KCORE_H
7
8enum kcore_type {
9 KCORE_TEXT,
10 KCORE_VMALLOC,
11 KCORE_RAM,
12 KCORE_VMEMMAP,
Jia Zhang595dd462018-02-12 22:44:53 +080013 KCORE_USER,
David Howells2f96b8c2013-04-12 00:10:25 +010014 KCORE_OTHER,
Adrian Hunter6855dc42018-06-06 15:54:11 +030015 KCORE_REMAP,
David Howells2f96b8c2013-04-12 00:10:25 +010016};
17
18struct kcore_list {
19 struct list_head list;
20 unsigned long addr;
Adrian Hunter6855dc42018-06-06 15:54:11 +030021 unsigned long vaddr;
David Howells2f96b8c2013-04-12 00:10:25 +010022 size_t size;
23 int type;
24};
25
26struct vmcore {
27 struct list_head list;
28 unsigned long long paddr;
29 unsigned long long size;
30 loff_t offset;
31};
32
Rahul Lakkireddy27242732018-05-02 15:17:17 +053033struct vmcoredd_node {
34 struct list_head list; /* List of dumps */
35 void *buf; /* Buffer containing device's dump */
36 unsigned int size; /* Size of the buffer */
37};
38
David Howells2f96b8c2013-04-12 00:10:25 +010039#ifdef CONFIG_PROC_KCORE
Omar Sandovala8dd9c42018-08-21 21:54:51 -070040void __init kclist_add(struct kcore_list *, void *, size_t, int type);
Adrian Hunter6855dc42018-06-06 15:54:11 +030041static inline
42void kclist_add_remap(struct kcore_list *m, void *addr, void *vaddr, size_t sz)
43{
44 m->vaddr = (unsigned long)vaddr;
45 kclist_add(m, addr, sz, KCORE_REMAP);
46}
Kairui Song83e3e892019-03-08 11:05:08 +080047
48extern int __init register_mem_pfn_is_ram(int (*fn)(unsigned long pfn));
David Howells2f96b8c2013-04-12 00:10:25 +010049#else
50static inline
51void kclist_add(struct kcore_list *new, void *addr, size_t size, int type)
52{
53}
Adrian Hunter6855dc42018-06-06 15:54:11 +030054
55static inline
56void kclist_add_remap(struct kcore_list *m, void *addr, void *vaddr, size_t sz)
57{
58}
David Howells2f96b8c2013-04-12 00:10:25 +010059#endif
60
61#endif /* _LINUX_KCORE_H */