diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/exceptions/svc.S | 2 | ||||
-rw-r--r-- | src/sys/schedule.c | 4 | ||||
-rw-r--r-- | src/util/mutex.c | 4 |
3 files changed, 6 insertions, 4 deletions
diff --git a/src/exceptions/svc.S b/src/exceptions/svc.S index 7e6a327..48d03a5 100644 --- a/src/exceptions/svc.S +++ b/src/exceptions/svc.S @@ -40,7 +40,7 @@ svc_000003: // Clean task stack strb r0, [r3, r1] // Free the thread after freeing the stack mov r0, r2 - bl free + bl kfree b svc_exit svc_exit: ldmfd sp!, {r0-r12,pc}^ diff --git a/src/sys/schedule.c b/src/sys/schedule.c index 70aebb9..acd6098 100644 --- a/src/sys/schedule.c +++ b/src/sys/schedule.c @@ -2,6 +2,7 @@ #include <globals.h> #include <graphics/lfb.h> #include <drivers/uart.h> +#include <lib/kmem.h> #include <sys/schedule.h> #include <util/mutex.h> @@ -71,7 +72,8 @@ void add_thread(void* pc, void* arg, unsigned char priority) { //void* sp = get_stack(); struct RStack r = get_stack(); - struct Thread* thread = (struct Thread*)malloca(sizeof(struct Thread), 4); + //struct Thread* thread = (struct Thread*)malloca(sizeof(struct Thread), 4); + struct Thread* thread = (struct Thread*)kmalloc(sizeof(struct Thread)); thread->pc = pc; if (r.sp) { thread->sp_base = r.idx; diff --git a/src/util/mutex.c b/src/util/mutex.c index 52173af..5583d09 100644 --- a/src/util/mutex.c +++ b/src/util/mutex.c @@ -1,6 +1,6 @@ #include <cpu/atomic/swap.h> #include <globals.h> -#include <lib/mem.h> +#include <lib/kmem.h> #include <sys/schedule.h> #include <util/mutex.h> @@ -45,7 +45,7 @@ unsigned char release_mutex(struct Mutex* m, unsigned long pid) struct Mutex* create_mutex(void* addr) { // Ensure aligned to word - Important for Atomic Swap - struct Mutex* m = (struct Mutex*)malloca(sizeof(struct Mutex), 4); + struct Mutex* m = (struct Mutex*)kmalloc(sizeof(struct Mutex)); m->addr = addr; m->pid = 0; return m; |