Vhex-kernel/src/kernel/process/alloc.c

19 lines
378 B
C

#include <kernel/process.h>
// This function SHOULD NOT be called
// without atomic operation !!
pid_t process_alloc(process_t **process)
{
extern struct process_stack_s process_stack[PROCESS_MAX];
for (int i = 0 ; i < PROCESS_MAX ; i = i + 1)
{
if (process_stack[i].status == PROC_IDLE)
{
*process = &process_stack[i].process;
return (i);
}
}
return (-1);
}