Boot framework rework (#45)
[lunaix-os.git] / lunaix-os / arch / x86 / includes / sys / mm / memory.h
1 #ifndef __LUNAIX_ARCH_MEMORY_H
2 #define __LUNAIX_ARCH_MEMORY_H
3
4 #include <lunaix/mm/pagetable.h>
5 #include <lunaix/mann_flags.h>
6
7 static inline pte_t
8 translate_vmr_prot(unsigned int vmr_prot, pte_t pte)
9 {
10     pte = pte_mkuser(pte);
11
12     if ((vmr_prot & PROT_WRITE)) {
13         pte = pte_mkwritable(pte);
14     }
15
16     if ((vmr_prot & PROT_EXEC)) {
17         pte = pte_mkexec(pte);
18     }
19     else {
20         pte = pte_mknonexec(pte);
21     }
22
23     return pte;
24 }
25
26
27 #endif /* __LUNAIX_ARCH_MEMORY_H */