blob: 6afd8476c60c63b15bdb6b4a04510ed36a1c0ac6 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/*
2 * Copyright (C) 2014 ARM Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#ifndef __ASM_PTDUMP_H
17#define __ASM_PTDUMP_H
18
19#ifdef CONFIG_ARM64_PTDUMP_CORE
20
21#include <linux/mm_types.h>
22#include <linux/seq_file.h>
23
24struct addr_marker {
25 unsigned long start_address;
26 char *name;
27};
28
29struct ptdump_info {
30 struct mm_struct *mm;
31 const struct addr_marker *markers;
32 unsigned long base_addr;
33};
34
35void ptdump_walk_pgd(struct seq_file *s, struct ptdump_info *info);
36#ifdef CONFIG_ARM64_PTDUMP_DEBUGFS
37int ptdump_debugfs_register(struct ptdump_info *info, const char *name);
38#else
39static inline int ptdump_debugfs_register(struct ptdump_info *info,
40 const char *name)
41{
42 return 0;
43}
44#endif
45void ptdump_check_wx(void);
46#endif /* CONFIG_ARM64_PTDUMP_CORE */
47
48#ifdef CONFIG_DEBUG_WX
49#define debug_checkwx() ptdump_check_wx()
50#else
51#define debug_checkwx() do { } while (0)
52#endif
53
54#endif /* __ASM_PTDUMP_H */