summaryrefslogtreecommitdiffstats
path: root/hal
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-10-13 22:31:43 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-10-13 22:31:43 -0400
commit548506392b789f58b1556a6ffca917441e1d89fd (patch)
tree58e4b747446ea64e7951e523353f58510b3a8b2f /hal
parentc5e3bb7917689bc9ed54fee23a143144fade802d (diff)
downloadjove-kernel-548506392b789f58b1556a6ffca917441e1d89fd.tar.gz
jove-kernel-548506392b789f58b1556a6ffca917441e1d89fd.tar.bz2
jove-kernel-548506392b789f58b1556a6ffca917441e1d89fd.zip
ipc functions. work on process spawning
Diffstat (limited to 'hal')
-rw-r--r--hal/memory.h21
-rw-r--r--hal/obj.h2
2 files changed, 22 insertions, 1 deletions
diff --git a/hal/memory.h b/hal/memory.h
index 1aec7e9..9e799c0 100644
--- a/hal/memory.h
+++ b/hal/memory.h
@@ -34,6 +34,20 @@ typedef struct jove_obj_untyped
#define JOVE_UNTYPED_MINSIZE 0x10
#define JOVE_SMHEM_MAXPAGES 0xFFF
+enum {
+ JOVE_MAPPING_TYPE_UNTYPED = 0,
+ JOVE_MAPPING_TYPE_SHMEM,
+ JOVE_MAPPING_TYPE_MESSAGE
+};
+
+extern virtaddr_t __syscall_stack_guard;
+extern virtaddr_t __syscall_stack;
+extern virtaddr_t __interrupt_stack_guard;
+extern virtaddr_t __interrupt_stack;
+
+extern virtaddr_t *__syscall_stack_mapping;
+extern virtaddr_t *__interrupt_stack_mapping;
+
void mem_setup_regions(void);
physaddr_t phys_fromvirt(virtaddr_t virt);
@@ -65,8 +79,15 @@ void pagedir_invlpg(virtaddr_t vptr);
virtaddr_t *pagedir_get_mapping(
jove_owned_obj_t *pagedir, virtaddr_t vptr);
+size_t pagedir_mapping_get_pfn(virtaddr_t *mapping);
virtaddr_t pagedir_ident_from_mapping(virtaddr_t *mapping);
+bool pagedir_mapping_is_present(virtaddr_t *mapping);
+
+void pagedir_mapping_set_pfn(virtaddr_t *mapping, size_t pfn);
void pagedir_mapping_set_present(virtaddr_t *mapping, bool present);
+void pagedir_mapping_set_writeable(virtaddr_t *mapping, bool rw);
+void pagedir_mapping_set_user(virtaddr_t *mapping, bool user);
+void pagedir_mapping_set_type(virtaddr_t *mapping, int type);
int pagedir_map_untyped_frame(
jove_owned_obj_t *tgt, jove_perm_obj_t *untyped_obj,
diff --git a/hal/obj.h b/hal/obj.h
index 61ba968..befbc24 100644
--- a/hal/obj.h
+++ b/hal/obj.h
@@ -12,7 +12,7 @@
typedef struct jove_objdir
{
- jove_obj_t entries[JOVE_OBJDIR_ENTRIES];
+ jove_obj_t entries[OBJDIR_ENTRIES];
} jove_objdir_t;
/*Locks the mutex of the kernel object provided. Returns the locked version. */