1 #ifndef __LUNAIX_TLB_SHARED_H
2 #define __LUNAIX_TLB_SHARED_H
4 #include <lunaix/types.h>
5 #include <lunaix/mm/procvm.h>
8 * @brief Invalidate an entry of kernel address spaces
15 tlb_flush_kernel(ptr_t addr)
17 __tlb_flush_global(addr);
21 * @brief Invalidate entries of kernel address spaces
28 tlb_flush_kernel_ranged(ptr_t addr, unsigned int npages)
30 for (unsigned int i = 0; i < npages; i++)
32 tlb_flush_kernel(addr + i * PAGE_SIZE);
37 * @brief Invalidate an entry within a process memory space
44 tlb_flush_mm(struct proc_mm* mm, ptr_t addr);
47 * @brief Invalidate entries within a process memory space
54 tlb_flush_mm_range(struct proc_mm* mm, ptr_t addr, unsigned int npages);
57 * @brief Invalidate an entry within a vm region
64 tlb_flush_vmr(struct mm_region* vmr, ptr_t va);
67 * @brief Invalidate all entries within a vm region
74 tlb_flush_vmr_all(struct mm_region* vmr);
77 * @brief Invalidate entries within a vm region
84 tlb_flush_vmr_range(struct mm_region* vmr, ptr_t addr, unsigned int npages);
86 #endif /* __LUNAIX_TLB_SHARED_H */