Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 <linux/pgtable.h>
9
10#include "ptdump.h"
11
12static const struct flag_info flag_array[] = {
13 {
14 .mask = _PAGE_READ,
15 .val = 0,
16 .set = " ",
17 .clear = "r",
18 }, {
19 .mask = _PAGE_WRITE,
20 .val = 0,
21 .set = " ",
22 .clear = "w",
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_COHERENT,
35 .val = _PAGE_COHERENT,
36 .set = "coherent",
37 .clear = " ",
38 }, {
39 .mask = _PAGE_GUARDED,
40 .val = _PAGE_GUARDED,
41 .set = "guarded",
42 .clear = " ",
43 }, {
44 .mask = _PAGE_DIRTY,
45 .val = _PAGE_DIRTY,
46 .set = "dirty",
47 .clear = " ",
48 }, {
49 .mask = _PAGE_ACCESSED,
50 .val = _PAGE_ACCESSED,
51 .set = "accessed",
52 .clear = " ",
53 }, {
54 .mask = _PAGE_WRITETHRU,
55 .val = _PAGE_WRITETHRU,
56 .set = "write through",
57 .clear = " ",
58 }, {
59 .mask = _PAGE_NO_CACHE,
60 .val = _PAGE_NO_CACHE,
61 .set = "no cache",
62 .clear = " ",
63 }, {
64 .mask = _PAGE_SPECIAL,
65 .val = _PAGE_SPECIAL,
66 .set = "special",
67 }
68};
69
70struct pgtable_level pg_level[5] = {
71 { /* pgd */
72 .flag = flag_array,
73 .num = ARRAY_SIZE(flag_array),
74 }, { /* p4d */
75 .flag = flag_array,
76 .num = ARRAY_SIZE(flag_array),
77 }, { /* pud */
78 .flag = flag_array,
79 .num = ARRAY_SIZE(flag_array),
80 }, { /* pmd */
81 .flag = flag_array,
82 .num = ARRAY_SIZE(flag_array),
83 }, { /* pte */
84 .flag = flag_array,
85 .num = ARRAY_SIZE(flag_array),
86 },
87};