linux/arch/powerpc/mm/ptdump/shared.c
<<
>>
Prefs
   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_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_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};
  88