diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kernel.h | 2 | ||||
| -rw-r--r-- | kernel/ringbuffer.c | 4 | ||||
| -rw-r--r-- | kernel/scheduler.c | 1 | ||||
| -rw-r--r-- | kernel/syscalls.c | 1 |
4 files changed, 5 insertions, 3 deletions
diff --git a/kernel/kernel.h b/kernel/kernel.h index 263477a..3771b52 100644 --- a/kernel/kernel.h +++ b/kernel/kernel.h @@ -32,7 +32,7 @@ REFERENCES //#define LOG_SYSCALLS // this will lock !!! #define HIDE_FIXME -//#define RINGBUFFER_WARN +#define LOG_RINGBUFFER_WARN //#define LOG_SCHEDULER #define FOOLOS_APIC_FREQ 60 // how many apic ticks per second diff --git a/kernel/ringbuffer.c b/kernel/ringbuffer.c index e3f5ce8..549bea6 100644 --- a/kernel/ringbuffer.c +++ b/kernel/ringbuffer.c @@ -41,7 +41,7 @@ bool ringbuffer_put(ringbuffer* f,uint8_t c) { if(ringbuffer_full(f)) { -#ifdef RINGBUFFER_WARN +#ifdef LOG_RINGBUFFER_WARN klog("ringbuffer is full!"); #endif return false; @@ -56,7 +56,7 @@ uint8_t ringbuffer_get(ringbuffer* f) { if(ringbuffer_empty(f)) { -#ifdef RINGBUFFER_WARN +#ifdef LOG_RINGBUFFER_WARN klog("ringbuffer is empty!"); #endif return 0; // indistinguishable from byte value 0x00. diff --git a/kernel/scheduler.c b/kernel/scheduler.c index 694d81c..9fe4f74 100644 --- a/kernel/scheduler.c +++ b/kernel/scheduler.c @@ -568,4 +568,5 @@ void task_exit(uint32_t pid) compositor_del_window(task_list[cpu][idx].vmem); vmem_free_space_dir(task_list[cpu][idx].vmem,task_list[cpu][idx].thread); + } diff --git a/kernel/syscalls.c b/kernel/syscalls.c index 9fc1a7f..083fbf1 100644 --- a/kernel/syscalls.c +++ b/kernel/syscalls.c @@ -489,6 +489,7 @@ uint32_t syscall_exit(int status, uint32_t none1, uint32_t none2,int pid) } task_exit(pid); + __asm__("int $0x81"); // please schedule us away once and for all return 0; } |
