Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * From split of dump_linuxpagetables.c
0004  * Copyright 2016, Rashmica Gupta, IBM Corp.
0005  *
0006  */
0007 #include <linux/kernel.h>
0008 #include <linux/pgtable.h>
0009 
0010 #include "ptdump.h"
0011 
0012 static const struct flag_info flag_array[] = {
0013     {
0014         .mask   = _PAGE_USER,
0015         .val    = _PAGE_USER,
0016         .set    = "user",
0017         .clear  = "    ",
0018     }, {
0019         .mask   = _PAGE_RW,
0020         .val    = 0,
0021         .set    = "r ",
0022         .clear  = "rw",
0023     }, {
0024         .mask   = _PAGE_EXEC,
0025         .val    = _PAGE_EXEC,
0026         .set    = " X ",
0027         .clear  = "   ",
0028     }, {
0029         .mask   = _PAGE_PRESENT,
0030         .val    = _PAGE_PRESENT,
0031         .set    = "present",
0032         .clear  = "       ",
0033     }, {
0034         .mask   = _PAGE_COHERENT,
0035         .val    = _PAGE_COHERENT,
0036         .set    = "coherent",
0037         .clear  = "        ",
0038     }, {
0039         .mask   = _PAGE_GUARDED,
0040         .val    = _PAGE_GUARDED,
0041         .set    = "guarded",
0042         .clear  = "       ",
0043     }, {
0044         .mask   = _PAGE_DIRTY,
0045         .val    = _PAGE_DIRTY,
0046         .set    = "dirty",
0047         .clear  = "     ",
0048     }, {
0049         .mask   = _PAGE_ACCESSED,
0050         .val    = _PAGE_ACCESSED,
0051         .set    = "accessed",
0052         .clear  = "        ",
0053     }, {
0054         .mask   = _PAGE_WRITETHRU,
0055         .val    = _PAGE_WRITETHRU,
0056         .set    = "write through",
0057         .clear  = "             ",
0058     }, {
0059         .mask   = _PAGE_NO_CACHE,
0060         .val    = _PAGE_NO_CACHE,
0061         .set    = "no cache",
0062         .clear  = "        ",
0063     }, {
0064         .mask   = _PAGE_SPECIAL,
0065         .val    = _PAGE_SPECIAL,
0066         .set    = "special",
0067     }
0068 };
0069 
0070 struct pgtable_level pg_level[5] = {
0071     { /* pgd */
0072         .flag   = flag_array,
0073         .num    = ARRAY_SIZE(flag_array),
0074     }, { /* p4d */
0075         .flag   = flag_array,
0076         .num    = ARRAY_SIZE(flag_array),
0077     }, { /* pud */
0078         .flag   = flag_array,
0079         .num    = ARRAY_SIZE(flag_array),
0080     }, { /* pmd */
0081         .flag   = flag_array,
0082         .num    = ARRAY_SIZE(flag_array),
0083     }, { /* pte */
0084         .flag   = flag_array,
0085         .num    = ARRAY_SIZE(flag_array),
0086     },
0087 };