diff options
author | Ian Moffett <ian@osmora.org> | 2025-09-17 18:04:28 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-09-17 18:12:05 -0400 |
commit | c46767abb634d600dc5cb1ef5922ec3459ae4cf8 (patch) | |
tree | 2dac8bea2acfee9a4621d08be2c62a4dc0ca7b8b /src/sys/include | |
parent | cf5672399eedbfc231fbf650e9bfb944f34e87a2 (diff) |
kern/amd64: proc: Add proc_kill() routine
Add a new function to kill processes and clean them up. They will then
be marked as EXITING and it is up to the parent to do the rest.
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/include')
-rw-r--r-- | src/sys/include/sys/proc.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/sys/include/sys/proc.h b/src/sys/include/sys/proc.h index 52afada..15b382d 100644 --- a/src/sys/include/sys/proc.h +++ b/src/sys/include/sys/proc.h @@ -32,6 +32,7 @@ #include <sys/types.h> #include <sys/cdefs.h> +#include <sys/param.h> #include <sys/queue.h> #include <machine/pcb.h> /* standard */ @@ -46,15 +47,19 @@ * on the system. * * @pid: Process ID + * @flags: State flags (see PROC_*) * @pcb: Process control block * @link: TAILQ link */ struct proc { pid_t pid; + uint32_t flags; struct md_pcb pcb; TAILQ_ENTRY(proc) link; }; +#define PROC_EXITING BIT(0) + /* * Initialize a process into a basic minimal * state @@ -68,6 +73,17 @@ struct proc { int proc_init(struct proc *procp, int flags); /* + * Kill a process with a specific status code + * + * @procp: Process to kill + * @status: Status code to send + * + * Returns zero on success, otherwise a less than + * zero value is returned on failure. + */ +int proc_kill(struct proc *procp, int status); + +/* * Initialize machine dependent state of a process * * @procp: New process data is written here @@ -79,6 +95,18 @@ int proc_init(struct proc *procp, int flags); int md_proc_init(struct proc *procp, int flags); /* + * Machine dependent kill routine which cleans up + * things that exist within the process control block + * + * @procp: Process to kill + * @flags: Optional flags to use + * + * Returns zero on success, otherwise less than zero + * value on failure. + */ +int md_proc_kill(struct proc *procp, int flags); + +/* * Set the instruction pointer field of a specific * process * |