aboutsummaryrefslogtreecommitdiff
path: root/common/tcb.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-11-12 18:28:34 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2022-11-12 18:28:34 +0200
commitc56ab7a7e5dd5447b42fbaa010a0210038ea601a (patch)
tree7d1865c78a8cb1d01e6003f8595a406bc155aa42 /common/tcb.c
parent41ead8de77963bae907375c1bb115dad3315f46b (diff)
downloadkmi-c56ab7a7e5dd5447b42fbaa010a0210038ea601a.tar.gz
kmi-c56ab7a7e5dd5447b42fbaa010a0210038ea601a.zip
slight optimization
Diffstat (limited to 'common/tcb.c')
-rw-r--r--common/tcb.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/common/tcb.c b/common/tcb.c
index aa66d3f..daaae4d 100644
--- a/common/tcb.c
+++ b/common/tcb.c
@@ -387,12 +387,8 @@ static void mark_rpc_inaccessible(struct tcb *t, vm_t start, vm_t end)
size_t page_size = BASE_PAGE_SIZE;
size_t size = end - start;
size_t pages = size / page_size;
- while (pages--) {
- /** @todo something like mod_vpage_flags could be faster */
- vmflags_t flags; pm_t paddr;
- stat_vpage(t->rpc.vmem, start, &paddr, NULL, &flags);
- mod_vpage(t->rpc.vmem, start, paddr, clear_bits(flags, VM_U));
- }
+ while (pages--)
+ clear_vpage_flags(t->rpc.vmem, start + pages * page_size, VM_U);
}
/**
@@ -407,12 +403,8 @@ static void mark_rpc_accessible(struct tcb *t, vm_t start, vm_t end)
size_t page_size = BASE_PAGE_SIZE;
size_t size = end - start;
size_t pages = size / page_size;
- while (pages--) {
- /** @todo something like mod_vpage_flags could be faster */
- vmflags_t flags; pm_t paddr;
- stat_vpage(t->rpc.vmem, start, &paddr, NULL, &flags);
- mod_vpage(t->rpc.vmem, start, paddr, set_bits(flags, VM_U));
- }
+ while (pages--)
+ set_vpage_flags(t->rpc.vmem, start + pages * page_size, VM_U);
}
void save_context(struct tcb *t)