File Index
Files and directories
Sign in
FILE

book3s64.c

File preview with syntax highlighting.

linux-6.19.14/arch/powerpc/mm/ptdump/book3s64.c 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 <linux/pgtable.h>
  9
 10#include "ptdump.h"
 11
 12static const struct flag_info flag_array[] = {
 13	{
 14		.mask	= _PAGE_PRIVILEGED,
 15		.val	= 0,
 16		.set	= "user",
 17		.clear	= "    ",
 18	}, {
 19		.mask	= _PAGE_READ,
 20		.val	= _PAGE_READ,
 21		.set	= "r",
 22		.clear	= " ",
 23	}, {
 24		.mask	= _PAGE_WRITE,
 25		.val	= _PAGE_WRITE,
 26		.set	= "w",
 27		.clear	= " ",
 28	}, {
 29		.mask	= _PAGE_EXEC,
 30		.val	= _PAGE_EXEC,
 31		.set	= " X ",
 32		.clear	= "   ",
 33	}, {
 34		.mask	= _PAGE_PTE,
 35		.val	= _PAGE_PTE,
 36		.set	= "pte",
 37		.clear	= "   ",
 38	}, {
 39		.mask	= _PAGE_PRESENT,
 40		.val	= _PAGE_PRESENT,
 41		.set	= "valid",
 42		.clear	= "     ",
 43	}, {
 44		.mask	= _PAGE_PRESENT | _PAGE_INVALID,
 45		.val	= 0,
 46		.set	= "       ",
 47		.clear	= "present",
 48	}, {
 49		.mask	= H_PAGE_HASHPTE,
 50		.val	= H_PAGE_HASHPTE,
 51		.set	= "hpte",
 52		.clear	= "    ",
 53	}, {
 54		.mask	= _PAGE_DIRTY,
 55		.val	= _PAGE_DIRTY,
 56		.set	= "dirty",
 57		.clear	= "     ",
 58	}, {
 59		.mask	= _PAGE_ACCESSED,
 60		.val	= _PAGE_ACCESSED,
 61		.set	= "accessed",
 62		.clear	= "        ",
 63	}, {
 64		.mask	= _PAGE_NON_IDEMPOTENT,
 65		.val	= _PAGE_NON_IDEMPOTENT,
 66		.set	= "non-idempotent",
 67		.clear	= "              ",
 68	}, {
 69		.mask	= _PAGE_TOLERANT,
 70		.val	= _PAGE_TOLERANT,
 71		.set	= "tolerant",
 72		.clear	= "        ",
 73	}, {
 74		.mask	= H_PAGE_BUSY,
 75		.val	= H_PAGE_BUSY,
 76		.set	= "busy",
 77	}, {
 78#ifdef CONFIG_PPC_64K_PAGES
 79		.mask	= H_PAGE_COMBO,
 80		.val	= H_PAGE_COMBO,
 81		.set	= "combo",
 82	}, {
 83		.mask	= H_PAGE_4K_PFN,
 84		.val	= H_PAGE_4K_PFN,
 85		.set	= "4K_pfn",
 86	}, {
 87#else /* CONFIG_PPC_64K_PAGES */
 88		.mask	= H_PAGE_F_GIX,
 89		.val	= H_PAGE_F_GIX,
 90		.set	= "f_gix",
 91		.is_val	= true,
 92		.shift	= H_PAGE_F_GIX_SHIFT,
 93	}, {
 94		.mask	= H_PAGE_F_SECOND,
 95		.val	= H_PAGE_F_SECOND,
 96		.set	= "f_second",
 97	}, {
 98#endif /* CONFIG_PPC_64K_PAGES */
 99		.mask	= _PAGE_SPECIAL,
100		.val	= _PAGE_SPECIAL,
101		.set	= "special",
102	}
103};
104
105struct ptdump_pg_level pg_level[5] = {
106	{ /* pgd */
107		.name	= "PGD",
108		.flag	= flag_array,
109		.num	= ARRAY_SIZE(flag_array),
110	}, { /* p4d */
111		.name	= "P4D",
112		.flag	= flag_array,
113		.num	= ARRAY_SIZE(flag_array),
114	}, { /* pud */
115		.name	= "PUD",
116		.flag	= flag_array,
117		.num	= ARRAY_SIZE(flag_array),
118	}, { /* pmd */
119		.name	= "PMD",
120		.flag	= flag_array,
121		.num	= ARRAY_SIZE(flag_array),
122	}, { /* pte */
123		.name	= "PTE",
124		.flag	= flag_array,
125		.num	= ARRAY_SIZE(flag_array),
126	},
127};
~/ Read-only file preview.