/* core_va2pa - teecore exported service */ int core_va2pa_helper(void *va, paddr_t *pa) { struct tee_mmap_region *map; map = find_map_by_va(va); if (!va_is_in_map(map, (vaddr_t)va)) return -1; *pa = ((uintptr_t)va & (map->region_size - 1)) | ((map->pa + (uintptr_t)va - map->va) & ~(map->region_size - 1)); return 0; }
/* core_va2pa - teecore exported service */ int core_va2pa_helper(void *va, paddr_t *pa) { struct map_area *map; map = find_map_by_va(va); if (map == NULL) return -1; *pa = ((uintptr_t)va & (map->region_size - 1)) | ((map->pa + (uintptr_t)va - map->va) & ~(map->region_size - 1)); return 0; }