diff --git a/core/kthread.c b/core/kthread.c index fce5417..56b5934 100644 --- a/core/kthread.c +++ b/core/kthread.c @@ -23,8 +23,9 @@ void kthreadExit() return; } -int kthreadSetup(vaddr_t mainStack, size_t mainStackSize){ - struct kthread * current = (struct kthread *)malloc(sizeof(struct kthread)); +int kthreadSetup(vaddr_t mainStack, size_t mainStackSize) +{ + struct kthread *current = (struct kthread *)malloc(sizeof(struct kthread)); strzcpy(current->name, "[KINIT]", KTHREAD_NAME_MAX_LENGTH); current->stackAddr = mainStack; current->stackSize = mainStackSize; @@ -34,27 +35,27 @@ int kthreadSetup(vaddr_t mainStack, size_t mainStackSize){ return 0; } -struct kthread *kthreadCreate(const char *name, cpu_kstate_function_arg1_t func, - void *args) +struct kthread *kthreadCreate(const char *name, cpu_kstate_function_arg1_t func, void *args) { struct kthread *thread = (struct kthread *)malloc(sizeof(struct kthread)); if (!thread) 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; - if(!thread->stackAddr) + if (!thread->stackAddr) goto free_mem; - if(name) + if (name) strzcpy(thread->name, name, KTHREAD_NAME_MAX_LENGTH); else strzcpy(thread->name, "[UNKNOW]", KTHREAD_NAME_MAX_LENGTH); - if(cpu_kstate_init(&thread->cpuState, (cpu_kstate_function_arg1_t *)func, (vaddr_t)args, - thread->stackAddr, thread->stackSize, - (cpu_kstate_function_arg1_t *)kthreadExit, 0)) + if (cpu_kstate_init(&thread->cpuState, (cpu_kstate_function_arg1_t *)func, + (vaddr_t)args, thread->stackAddr, thread->stackSize, + (cpu_kstate_function_arg1_t *)kthreadExit, 0)) goto free_mem; list_add_tail(currentThread, thread); @@ -65,14 +66,16 @@ free_mem: return NULL; } -void kthreadDelete(struct kthread *thread){ +void kthreadDelete(struct kthread *thread) +{ list_delete(currentThread, thread); free((void *)thread->stackAddr); free((void *)thread); } -struct kthread *kthreadSelectNext(){ +struct kthread *kthreadSelectNext() +{ struct kthread *nextThread = currentThread->next; return nextThread; }