From 426da8be0db33405b0cfe53108b65040623972f0 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sat, 11 Jun 2022 19:08:18 +0300 Subject: continue documentation --- include/arch/proc.h | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'include/arch/proc.h') diff --git a/include/arch/proc.h b/include/arch/proc.h index 7c6ad5b..e27fbf6 100644 --- a/include/arch/proc.h +++ b/include/arch/proc.h @@ -12,10 +12,45 @@ #include "../../arch/riscv32/include/proc.h" #endif +/** + * Set address to jump to when returning to userspace. + * + * @param r Address to jump to. + * @return \ref OK. + */ stat_t set_return(vm_t r); + +/** + * Attach IPC data to load into argument registers when returning to userspace. + * + * @param t Thread that will run after return. + * @param pid Process ID. + * @param tid Thread ID. + * @return \ref OK. + */ stat_t set_ipc(struct tcb *t, id_t pid, id_t tid); -/*\todo: should this be in arch/tcb.h or something? */ -stat_t set_thread(struct tcb *t, vm_t stack); + +/** \todo Should these be in arch/tcb.h or something? */ +/** \todo Should these be void? */ + +/** + * Attach thread stack and thread local storage when returning to userspace. + * + * Their info should already be stored in \c t, and this function just + * actualizes the information. + * + * @param t Thread that will run after return. + * @return \ref OK. + */ +stat_t set_thread(struct tcb *t); + +/** + * Run \c init program. + * + * @param t Thread that \c init is attached to. + * @param fdt Pointer to FDT that is passed to \c init. + * @return \ref ERR_ADDR, as it shouldn't return- + */ stat_t run_init(struct tcb *t, void *fdt); #endif /* APOS_ARCH_PROC_H */ -- cgit v1.3