From 465cba0c00bfc5d89bf10ce353b0adf40bdc098d Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sat, 3 Oct 2026 21:32:29 -0400 Subject: unmap message object used for syscalls --- proc/process.c | 18 ++++++++++++++++++ proc/process.h | 10 ++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'proc') 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 -- cgit v1.2.3