From: Matthias Kruk Date: Fri, 27 Sep 2019 06:06:12 +0000 (+0900) Subject: Move process.h definitions into a kernel-wide header file; add entry argument to... X-Git-Url: https://git.corax.cc/?a=commitdiff_plain;h=ce7a6d105cfcc3d028b777a5a466b22921a2722b;p=corax Move process.h definitions into a kernel-wide header file; add entry argument to process_create() --- diff --git a/include/corax/process.h b/include/corax/process.h new file mode 100644 index 0000000..1f5bdad --- /dev/null +++ b/include/corax/process.h @@ -0,0 +1,8 @@ +#ifndef __CORAX_PROCESS_H +#define __CORAX_PROCESS_H + +struct process { + +}; + +#endif /* __CORAX_PROCESS_H */ diff --git a/kernel/arch/process.c b/kernel/arch/process.c index f3716a1..6b53f48 100644 --- a/kernel/arch/process.c +++ b/kernel/arch/process.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "paging.h" #include "cpu.h" @@ -12,16 +13,7 @@ struct process { u32_t p_privl; }; -void foo(void) -{ - for(;;); - - return; -} - -extern int _pg_dir_vpxlate(pg_dir_t*, u32_t, u32_t*); - -int process_create(process_t **dst, u32_t ppl) +int process_create(process_t **dst, u32_t ppl, void *entry) { int ret_val; process_t *proc; @@ -53,7 +45,7 @@ int process_create(process_t **dst, u32_t ppl) proc->p_privl = ppl; - task_prepare(proc->p_tasks, (u32_t)pdbr, (u32_t)foo, + task_prepare(proc->p_tasks, (u32_t)pdbr, (u32_t)entry, (u32_t)kstack, (u32_t)ustack + PAGE_SIZE, ppl); proc->p_tasks->t_sp = (u32_t)(CONFIG_KERNEL_STACK_BASE + diff --git a/kernel/include/arch.h b/kernel/include/arch.h index 7503a2b..dacad3c 100644 --- a/kernel/include/arch.h +++ b/kernel/include/arch.h @@ -21,8 +21,6 @@ #include -typedef struct process process_t; - struct task { u32_t t_sp; u32_t t_pgdir; @@ -36,8 +34,6 @@ u64_t cpu_timestamp(void); u32_t cpu_set_pstate(int pstate); -int process_create(process_t**, u32_t); - int task_prepare(struct task*, u32_t cr3, u32_t eip, u32_t esp0, u32_t esp, u32_t priv); int task_switch(struct task*);