Karg  v0.2.0
The kernel of CargOS
proc.c File Reference
#include <proc.h>
#include <drivers/tty.h>
#include <errno.h>
#include <mm/page_alloc.h>
#include <mm/vm.h>
#include <utils/mem.h>
#include <utils/str.h>

Functions

void ctx_sw (usize **old_sp, usize **new_sp)
 
void proc_fill_stack (proc_t *proc, void *entry, usize usp, i32 argc, char **argv)
 
void trampoline (void)
 
i32 proc_init (proc_t *proc, void *entry, u32 flags, proc_t *parent, i32 argc, const char **argv, void *page_table)
 
void proc_deinit (proc_t *proc)
 
void proc_ctx_sw (proc_t *old_proc, proc_t *new_proc)
 
void proc_adopt (proc_t *new_parent, proc_t *proc)
 
bool proc_is_bad_fd (const proc_t *proc, i32 fd)
 

Variables

proc_tproc_table [PROC_TABLE_SIZE]
 

Function Documentation

◆ ctx_sw()

void ctx_sw ( usize **  old_sp,
usize **  new_sp 
)

◆ proc_adopt()

void proc_adopt ( proc_t new_parent,
proc_t proc 
)

◆ proc_ctx_sw()

void proc_ctx_sw ( proc_t old_proc,
proc_t new_proc 
)

◆ proc_deinit()

void proc_deinit ( proc_t proc)

◆ proc_fill_stack()

void proc_fill_stack ( proc_t proc,
void *  entry,
usize  usp,
i32  argc,
char **  argv 
)

◆ proc_init()

i32 proc_init ( proc_t proc,
void *  entry,
u32  flags,
proc_t parent,
i32  argc,
const char **  argv,
void *  page_table 
)

◆ proc_is_bad_fd()

bool proc_is_bad_fd ( const proc_t proc,
i32  fd 
)

◆ trampoline()

void trampoline ( void  )

Variable Documentation

◆ proc_table

proc_t* proc_table[PROC_TABLE_SIZE]