vm: allow pages to be mapped as no-cache
This commit is contained in:
@@ -71,6 +71,10 @@ static pte_t make_pte(pfn_t pfn, enum vm_prot prot, enum page_size size)
|
||||
v |= PTE_RW;
|
||||
}
|
||||
|
||||
if (prot & VM_PROT_NOCACHE) {
|
||||
v |= PTE_NOCACHE;
|
||||
}
|
||||
|
||||
if (!(prot & VM_PROT_EXEC)) {
|
||||
v |= PTE_NX;
|
||||
}
|
||||
@@ -267,7 +271,7 @@ void pmap_bootstrap(void)
|
||||
do_pmap_add(kernel_pmap,
|
||||
(void *)(vbase + i),
|
||||
PFN(i),
|
||||
VM_PROT_READ | VM_PROT_WRITE | VM_PROT_SVR, hugepage);
|
||||
VM_PROT_READ | VM_PROT_WRITE | VM_PROT_SVR | VM_PROT_NOCACHE, hugepage);
|
||||
}
|
||||
|
||||
pmap_switch(kernel_pmap);
|
||||
|
||||
@@ -47,6 +47,7 @@ enum vm_prot {
|
||||
VM_PROT_EXEC = 0x04u,
|
||||
VM_PROT_USER = 0x08u,
|
||||
VM_PROT_SVR = 0x10u,
|
||||
VM_PROT_NOCACHE = 0x20u,
|
||||
};
|
||||
|
||||
enum vm_flags {
|
||||
|
||||
Reference in New Issue
Block a user