1 #ifndef __LUNAIX_ARCH_TLB_H
2 #define __LUNAIX_ARCH_TLB_H
4 #include <lunaix/compiler.h>
5 #include <lunaix/mm/procvm.h>
6 #include <lunaix/mm/physical.h>
9 * @brief Invalidate entries of all address spaces
16 tlb_flush_range(ptr_t addr, unsigned int npages);
19 * @brief Invalidate entries of an address space identified
27 tlb_flush_asid_range(unsigned int asid, ptr_t addr, unsigned int npages);
30 * @brief Invalidate an entry of kernel address spaces
37 tlb_flush_kernel(ptr_t addr);
40 * @brief Invalidate entries of kernel address spaces
47 tlb_flush_kernel_ranged(ptr_t addr, unsigned int npages);
50 * @brief Invalidate an entry within a process memory space
57 tlb_flush_mm(struct proc_mm* mm, ptr_t addr);
60 * @brief Invalidate entries within a process memory space
67 tlb_flush_mm_range(struct proc_mm* mm, ptr_t addr, unsigned int npages);
70 * @brief Invalidate an entry within a vm region
77 tlb_flush_vmr(struct mm_region* vmr, ptr_t va);
80 * @brief Invalidate all entries within a vm region
87 tlb_flush_vmr_all(struct mm_region* vmr);
90 * @brief Invalidate entries within a vm region
97 tlb_flush_vmr_range(struct mm_region* vmr, ptr_t addr, unsigned int npages);
99 #endif /* __LUNAIX_VMTLB_H */