summaryrefslogtreecommitdiffstats
path: root/proc
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-10-03 21:32:29 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-10-03 21:32:29 -0400
commit465cba0c00bfc5d89bf10ce353b0adf40bdc098d (patch)
tree914fd856946800199e2191dda1659ba9ccd55978 /proc
parent153ac5fa0b8c4d178bf7590f0344612c6c3eaa70 (diff)
downloadjove-kernel-465cba0c00bfc5d89bf10ce353b0adf40bdc098d.tar.gz
jove-kernel-465cba0c00bfc5d89bf10ce353b0adf40bdc098d.tar.bz2
jove-kernel-465cba0c00bfc5d89bf10ce353b0adf40bdc098d.zip
unmap message object used for syscalls
Diffstat (limited to 'proc')
-rw-r--r--proc/process.c18
-rw-r--r--proc/process.h10
2 files changed, 26 insertions, 2 deletions
diff --git a/proc/process.c b/proc/process.c
index 3687c8a..55737f6 100644
--- a/proc/process.c
+++ b/proc/process.c
@@ -6,3 +6,21 @@ process_current(void)
{
return processor_pcb(((processor_t*)processor_current()));
}
+
+pid_t
+pcb_getpid(pcb_t *pcb)
+{
+ return ((struct pcb_expected_header*)pcb)->pid;
+}
+
+jove_obj_t*
+pcb_rootdir(pcb_t *pcb)
+{
+ return ((struct pcb_expected_header*)pcb)->rootdir;
+}
+
+jove_obj_t*
+pcb_pagedir(pcb_t *pcb)
+{
+ return ((struct pcb_expected_header*)pcb)->pagedir;
+}
diff --git a/proc/process.h b/proc/process.h
index 5099476..2757f6f 100644
--- a/proc/process.h
+++ b/proc/process.h
@@ -21,6 +21,10 @@ struct pcb_expected_header
{
struct rbtree_node tree_node;
struct process_control_block *sched_next;
+
+ pid_t pid;
+ jove_obj_t *rootdir;
+ jove_obj_t *pagedir;
};
typedef struct process_control_block pcb_t;
@@ -29,10 +33,12 @@ jove_owned_obj_t *process_current(void);
void pcb_new(pcb_t *pcb);
/*Returns the process ID of the passed PCB. */
-pid_t pcb_pid(pcb_t *pcb);
+pid_t pcb_getpid(pcb_t *pcb);
/*Returns the root kernel object directory of this PCB. */
jove_obj_t *pcb_rootdir(pcb_t *pcb);
-extern pcb_t *_init_pcb;
+jove_obj_t *pcb_pagedir(pcb_t *pcb);
+
+extern pcb_t *pcb_tree;
#endif