kthread: formatting

This commit is contained in:
Mathieu Maret 2020-04-24 23:40:19 +02:00
parent c7feb31c22
commit 6cfc8e1c2f
1 changed files with 15 additions and 12 deletions

View File

@ -23,8 +23,9 @@ void kthreadExit()
return; return;
} }
int kthreadSetup(vaddr_t mainStack, size_t mainStackSize){ int kthreadSetup(vaddr_t mainStack, size_t mainStackSize)
struct kthread * current = (struct kthread *)malloc(sizeof(struct kthread)); {
struct kthread *current = (struct kthread *)malloc(sizeof(struct kthread));
strzcpy(current->name, "[KINIT]", KTHREAD_NAME_MAX_LENGTH); strzcpy(current->name, "[KINIT]", KTHREAD_NAME_MAX_LENGTH);
current->stackAddr = mainStack; current->stackAddr = mainStack;
current->stackSize = mainStackSize; current->stackSize = mainStackSize;
@ -34,27 +35,27 @@ int kthreadSetup(vaddr_t mainStack, size_t mainStackSize){
return 0; return 0;
} }
struct kthread *kthreadCreate(const char *name, cpu_kstate_function_arg1_t func, struct kthread *kthreadCreate(const char *name, cpu_kstate_function_arg1_t func, void *args)
void *args)
{ {
struct kthread *thread = (struct kthread *)malloc(sizeof(struct kthread)); struct kthread *thread = (struct kthread *)malloc(sizeof(struct kthread));
if (!thread) if (!thread)
return NULL; return NULL;
thread->stackAddr = (vaddr_t) malloc(KTHREAD_DEFAULT_STACK_SIZE); thread->stackAddr = (vaddr_t)malloc(KTHREAD_DEFAULT_STACK_SIZE);
printf("Alloc stask at 0x%x strcut at 0x%x\n", thread->stackAddr, thread);
thread->stackSize = KTHREAD_DEFAULT_STACK_SIZE; thread->stackSize = KTHREAD_DEFAULT_STACK_SIZE;
if(!thread->stackAddr) if (!thread->stackAddr)
goto free_mem; goto free_mem;
if(name) if (name)
strzcpy(thread->name, name, KTHREAD_NAME_MAX_LENGTH); strzcpy(thread->name, name, KTHREAD_NAME_MAX_LENGTH);
else else
strzcpy(thread->name, "[UNKNOW]", KTHREAD_NAME_MAX_LENGTH); strzcpy(thread->name, "[UNKNOW]", KTHREAD_NAME_MAX_LENGTH);
if(cpu_kstate_init(&thread->cpuState, (cpu_kstate_function_arg1_t *)func, (vaddr_t)args, if (cpu_kstate_init(&thread->cpuState, (cpu_kstate_function_arg1_t *)func,
thread->stackAddr, thread->stackSize, (vaddr_t)args, thread->stackAddr, thread->stackSize,
(cpu_kstate_function_arg1_t *)kthreadExit, 0)) (cpu_kstate_function_arg1_t *)kthreadExit, 0))
goto free_mem; goto free_mem;
list_add_tail(currentThread, thread); list_add_tail(currentThread, thread);
@ -65,14 +66,16 @@ free_mem:
return NULL; return NULL;
} }
void kthreadDelete(struct kthread *thread){ void kthreadDelete(struct kthread *thread)
{
list_delete(currentThread, thread); list_delete(currentThread, thread);
free((void *)thread->stackAddr); free((void *)thread->stackAddr);
free((void *)thread); free((void *)thread);
} }
struct kthread *kthreadSelectNext(){ struct kthread *kthreadSelectNext()
{
struct kthread *nextThread = currentThread->next; struct kthread *nextThread = currentThread->next;
return nextThread; return nextThread;
} }