Separate address types from memory management.
This allows extracting some code from the architecture specific headers.
Change-Id: I37f7d9955a10025ef491c4e2ca76a6ffaf123a6b
diff --git a/src/mm.c b/src/mm.c
index 9ecc313..d240c55 100644
--- a/src/mm.c
+++ b/src/mm.c
@@ -207,8 +207,8 @@
uint64_t attrs = arch_mm_mode_to_attrs(mode);
int flags = (mode & MM_MODE_NOSYNC) ? 0 : MAP_FLAG_SYNC;
int level = arch_mm_max_level(mode);
- pte_t *table = mm_ptr_from_va(mm_va_from_pa(t->table));
- paddr_t paddr = arch_mm_clear_pa(mm_pa_from_va(begin));
+ pte_t *table = ptr_from_va(va_from_pa(t->table));
+ paddr_t paddr = arch_mm_clear_pa(pa_from_va(begin));
begin = arch_mm_clear_va(begin);
end = arch_mm_clear_va(va_add(end, PAGE_SIZE - 1));
@@ -241,18 +241,18 @@
{
int flags = (mode & MM_MODE_NOSYNC) ? 0 : MAP_FLAG_SYNC;
int level = arch_mm_max_level(mode);
- pte_t *table = mm_ptr_from_va(mm_va_from_pa(t->table));
+ pte_t *table = ptr_from_va(va_from_pa(t->table));
begin = arch_mm_clear_va(begin);
end = arch_mm_clear_va(va_add(end, PAGE_SIZE - 1));
/* Also do updates in two steps, similarly to mm_ptable_identity_map. */
- if (!mm_map_level(begin, end, mm_pa_from_va(begin), 0, table, level,
+ if (!mm_map_level(begin, end, pa_from_va(begin), 0, table, level,
flags)) {
return false;
}
- mm_map_level(begin, end, mm_pa_from_va(begin), 0, table, level,
+ mm_map_level(begin, end, pa_from_va(begin), 0, table, level,
flags | MAP_FLAG_COMMIT);
/* Invalidate the tlb. */
@@ -272,9 +272,9 @@
{
size_t i;
uint64_t attrs = arch_mm_mode_to_attrs(mode);
- pte_t *table = mm_ptr_from_va(mm_va_from_pa(t->table));
+ pte_t *table = ptr_from_va(va_from_pa(t->table));
bool sync = !(mode & MM_MODE_NOSYNC);
- paddr_t pa = arch_mm_clear_pa(mm_pa_from_va(va));
+ paddr_t pa = arch_mm_clear_pa(pa_from_va(va));
va = arch_mm_clear_va(va);
@@ -319,7 +319,7 @@
*/
void mm_ptable_dump(struct mm_ptable *t, int mode)
{
- pte_t *table = mm_ptr_from_va(mm_va_from_pa(t->table));
+ pte_t *table = ptr_from_va(va_from_pa(t->table));
int max_level = arch_mm_max_level(mode);
mm_dump_table_recursive(table, max_level, max_level);
}
@@ -386,7 +386,7 @@
*/
bool mm_ptable_is_mapped(struct mm_ptable *t, vaddr_t addr, int mode)
{
- pte_t *table = mm_ptr_from_va(mm_va_from_pa(t->table));
+ pte_t *table = ptr_from_va(va_from_pa(t->table));
int level = arch_mm_max_level(mode);
addr = arch_mm_clear_va(addr);