git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Boot framework rework (#45)
[lunaix-os.git]
/
lunaix-os
/
arch
/
x86
/
includes
/
sys
/
mm
/
memory.h
diff --git
a/lunaix-os/arch/x86/includes/sys/mm/memory.h
b/lunaix-os/arch/x86/includes/sys/mm/memory.h
index cf9f91d747d935ec36007b0dccf44f14bb0f9c20..abccba9361b89aaa66691cea51e68a8bc430ff20 100644
(file)
--- a/
lunaix-os/arch/x86/includes/sys/mm/memory.h
+++ b/
lunaix-os/arch/x86/includes/sys/mm/memory.h
@@
-4,23
+4,23
@@
#include <lunaix/mm/pagetable.h>
#include <lunaix/mann_flags.h>
#include <lunaix/mm/pagetable.h>
#include <lunaix/mann_flags.h>
-static inline pte_
attr_
t
-translate_vmr_prot(unsigned int vmr_prot)
+static inline pte_t
+translate_vmr_prot(unsigned int vmr_prot
, pte_t pte
)
{
{
- pte_attr_t _pte_prot = _PTE_U;
- if ((vmr_prot & PROT_READ)) {
- _pte_prot |= _PTE_R;
- }
+ pte = pte_mkuser(pte);
if ((vmr_prot & PROT_WRITE)) {
if ((vmr_prot & PROT_WRITE)) {
-
_pte_prot |= _PTE_W
;
+
pte = pte_mkwritable(pte)
;
}
}
- if (!(vmr_prot & PROT_EXEC)) {
- _pte_prot |= _PTE_NX;
+ if ((vmr_prot & PROT_EXEC)) {
+ pte = pte_mkexec(pte);
+ }
+ else {
+ pte = pte_mknonexec(pte);
}
}
- return
_pte_prot
;
+ return
pte
;
}
}