X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/095a899a9749b85443e546b1062026747445658c..c166bd62fbb907f95f79f621e2a2fb4fdde08e01:/lunaix-os/arch/i386/mm/tlb.c diff --git a/lunaix-os/arch/i386/mm/tlb.c b/lunaix-os/arch/i386/mm/tlb.c new file mode 100644 index 0000000..2ee5d48 --- /dev/null +++ b/lunaix-os/arch/i386/mm/tlb.c @@ -0,0 +1,34 @@ +#include +#include + +void +tlb_flush_mm(struct proc_mm* mm, ptr_t addr) +{ + __tlb_flush_asid(procvm_asid(mm), addr); +} + +void +tlb_flush_mm_range(struct proc_mm* mm, ptr_t addr, unsigned int npages) +{ + tlb_flush_asid_range(procvm_asid(mm), addr, npages); +} + + +void +tlb_flush_vmr(struct mm_region* vmr, ptr_t va) +{ + __tlb_flush_asid(procvm_asid(vmr->proc_vms), va); +} + +void +tlb_flush_vmr_all(struct mm_region* vmr) +{ + tlb_flush_asid_range(procvm_asid(vmr->proc_vms), + vmr->start, leaf_count(vmr->end - vmr->start)); +} + +void +tlb_flush_vmr_range(struct mm_region* vmr, ptr_t addr, unsigned int npages) +{ + tlb_flush_asid_range(procvm_asid(vmr->proc_vms), addr, npages); +} \ No newline at end of file