add asm headers and linker scripts for aarch64
[lunaix-os.git] / lunaix-os / arch / generic / tlb.c
1 #include <asm/tlb.h>
2 #include <lunaix/process.h>
3
4 _default void
5 tlb_flush_mm(struct proc_mm* mm, ptr_t addr)
6 {
7     __tlb_flush_asid(procvm_asid(mm), addr);
8 }
9
10 _default void
11 tlb_flush_mm_range(struct proc_mm* mm, ptr_t addr, unsigned int npages)
12 {
13     tlb_flush_asid_range(procvm_asid(mm), addr, npages);
14 }
15
16
17 _default void
18 tlb_flush_vmr(struct mm_region* vmr, ptr_t va)
19 {
20     __tlb_flush_asid(procvm_asid(vmr->proc_vms), va);
21 }
22
23 _default void
24 tlb_flush_vmr_all(struct mm_region* vmr)
25 {
26     tlb_flush_asid_range(procvm_asid(vmr->proc_vms), 
27                             vmr->start, leaf_count(vmr->end - vmr->start));
28 }
29
30 _default void
31 tlb_flush_vmr_range(struct mm_region* vmr, ptr_t addr, unsigned int npages)
32 {
33     tlb_flush_asid_range(procvm_asid(vmr->proc_vms), addr, npages);
34 }