diff options
Diffstat (limited to 'kernel/spinlock.c')
| -rw-r--r-- | kernel/spinlock.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/kernel/spinlock.c b/kernel/spinlock.c index 33ed178..2c6d161 100644 --- a/kernel/spinlock.c +++ b/kernel/spinlock.c @@ -1,23 +1,23 @@ #define FOOLOS_MODULE_NAME "spinlock" #include "lib/logger/log.h" -#include "lib/int/stdint.h" -#include "x86.h" +#include "spinlock.h" // https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html +#define NUMBER_SPINLOCKS 16 -typedef uint8_t spinlock; -volatile spinlock spinlocks[16]; +spinlock spinlocks[NUMBER_SPINLOCKS]; - -void init_spinlocks() +void check_spinlocks() { - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Initializing spinlocks at 0x%08X ",spinlocks); - for(int i=0;i<16;i++)spinlocks[i]=0; + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Spinlocks at 0x%08X ",spinlocks); + for(int i=0;i<NUMBER_SPINLOCKS;i++) + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"%d",spinlocks[i]); } -volatile void lock_spin(int i) + +void lock_spin(spinlock i) { spinlock *addr=spinlocks+i; @@ -26,7 +26,7 @@ volatile void lock_spin(int i) while(x86_xchg(addr,1)); } -void lock_release(int i) +void lock_release(spinlock i) { // log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"unlocking %d",i); |
