Lines Matching refs:table
44 uint64_t *table; in new_table() local
50 table = &xlat_tables[i * Ln_XLAT_NUM_ENTRIES]; in new_table()
52 MMU_DEBUG("allocating table [%d]%p\n", i, table); in new_table()
53 return table; in new_table()
70 static int table_usage(uint64_t *table, int adjustment) in table_usage() argument
72 unsigned int i = table_index(table); in table_usage()
78 MMU_DEBUG("table [%d]%p: usage %#x -> %#x\n", i, table, prev_count, new_count); in table_usage()
92 static inline void inc_table_ref(uint64_t *table) in inc_table_ref() argument
94 table_usage(table, XLAT_REF_COUNT_UNIT); in inc_table_ref()
97 static inline void dec_table_ref(uint64_t *table) in dec_table_ref() argument
101 table_usage(table, -ref_unit); in dec_table_ref()
104 static inline bool is_table_unused(uint64_t *table) in is_table_unused() argument
106 return (table_usage(table, 0) & XLAT_PTE_COUNT_MASK) == 0; in is_table_unused()
109 static inline bool is_table_single_referenced(uint64_t *table) in is_table_single_referenced() argument
111 return table_usage(table, 0) < (2 * XLAT_REF_COUNT_UNIT); in is_table_single_referenced()
207 uint64_t *table = pte_desc_table(*pte); in debug_show_pte() local
209 MMU_DEBUG("[Table] [%d]%p\n", table_index(table), table); in debug_show_pte()
237 static void set_pte_table_desc(uint64_t *pte, uint64_t *table, unsigned int level) in set_pte_table_desc() argument
240 *pte = PTE_TABLE_DESC | (uint64_t)table; in set_pte_table_desc()
262 uint64_t *table; in expand_to_table() local
266 table = new_table(); in expand_to_table()
267 if (!table) { in expand_to_table()
280 desc, table_index(table), table); in expand_to_table()
289 table[i] = desc | (i << stride_shift); in expand_to_table()
291 table_usage(table, Ln_XLAT_NUM_ENTRIES); in expand_to_table()
301 set_pte_table_desc(pte, table, level); in expand_to_table()
303 return table; in expand_to_table()
309 uint64_t *table = top_table; in set_mapping() local
319 pte = &table[XLAT_TABLE_VA_IDX(virt, level)]; in set_mapping()
324 table = pte_desc_table(*pte); in set_mapping()
350 table = expand_to_table(pte, level); in set_mapping()
351 if (!table) { in set_mapping()
371 table = top_table; in set_mapping()
378 static void del_mapping(uint64_t *table, uintptr_t virt, size_t size, in del_mapping() argument
389 pte = &table[XLAT_TABLE_VA_IDX(virt, level)]; in del_mapping()
526 static void discard_table(uint64_t *table, unsigned int level) in discard_table() argument
532 if (is_table_desc(table[i], level)) { in discard_table()
533 uint64_t *subtable = pte_desc_table(table[i]); in discard_table()
540 if (!is_free_desc(table[i])) { in discard_table()
541 table[i] = 0U; in discard_table()
545 table_usage(table, -free_count); in discard_table()
1396 uint64_t *table = ptables->base_xlat_table; in get_pte_location() local
1400 pte = &table[XLAT_TABLE_VA_IDX(virt, level)]; in get_pte_location()
1407 table = pte_desc_table(*pte); in get_pte_location()