1
2
3
4
5
6
7#include <linux/kernel.h>
8#include <linux/pgtable.h>
9
10#include "ptdump.h"
11
12static const struct flag_info flag_array[] = {
13 {
14#ifdef CONFIG_PPC_16K_PAGES
15 .mask = _PAGE_HUGE,
16 .val = _PAGE_HUGE,
17#else
18 .mask = _PAGE_SPS,
19 .val = _PAGE_SPS,
20#endif
21 .set = "huge",
22 .clear = " ",
23 }, {
24 .mask = _PAGE_SH,
25 .val = 0,
26 .set = "user",
27 .clear = " ",
28 }, {
29 .mask = _PAGE_RO | _PAGE_NA,
30 .val = 0,
31 .set = "rw",
32 }, {
33 .mask = _PAGE_RO | _PAGE_NA,
34 .val = _PAGE_RO,
35 .set = "r ",
36 }, {
37 .mask = _PAGE_RO | _PAGE_NA,
38 .val = _PAGE_NA,
39 .set = " ",
40 }, {
41 .mask = _PAGE_EXEC,
42 .val = _PAGE_EXEC,
43 .set = " X ",
44 .clear = " ",
45 }, {
46 .mask = _PAGE_PRESENT,
47 .val = _PAGE_PRESENT,
48 .set = "present",
49 .clear = " ",
50 }, {
51 .mask = _PAGE_GUARDED,
52 .val = _PAGE_GUARDED,
53 .set = "guarded",
54 .clear = " ",
55 }, {
56 .mask = _PAGE_DIRTY,
57 .val = _PAGE_DIRTY,
58 .set = "dirty",
59 .clear = " ",
60 }, {
61 .mask = _PAGE_ACCESSED,
62 .val = _PAGE_ACCESSED,
63 .set = "accessed",
64 .clear = " ",
65 }, {
66 .mask = _PAGE_NO_CACHE,
67 .val = _PAGE_NO_CACHE,
68 .set = "no cache",
69 .clear = " ",
70 }, {
71 .mask = _PAGE_SPECIAL,
72 .val = _PAGE_SPECIAL,
73 .set = "special",
74 }
75};
76
77struct pgtable_level pg_level[5] = {
78 {
79 .flag = flag_array,
80 .num = ARRAY_SIZE(flag_array),
81 }, {
82 .flag = flag_array,
83 .num = ARRAY_SIZE(flag_array),
84 }, {
85 .flag = flag_array,
86 .num = ARRAY_SIZE(flag_array),
87 }, {
88 .flag = flag_array,
89 .num = ARRAY_SIZE(flag_array),
90 }, {
91 .flag = flag_array,
92 .num = ARRAY_SIZE(flag_array),
93 },
94};
95