3 #include <linux/module.h>
5 #include <asm/sections.h>
6 #include <asm/pgtable.h>
8 static unsigned long max_addr;
33 [MODULES_NR] = {0,
"Modules Area"},
48 static const char *
const level_name[] =
49 {
"ASCE",
"PGD",
"PUD",
"PMD",
"PTE" };
59 unsigned int new_prot,
int level)
61 static const char units[] =
"KMGTPE";
63 const char *
unit = units;
64 unsigned int prot,
cur;
79 st->
marker = address_markers;
81 }
else if (prot != cur || level != st->
level ||
88 while (!(delta & 0x3ff) && unit[1]) {
123 note_page(m, st, prot, 4);
129 pud_t *pud,
unsigned long addr)
141 note_page(m, st, prot, 3);
143 walk_pte_level(m, st, pmd, addr);
151 pgd_t *pgd,
unsigned long addr)
167 static void walk_pgd_level(
struct seq_file *m)
169 unsigned long addr = 0;
174 memset(&st, 0,
sizeof(st));
186 note_page(m, &st, 0, 0);
189 static int ptdump_show(
struct seq_file *m,
void *
v)
207 static int pt_dump_init(
void)
215 max_addr = 1
UL << 31;
217 max_addr = (
S390_lowcore.kernel_asce & _REGION_ENTRY_TYPE_MASK) >> 2;
218 max_addr = 1
UL << (max_addr * 11 + 31);