aboutsummaryrefslogtreecommitdiff
path: root/common/mem_regions.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-04-24 13:54:41 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-04-24 13:54:41 +0300
commitbe3696bd5853819212b1240751efd8d85f282c68 (patch)
treefd58279b90ce82c073c6f8d9a929ceb00bec5703 /common/mem_regions.c
parentd4c420689b1872f6fb22f421dfd27704ee94951a (diff)
downloadkmi-be3696bd5853819212b1240751efd8d85f282c68.tar.gz
kmi-be3696bd5853819212b1240751efd8d85f282c68.zip
start initial irq handling
+ Still lots todo, and I'm not entirely sure how I should handle program space switches (mainly since the kernel uses the process' stack, maybe it shouldn't?)
Diffstat (limited to 'common/mem_regions.c')
-rw-r--r--common/mem_regions.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/common/mem_regions.c b/common/mem_regions.c
index e994b0e..bbd9a3b 100644
--- a/common/mem_regions.c
+++ b/common/mem_regions.c
@@ -291,8 +291,11 @@ static vm_t __partition_region(struct mem_region_root *r, struct mem_region *m,
* fs server */
vm_t alloc_region(struct mem_region_root *r, size_t size, size_t *actual_size)
{
- *actual_size = align_up(size, BASE_PAGE_SIZE);
- size_t pages = __page(*actual_size);
+ size_t asize = align_up(size, BASE_PAGE_SIZE);
+ if (actual_size)
+ *actual_size = asize;
+
+ size_t pages = __page(asize);
/* find best fitting, alignment etc. */
size_t align = 0;