Lines Matching refs:mm

155 	mmap_region_t *mm = mmap;  in print_mmap()  local
160 while (mm->size) { in print_mmap()
162 (void *)mm->base_va, mm->base_pa, in print_mmap()
163 mm->size, mm->attr); in print_mmap()
164 ++mm; in print_mmap()
170 void mmap_add(const mmap_region_t *mm) in mmap_add() argument
172 const mmap_region_t *mm_cursor = mm; in mmap_add()
184 mmap_region_t *mm = mmap; in mmap_add_region() local
185 const mmap_region_t *mm_last = mm + ARRAY_SIZE(mmap) - 1U; in mmap_add_region()
208 for (mm = mmap; mm->size; ++mm) { in mmap_add_region()
210 uintptr_t mm_end_va = mm->base_va + mm->size - 1U; in mmap_add_region()
217 ((base_va >= mm->base_va) && (end_va <= mm_end_va)) || in mmap_add_region()
218 ((mm->base_va >= base_va) && (mm_end_va <= end_va)); in mmap_add_region()
226 assert((mm->base_va - mm->base_pa) == in mmap_add_region()
228 assert((base_va != mm->base_va) || (size != mm->size)); in mmap_add_region()
237 mm->base_pa + mm->size - 1; in mmap_add_region()
239 bool separated_pa = (end_pa < mm->base_pa) || in mmap_add_region()
241 bool separated_va = (end_va < mm->base_va) || in mmap_add_region()
248 mm = mmap; /* Restore pointer to the start of the array */ in mmap_add_region()
253 while ((mm->base_va < base_va) && (mm->size != 0U)) { in mmap_add_region()
254 ++mm; in mmap_add_region()
268 while ((mm->base_va == base_va) && (mm->size > size)) { in mmap_add_region()
269 ++mm; in mmap_add_region()
273 (void)memmove(mm + 1, mm, (uintptr_t)mm_last - (uintptr_t)mm); in mmap_add_region()
278 mm->base_pa = base_pa; in mmap_add_region()
279 mm->base_va = base_va; in mmap_add_region()
280 mm->size = size; in mmap_add_region()
281 mm->attr = attr; in mmap_add_region()
344 static unsigned int mmap_region_attr(const mmap_region_t *mm, uintptr_t base_va, in mmap_region_attr() argument
365 for ( ; ; ++mm) { in mmap_region_attr()
367 if (mm->size == 0U) { in mmap_region_attr()
371 if (mm->base_va > (base_va + size - 1U)) { in mmap_region_attr()
375 if ((mm->base_va + mm->size - 1U) < base_va) { in mmap_region_attr()
379 if ((ret == 0U) && (mm->attr == *attr)) { in mmap_region_attr()
383 if ((mm->base_va > base_va) || in mmap_region_attr()
384 ((mm->base_va + mm->size - 1U) < in mmap_region_attr()
389 *attr = mm->attr; in mmap_region_attr()
394 static mmap_region_t *init_xlation_table_inner(mmap_region_t *mm, in init_xlation_table_inner() argument
413 if (mm->base_va + mm->size <= base_va) { in init_xlation_table_inner()
415 ++mm; in init_xlation_table_inner()
425 if (mm->base_va >= base_va + level_size) { in init_xlation_table_inner()
428 } else if ((mm->base_va <= base_va) && in init_xlation_table_inner()
429 (mm->base_va + mm->size) >= in init_xlation_table_inner()
432 unsigned int attr = mm->attr; in init_xlation_table_inner()
433 unsigned int r = mmap_region_attr(mm, base_va, in init_xlation_table_inner()
438 base_va - mm->base_va + mm->base_pa, in init_xlation_table_inner()
454 == ((mm->attr & MT_NS) == 0U)); in init_xlation_table_inner()
468 desc |= (mm->attr & MT_NS) != 0U ? in init_xlation_table_inner()
472 mm = init_xlation_table_inner(mm, base_va, in init_xlation_table_inner()
484 } while ((mm->size != 0U) && ((base_va & level_index_mask) != 0U)); in init_xlation_table_inner()
486 return mm; in init_xlation_table_inner()