Lines Matching refs:st
182 static void dump_prot(struct pg_state *st, const struct prot_bits *bits, in dump_prot() argument
190 if ((st->current_prot & bits->mask) == bits->val) in dump_prot()
196 seq_printf(st->seq, " %s", s); in dump_prot()
200 static void note_page(struct pg_state *st, unsigned long addr, unsigned level, in note_page() argument
206 if (!st->level) { in note_page()
207 st->level = level; in note_page()
208 st->current_prot = prot; in note_page()
209 st->start_address = addr; in note_page()
210 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); in note_page()
211 } else if (prot != st->current_prot || level != st->level || in note_page()
212 addr >= st->marker[1].start_address) { in note_page()
216 if (st->current_prot) { in note_page()
217 seq_printf(st->seq, "0x%016lx-0x%016lx ", in note_page()
218 st->start_address, addr); in note_page()
220 delta = (addr - st->start_address) >> 10; in note_page()
225 seq_printf(st->seq, "%9lu%c", delta, *unit); in note_page()
226 if (pg_level[st->level].bits) in note_page()
227 dump_prot(st, pg_level[st->level].bits, in note_page()
228 pg_level[st->level].num); in note_page()
229 seq_puts(st->seq, "\n"); in note_page()
232 if (addr >= st->marker[1].start_address) { in note_page()
233 st->marker++; in note_page()
234 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); in note_page()
237 st->start_address = addr; in note_page()
238 st->current_prot = prot; in note_page()
239 st->level = level; in note_page()
242 if (addr >= st->marker[1].start_address) { in note_page()
243 st->marker++; in note_page()
244 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); in note_page()
249 static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start) in walk_pte() argument
257 note_page(st, addr, 4, pte_val(*pte)); in walk_pte()
261 static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start) in walk_pmd() argument
270 note_page(st, addr, 3, pmd_val(*pmd)); in walk_pmd()
273 walk_pte(st, pmd, addr); in walk_pmd()
278 static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start) in walk_pud() argument
287 note_page(st, addr, 2, pud_val(*pud)); in walk_pud()
290 walk_pmd(st, pud, addr); in walk_pud()
295 static void walk_pgd(struct pg_state *st, struct mm_struct *mm, unsigned long start) in walk_pgd() argument
304 note_page(st, addr, 1, pgd_val(*pgd)); in walk_pgd()
307 walk_pud(st, pgd, addr); in walk_pgd()
314 struct pg_state st = { in ptdump_show() local
319 walk_pgd(&st, &init_mm, LOWEST_ADDR); in ptdump_show()
321 note_page(&st, 0, 0, 0); in ptdump_show()