summaryrefslogtreecommitdiffstats
path: root/api/syscall.h
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-09-18 15:46:18 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-09-18 15:46:18 -0400
commit6da70f16c584ee897a4ac4f51d016a615c84042b (patch)
treece5458f9daa9f055340bfafc85d5197ce9aa678a /api/syscall.h
parent13adbc58eb9f5eb5d6f0e4454bd005e9adbb47c8 (diff)
downloadjove-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.h31
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