sp1/amd64: mmu: Add function to unmap regions
Signed-off-by: Ian Moffett <ian@mirocom.org>
This commit is contained in:
@@ -267,3 +267,24 @@ mu_mmu_map(struct mmu_vfr *vfr, uintptr_t vma, uintptr_t pma,
|
||||
md_tlb_flush(vma);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
status_t
|
||||
mu_mmu_unmap(struct mmu_vfr *vfr, uintptr_t vma, pagesize_t ps)
|
||||
{
|
||||
uintptr_t *tbl;
|
||||
size_t index;
|
||||
|
||||
if (vfr == NULL) {
|
||||
return STATUS_INVALID_PARAM;
|
||||
}
|
||||
|
||||
tbl = mmu_extract_level(vfr, vma, PAGELVL_PML1, false);
|
||||
if (tbl == NULL) {
|
||||
return STATUS_NOT_FOUND;
|
||||
}
|
||||
|
||||
index = mmu_extract_index(vma, PAGELVL_PML1);
|
||||
tbl[index] = 0;
|
||||
md_tlb_flush(vma);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -62,6 +62,19 @@ status_t mu_mmu_map(
|
||||
pagesize_t ps
|
||||
);
|
||||
|
||||
/*
|
||||
* Destroy a virtual memory mapping in the virtual
|
||||
* fuck region
|
||||
*
|
||||
* @vfr: Virtual fuck region to unmap within
|
||||
* @vma: Virtual memory address to unmap
|
||||
* @ps: Pagesize of address to unmap
|
||||
*/
|
||||
status_t mu_mmu_unmap(
|
||||
struct mmu_vfr *vfr, uintptr_t vma,
|
||||
pagesize_t ps
|
||||
);
|
||||
|
||||
/*
|
||||
* Fork a VFR and clear out the lower half
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user