Kernel: Implement basic SpinLock

This commit is contained in:
2023-02-01 01:52:52 +02:00
parent 1945b716ad
commit 337569b0ca
8 changed files with 109 additions and 1 deletions
+17
View File
@@ -0,0 +1,17 @@
.global spinlock_lock_asm
spinlock_lock_asm:
lock; btsl $0, (%edi)
jnc .done
.retry:
pause
testl $1, (%edi)
jne .retry
lock; btsl $0, (%edi)
jc .retry
.done:
ret
.global spinlock_unlock_asm
spinlock_unlock_asm:
movl $0, (%edi)
ret
+1
View File
@@ -7,4 +7,5 @@ KERNEL_ARCH_OBJS= \
$(ARCHDIR)/boot.o \
$(ARCHDIR)/IDT.o \
$(ARCHDIR)/MMU.o \
$(ARCHDIR)/SpinLock.o \