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

21 lines
453 B
C
Raw Normal View History

2019-12-29 16:39:30 +01:00
#include <kernel/process.h>
2020-01-05 10:35:44 +01:00
// This function SHOULD NOT be called
2019-12-29 16:39:30 +01:00
// without atomic operation !!
// TODO: dynamic allocation ?
pid_t process_alloc(struct process **process)
2019-12-29 16:39:30 +01:00
{
extern struct process_stack process_stack[PROCESS_MAX];
2019-12-29 16:39:30 +01:00
for (int i = 0 ; i < PROCESS_MAX ; i = i + 1)
{
if (process_stack[i].status == PROC_UNUSED)
2019-12-29 16:39:30 +01:00
{
process_stack[i].status = PROC_USED;
2019-12-29 16:39:30 +01:00
*process = &process_stack[i].process;
return (i);
}
}
return (-1);
}