diff options
| author | Jon Santmyer <jon@jonsantmyer.com> | 2026-09-18 15:46:18 -0400 |
|---|---|---|
| committer | Jon Santmyer <jon@jonsantmyer.com> | 2026-09-18 15:46:18 -0400 |
| commit | 6da70f16c584ee897a4ac4f51d016a615c84042b (patch) | |
| tree | ce5458f9daa9f055340bfafc85d5197ce9aa678a /api/syscall.h | |
| parent | 13adbc58eb9f5eb5d6f0e4454bd005e9adbb47c8 (diff) | |
| download | jove-kernel-6da70f16c584ee897a4ac4f51d016a615c84042b.tar.gz jove-kernel-6da70f16c584ee897a4ac4f51d016a615c84042b.tar.bz2 jove-kernel-6da70f16c584ee897a4ac4f51d016a615c84042b.zip | |
cleanup for real hw attempt
Diffstat (limited to 'api/syscall.h')
| -rw-r--r-- | api/syscall.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/api/syscall.h b/api/syscall.h index 8c35270..4bb2eb2 100644 --- a/api/syscall.h +++ b/api/syscall.h @@ -115,6 +115,37 @@ struct syscall_pagedir_map objpath_part_t untyped_path[]; }; +/**If a page frame is present at the virtual address, the kernel will: + * mark the page frame as not present. + * untype the page frame and move it to the none path. + * return 0. + * If a page frame is not present at the virtual address, the kernel will return EEMPTY. + * Follows the rules defined by struct syscall_pagedir_unmap + * */ +#define SYSCALL_PAGEDIR_UNMAP_FRAME 2 + +/**If a page table is present at the virtual address, one of two things will happen: + * If the page table has present entries, the kernel will return EBUSY. + * Otherwise, the kernel will: + * mark the page table as not present. + * untype the page frame and move it to the none path. + * return 0. + * If a page table is not present at the virtual address, the kernel will return EEMPTY. + * Follows the rules defined by the struct syscall_pagedir_unmap + * */ +#define SYSCALL_PAGEDIR_UNMAP_TABLE 3 + +/**If the virtual address is above JOVE_USER_MEMORY_LIMIT, the kernel will return EBADARG. + * If none_pathlen exceeds the length of the message, the kernel will return ETOOBIG. + * If none_path does not point to a JOVE_OBJ_NONE object, the kernel will return EBADOBJ. + * */ +struct syscall_pagedir_unmap +{ + uintptr_t virtual_address; + uint16_t none_pathlen; + objpath_part_t none_path[]; +}; + #define SYSCALL_VTT_WRITE 0 #endif |
