From 434ddcd907832b1febc7d70e4faa52109c7eb3bd Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Wed, 7 Oct 2026 17:37:26 -0400 Subject: add memory region object for better memory managment --- api/syscall.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'api/syscall.h') diff --git a/api/syscall.h b/api/syscall.h index 2502621..3f9d115 100644 --- a/api/syscall.h +++ b/api/syscall.h @@ -124,6 +124,49 @@ struct syscall_pagedir_unmap objpath_part_t none_path[]; }; +/**JOVE_OBJ_REGION syscalls. + * */ + +enum +{ + _SYSCALL_REGION_NONE = 0, + SYSCALL_REGION_ADDRESS, + SYSCALL_REGION_TOTAL_PAGES, + SYSCALL_REGION_FREE_PAGES, + SYSCALL_REGION_ALLOC, + SYSCALL_REGION_SPLIT, + SYSCALL_REGION_RELEASE, +}; + +#define SYSCALL_PERM_REGION_GETTERS (JOVE_PERM_READ) +#define SYSCALL_PERM_REGION_ALLOC (JOVE_PERM_WRITE) +#define SYSCALL_PERM_REGION_SPLIT (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) +#define SYSCALL_PERM_REGION_MERGE (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) + +#define SYSCALL_PERM_REGION_ALLOC_TGT (JOVE_PERM_MUTATE) +#define SYSCALL_PERM_REGION_SPLIT_TGT (JOVE_PERM_MUTATE) +#define SYSCALL_PERM_REGION_MERGE_TGT (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) + +struct syscall_region_alloc +{ + size_t alloc_pages; + objpath_part_t dest_pathlen; + objpath_part_t dest_path[]; +}; + +struct syscall_region_split +{ + size_t split_pages; + objpath_part_t dest_pathlen; + objpath_part_t dest_path[]; +}; + +struct syscall_region_merge +{ + objpath_part_t dest_pathlen; + objpath_part_t dest_path[]; +}; + /**JOVE_OBJ_PCB syscalls. * */ -- cgit v1.2.3