xref: /openbmc/linux/arch/powerpc/mm/ptdump/shared.c (revision 3dc4b6fb)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * From split of dump_linuxpagetables.c
4  * Copyright 2016, Rashmica Gupta, IBM Corp.
5  *
6  */
7 #include <linux/kernel.h>
8 #include <asm/pgtable.h>
9 
10 #include "ptdump.h"
11 
12 static const struct flag_info flag_array[] = {
13 	{
14 		.mask	= _PAGE_USER,
15 		.val	= _PAGE_USER,
16 		.set	= "user",
17 		.clear	= "    ",
18 	}, {
19 		.mask	= _PAGE_RW,
20 		.val	= _PAGE_RW,
21 		.set	= "rw",
22 		.clear	= "r ",
23 	}, {
24 		.mask	= _PAGE_EXEC,
25 		.val	= _PAGE_EXEC,
26 		.set	= " X ",
27 		.clear	= "   ",
28 	}, {
29 		.mask	= _PAGE_PRESENT,
30 		.val	= _PAGE_PRESENT,
31 		.set	= "present",
32 		.clear	= "       ",
33 	}, {
34 		.mask	= _PAGE_GUARDED,
35 		.val	= _PAGE_GUARDED,
36 		.set	= "guarded",
37 		.clear	= "       ",
38 	}, {
39 		.mask	= _PAGE_DIRTY,
40 		.val	= _PAGE_DIRTY,
41 		.set	= "dirty",
42 		.clear	= "     ",
43 	}, {
44 		.mask	= _PAGE_ACCESSED,
45 		.val	= _PAGE_ACCESSED,
46 		.set	= "accessed",
47 		.clear	= "        ",
48 	}, {
49 		.mask	= _PAGE_WRITETHRU,
50 		.val	= _PAGE_WRITETHRU,
51 		.set	= "write through",
52 		.clear	= "             ",
53 	}, {
54 		.mask	= _PAGE_NO_CACHE,
55 		.val	= _PAGE_NO_CACHE,
56 		.set	= "no cache",
57 		.clear	= "        ",
58 	}, {
59 		.mask	= _PAGE_SPECIAL,
60 		.val	= _PAGE_SPECIAL,
61 		.set	= "special",
62 	}
63 };
64 
65 struct pgtable_level pg_level[5] = {
66 	{
67 	}, { /* pgd */
68 		.flag	= flag_array,
69 		.num	= ARRAY_SIZE(flag_array),
70 	}, { /* pud */
71 		.flag	= flag_array,
72 		.num	= ARRAY_SIZE(flag_array),
73 	}, { /* pmd */
74 		.flag	= flag_array,
75 		.num	= ARRAY_SIZE(flag_array),
76 	}, { /* pte */
77 		.flag	= flag_array,
78 		.num	= ARRAY_SIZE(flag_array),
79 	},
80 };
81