summaryrefslogtreecommitdiff
path: root/mem/vmap.c
blob: 618b19ee986acf3108f179a3ab6e4fb392fb0830 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "vmap.h"
#include "errors.h"

usize mem_vmap_translate(MemVmap *inner, usize virt) {
	if (inner->translate)
		return inner->translate(inner, virt);
	
	return 0;
}

int mem_vmap_map(MemVmap *inner, usize phys, usize virt, usize len, int flags) {
	if (inner->map)
		return inner->map(inner, phys, virt, len, flags);
	
	return MEM_VMAP_UNSUPPORTED;
}

void mem_vmap_unmap(MemVmap *inner, usize virt, usize len) {
	if (inner->unmap)
		inner->unmap(inner, virt, len);
}

void mem_vmap_switch_to(MemVmap *inner) {
	if (inner->switch_to)
		inner->switch_to(inner);
}