Lines Matching +full:num +full:- +full:vectors
1 // SPDX-License-Identifier: GPL-2.0-only
31 { VECTORS_BASE, "Vectors" },
32 { VECTORS_BASE + PAGE_SIZE * 2, "Vectors End" },
33 { -1, NULL },
205 size_t num; member
219 .num = ARRAY_SIZE(section_bits),
223 .num = ARRAY_SIZE(pte_bits),
227 static void dump_prot(struct pg_state *st, const struct prot_bits *bits, size_t num) in dump_prot() argument
231 for (i = 0; i < num; i++, bits++) { in dump_prot()
234 if ((st->current_prot & bits->mask) == bits->val) in dump_prot()
235 s = bits->set; in dump_prot()
237 s = bits->clear; in dump_prot()
240 pt_dump_seq_printf(st->seq, " %s", s); in dump_prot()
246 if (!st->check_wx) in note_prot_wx()
248 if ((st->current_prot & pg_level[st->level].ro_bit->mask) == in note_prot_wx()
249 pg_level[st->level].ro_bit->val) in note_prot_wx()
251 if ((st->current_prot & pg_level[st->level].nx_bit->mask) == in note_prot_wx()
252 pg_level[st->level].nx_bit->val) in note_prot_wx()
256 (void *)st->start_address); in note_prot_wx()
258 st->wx_pages += (addr - st->start_address) / PAGE_SIZE; in note_prot_wx()
267 if (!st->level) { in note_page()
268 st->level = level; in note_page()
269 st->current_prot = prot; in note_page()
270 st->current_domain = domain; in note_page()
271 pt_dump_seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); in note_page()
272 } else if (prot != st->current_prot || level != st->level || in note_page()
273 domain != st->current_domain || in note_page()
274 addr >= st->marker[1].start_address) { in note_page()
278 if (st->current_prot) { in note_page()
280 pt_dump_seq_printf(st->seq, "0x%08lx-0x%08lx ", in note_page()
281 st->start_address, addr); in note_page()
283 delta = (addr - st->start_address) >> 10; in note_page()
288 pt_dump_seq_printf(st->seq, "%9lu%c %s", delta, *unit, in note_page()
289 pg_level[st->level].name); in note_page()
290 if (st->current_domain) in note_page()
291 pt_dump_seq_printf(st->seq, " %s", in note_page()
292 st->current_domain); in note_page()
293 if (pg_level[st->level].bits) in note_page()
294 dump_prot(st, pg_level[st->level].bits, pg_level[st->level].num); in note_page()
295 pt_dump_seq_printf(st->seq, "\n"); in note_page()
298 if (addr >= st->marker[1].start_address) { in note_page()
299 st->marker++; in note_page()
300 pt_dump_seq_printf(st->seq, "---[ %s ]---\n", in note_page()
301 st->marker->name); in note_page()
303 st->start_address = addr; in note_page()
304 st->current_prot = prot; in note_page()
305 st->current_domain = domain; in note_page()
306 st->level = level; in note_page()
334 return "VECTORS"; in get_domain_name()
419 .marker = info->markers, in ptdump_walk_pgd()
423 walk_pgd(&st, info->mm, info->base_addr); in ptdump_walk_pgd()
433 for (j = 0; j < pg_level[i].num; j++) { in ptdump_initialize()
459 { -1, NULL}, in ptdump_check_wx()