diff options
Diffstat (limited to 'kernel/src/scheduler')
| -rw-r--r-- | kernel/src/scheduler/ap_startup.c | 11 | ||||
| -rw-r--r-- | kernel/src/scheduler/atomic.c | 11 | ||||
| -rw-r--r-- | kernel/src/scheduler/scheduler.c | 1 |
3 files changed, 13 insertions, 10 deletions
diff --git a/kernel/src/scheduler/ap_startup.c b/kernel/src/scheduler/ap_startup.c index f4a2055..92fc51c 100644 --- a/kernel/src/scheduler/ap_startup.c +++ b/kernel/src/scheduler/ap_startup.c @@ -5,13 +5,14 @@ #include <gdt.h> #include <paging.h> -void ap_startup(void) { +void ap_startup(void) +{ load_idt(&idt_pointer); load_gdt(&gdt_pointer); load_pt_lvl4(page_table_lvl4); - while (bspdone) { - __asm__ __volatile__ ("pause;"); + while (!bspdone) { + __asm__ __volatile__("pause;"); } printf("curr_cpu_apic_id: 0x%x\n", curr_cpu_apic_id()); @@ -19,7 +20,7 @@ void ap_startup(void) { ap_cnt++; unlock(cnt_lock); - for(;;) { - __asm__ __volatile__ ("hlt;"); + for (;;) { + __asm__ __volatile__("hlt;"); } } diff --git a/kernel/src/scheduler/atomic.c b/kernel/src/scheduler/atomic.c index c466f0b..d5ae02f 100644 --- a/kernel/src/scheduler/atomic.c +++ b/kernel/src/scheduler/atomic.c @@ -3,22 +3,25 @@ #include <libk/stdio.h> #include <heap.h> -void init_mutex(mutex_t* mutex) +void init_mutex(mutex_t *mutex) { - mutex->addr = (uint64_t*)kalloc(sizeof(uint64_t)); + mutex->addr = (uint64_t *)kalloc(sizeof(uint64_t)); *(mutex->addr) = 0; } bool test_and_set(mutex_t mutex, bool value) { bool rax; - __asm__ __volatile__ ("lock xchg %%rax, (%%rbx);" : "=a"(rax) : "b"(mutex.addr), "a"(value)); + __asm__ __volatile__("lock xchg %%rax, (%%rbx);" + : "=a"(rax) + : "b"(mutex.addr), "a"(value)); return rax; } void lock(mutex_t mutex) { - while (test_and_set(mutex, 1)) ; + while (test_and_set(mutex, 1)) + ; } void unlock(mutex_t mutex) diff --git a/kernel/src/scheduler/scheduler.c b/kernel/src/scheduler/scheduler.c index 000d20c..b8f3dab 100644 --- a/kernel/src/scheduler/scheduler.c +++ b/kernel/src/scheduler/scheduler.c @@ -3,5 +3,4 @@ void schedule(void) { - } |
