diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-11-12 18:28:34 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-11-12 18:28:34 +0200 |
| commit | c56ab7a7e5dd5447b42fbaa010a0210038ea601a (patch) | |
| tree | 7d1865c78a8cb1d01e6003f8595a406bc155aa42 /common/tcb.c | |
| parent | 41ead8de77963bae907375c1bb115dad3315f46b (diff) | |
| download | kmi-c56ab7a7e5dd5447b42fbaa010a0210038ea601a.tar.gz kmi-c56ab7a7e5dd5447b42fbaa010a0210038ea601a.zip | |
slight optimization
Diffstat (limited to 'common/tcb.c')
| -rw-r--r-- | common/tcb.c | 16 |
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) |
