diff options
author | Ian Moffett <ian@osmora.org> | 2025-10-10 18:49:43 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-10-10 18:49:43 -0400 |
commit | 2f8da5a5eb726f3c05b8fca19e82928d8acb147d (patch) | |
tree | 59bcbbddb3dbf86879821e40fe4d65693a5e2ddc /src/sys/include | |
parent | fe317f8e7cb245cc36c0c6ac8fdef5d54168e978 (diff) |
kern: proc: Add initial penv block support
This commit introduces the initial support for the process environment
block and implements argv and argc.
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/include')
-rw-r--r-- | src/sys/include/sys/limits.h | 2 | ||||
-rw-r--r-- | src/sys/include/sys/proc.h | 16 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/sys/include/sys/limits.h b/src/sys/include/sys/limits.h index 5e32233..180d3fc 100644 --- a/src/sys/include/sys/limits.h +++ b/src/sys/include/sys/limits.h @@ -37,5 +37,7 @@ #define SC_MAX 64 /* Max syscalls */ #define SCWIN_MAX 2 /* Max syscall windows */ #define FD_MAX 256 /* Max file descriptors */ +#define NARG_MAX 16 /* Max arguments */ +#define ARG_LEN 64 /* Max length per argument */ #endif /* !_SYS_LIMITS_H_ */ diff --git a/src/sys/include/sys/proc.h b/src/sys/include/sys/proc.h index ea89d4c..5bffc3e 100644 --- a/src/sys/include/sys/proc.h +++ b/src/sys/include/sys/proc.h @@ -35,12 +35,15 @@ #include <sys/cdefs.h> #include <sys/param.h> #include <sys/queue.h> +#if defined(_KERNEL) +#include <lib/ptrbox.h> #include <os/mac.h> #include <os/signal.h> #include <os/spinlock.h> #include <os/filedesc.h> #include <vm/vm.h> #include <machine/pcb.h> /* standard */ +#endif /* _KERNEL */ /* * The stack starts here and grows down @@ -48,18 +51,20 @@ #define STACK_TOP 0xBFFFFFFF #define STACK_LEN 4096 -#if defined(_KERNEL) - /* * Process environment block, used to store arguments * and other information. * - * @pid: PID of the process that owns this block + * @argv: Argument vector + * @argc: Argument count */ struct penv_blk { - pid_t pid; + char **argv; + uint16_t argc; }; +#if defined(_KERNEL) + /* * A process describes a running program image * on the system. @@ -81,7 +86,8 @@ struct proc { struct md_pcb pcb; struct syscall_domain scdom; struct filedesc *fdtab[FD_MAX]; - struct penv_blk envblk; + struct penv_blk *envblk; + struct ptrbox *envblk_box; mac_level_t level; struct spinlock maplist_lock; sigtab_t sigtab; |