Merge tag 'linux-watchdog-4.20-rc1' of git://www.linux-watchdog.org/linux-watchdog
[sfrench/cifs-2.6.git] / arch / powerpc / mm / dump_linuxpagetables-generic.c
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 "dump_linuxpagetables.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 #ifndef CONFIG_PPC_BOOK3S_32
25                 .mask   = _PAGE_EXEC,
26                 .val    = _PAGE_EXEC,
27                 .set    = " X ",
28                 .clear  = "   ",
29         }, {
30 #endif
31                 .mask   = _PAGE_PRESENT,
32                 .val    = _PAGE_PRESENT,
33                 .set    = "present",
34                 .clear  = "       ",
35         }, {
36                 .mask   = _PAGE_GUARDED,
37                 .val    = _PAGE_GUARDED,
38                 .set    = "guarded",
39                 .clear  = "       ",
40         }, {
41                 .mask   = _PAGE_DIRTY,
42                 .val    = _PAGE_DIRTY,
43                 .set    = "dirty",
44                 .clear  = "     ",
45         }, {
46                 .mask   = _PAGE_ACCESSED,
47                 .val    = _PAGE_ACCESSED,
48                 .set    = "accessed",
49                 .clear  = "        ",
50         }, {
51                 .mask   = _PAGE_WRITETHRU,
52                 .val    = _PAGE_WRITETHRU,
53                 .set    = "write through",
54                 .clear  = "             ",
55         }, {
56                 .mask   = _PAGE_NO_CACHE,
57                 .val    = _PAGE_NO_CACHE,
58                 .set    = "no cache",
59                 .clear  = "        ",
60         }, {
61                 .mask   = _PAGE_SPECIAL,
62                 .val    = _PAGE_SPECIAL,
63                 .set    = "special",
64         }
65 };
66
67 struct pgtable_level pg_level[5] = {
68         {
69         }, { /* pgd */
70                 .flag   = flag_array,
71                 .num    = ARRAY_SIZE(flag_array),
72         }, { /* pud */
73                 .flag   = flag_array,
74                 .num    = ARRAY_SIZE(flag_array),
75         }, { /* pmd */
76                 .flag   = flag_array,
77                 .num    = ARRAY_SIZE(flag_array),
78         }, { /* pte */
79                 .flag   = flag_array,
80                 .num    = ARRAY_SIZE(flag_array),
81         },
82 };