Lines Matching refs:st
187 static void dump_prot(struct pg_state *st, const struct prot_bits *bits, in dump_prot() argument
195 if ((st->current_prot & bits->mask) == bits->val) in dump_prot()
201 seq_printf(st->seq, " %s", s); in dump_prot()
205 static void note_page(struct pg_state *st, unsigned long addr, unsigned level, in note_page() argument
211 if (!st->level) { in note_page()
212 st->level = level; in note_page()
213 st->current_prot = prot; in note_page()
214 st->start_address = addr; in note_page()
215 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); in note_page()
216 } else if (prot != st->current_prot || level != st->level || in note_page()
217 addr >= st->marker[1].start_address) { in note_page()
221 if (st->current_prot) { in note_page()
222 seq_printf(st->seq, "0x%016lx-0x%016lx ", in note_page()
223 st->start_address, addr); in note_page()
225 delta = (addr - st->start_address) >> 10; in note_page()
230 seq_printf(st->seq, "%9lu%c", delta, *unit); in note_page()
231 if (pg_level[st->level].bits) in note_page()
232 dump_prot(st, pg_level[st->level].bits, in note_page()
233 pg_level[st->level].num); in note_page()
234 seq_puts(st->seq, "\n"); in note_page()
237 if (addr >= st->marker[1].start_address) { in note_page()
238 st->marker++; in note_page()
239 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); in note_page()
242 st->start_address = addr; in note_page()
243 st->current_prot = prot; in note_page()
244 st->level = level; in note_page()
247 if (addr >= st->marker[1].start_address) { in note_page()
248 st->marker++; in note_page()
249 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); in note_page()
254 static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start) in walk_pte() argument
262 note_page(st, addr, 4, pte_val(*pte)); in walk_pte()
266 static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start) in walk_pmd() argument
275 note_page(st, addr, 3, pmd_val(*pmd)); in walk_pmd()
278 walk_pte(st, pmd, addr); in walk_pmd()
283 static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start) in walk_pud() argument
292 note_page(st, addr, 2, pud_val(*pud)); in walk_pud()
295 walk_pmd(st, pud, addr); in walk_pud()
300 static void walk_pgd(struct pg_state *st, struct mm_struct *mm, unsigned long start) in walk_pgd() argument
309 note_page(st, addr, 1, pgd_val(*pgd)); in walk_pgd()
312 walk_pud(st, pgd, addr); in walk_pgd()
319 struct pg_state st = { in ptdump_show() local
324 walk_pgd(&st, &init_mm, LOWEST_ADDR); in ptdump_show()
326 note_page(&st, 0, 0, 0); in ptdump_show()