summaryrefslogtreecommitdiff
path: root/src/include/smp.h
diff options
context:
space:
mode:
authorBrett Weiland <brett_weiland@bpcspace.com>2021-09-12 12:53:33 -0500
committerBrett Weiland <brett_weiland@bpcspace.com>2021-09-12 12:55:07 -0500
commit2062e7070710989abf7271838efb99cbfbe511d0 (patch)
tree1d7b9a7dc04ff8c3f3e3a0f3c54988ecc3087074 /src/include/smp.h
parent1f71b9576db536af84155363e14fc49e92de2eef (diff)
SMP fixed for CPUs with defective cores
modified: README.md modified: src/.gdb_history modified: src/bootloader/enter_kernel.asm modified: src/bootloader/gdt.asm modified: src/debug/gdbinit.gdb modified: src/include/int.h modified: src/include/paging.h modified: src/include/smp.h modified: src/include/smp_sync.h modified: src/indigo_os modified: src/kernel/int.c modified: src/kernel/kernel.c modified: src/kernel/klog.c modified: src/kernel/madt.c modified: src/kernel/page.c modified: src/kernel/panic.c modified: src/kernel/printf.c modified: src/kernel/smp.c modified: src/kernel/smp_trampoline.asm modified: .gitignore deleted: src/.gdb_history
Diffstat (limited to 'src/include/smp.h')
-rw-r--r--src/include/smp.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/include/smp.h b/src/include/smp.h
index c4a675a..f4e3aa8 100644
--- a/src/include/smp.h
+++ b/src/include/smp.h
@@ -1,4 +1,26 @@
#ifndef SMP_INCLUDED
#define SMP_INCLUDED
+#include <stdint.h>
void smp_boot();
+extern uint8_t corecount;
+
+static inline void lock(uint8_t *lock) {
+ asm("mov al, 1\n"
+ "spinlock:\n"
+ "lock xchgb [%0], al\n"
+ "test al, al\n"
+ "pause\n"
+ "jnz spinlock\n"
+ ::"r"(lock):"al");
+}
+
+static inline void unlock(uint8_t *lock) {
+ asm("lock andb [%0], 0"::"r"(lock));
+}
+
+static inline void waitup(uint8_t *loto) {
+}
+
+#define CREATE_LOTO(name)
+
#endif