diff options
| author | Jon Santmyer <jon@jonsantmyer.com> | 2026-10-07 17:37:26 -0400 |
|---|---|---|
| committer | Jon Santmyer <jon@jonsantmyer.com> | 2026-10-07 17:37:26 -0400 |
| commit | 434ddcd907832b1febc7d70e4faa52109c7eb3bd (patch) | |
| tree | 00c1ade91f9806d831f10e6006732b294e73f613 /api/syscall.h | |
| parent | 8d48bbd9746228b63bafa5f92b621998d7d8f3d3 (diff) | |
| download | jove-kernel-434ddcd907832b1febc7d70e4faa52109c7eb3bd.tar.gz jove-kernel-434ddcd907832b1febc7d70e4faa52109c7eb3bd.tar.bz2 jove-kernel-434ddcd907832b1febc7d70e4faa52109c7eb3bd.zip | |
add memory region object for better memory managment
Diffstat (limited to 'api/syscall.h')
| -rw-r--r-- | api/syscall.h | 43 |
1 files changed, 43 insertions, 0 deletions
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. * */ |
