summaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-16 21:46:25 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-16 23:49:29 +0100
commit2bb4e7fb4c0f5895148bb32da64381b985c8dcef (patch)
tree1e1fa9a38dba75d0ca0b5fea85b63c8ca0b05a8f /kernel/include
parentbf20ce47a9d5dcad841e4549a68f4ec3db3c57de (diff)
code refactoring
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/apic.h13
-rw-r--r--kernel/include/atomic.h3
-rw-r--r--kernel/include/ioapic.h12
3 files changed, 24 insertions, 4 deletions
diff --git a/kernel/include/apic.h b/kernel/include/apic.h
index f795a49..700d6d1 100644
--- a/kernel/include/apic.h
+++ b/kernel/include/apic.h
@@ -1,6 +1,17 @@
#ifndef APIC_H
#define APIC_H
-void apic_eoi(void);
+#include <types.h>
+#include <atomic.h>
+
+uint8_t curr_cpu_apic_id(void);
+void init_ap_cpus(void);
+
+extern mutex_t cnt_lock;
+extern uint32_t cnt;
+extern uint32_t ioapic_addr;
+extern uint64_t lapic_addr;
+extern uint32_t numcores;
+extern uint8_t cpu_apic_ids[256];
#endif
diff --git a/kernel/include/atomic.h b/kernel/include/atomic.h
index 99f83fb..5ddc620 100644
--- a/kernel/include/atomic.h
+++ b/kernel/include/atomic.h
@@ -14,7 +14,4 @@ bool test_and_set(mutex_t mutex, bool value);
void lock(mutex_t mutex);
void unlock(mutex_t mutex);
-extern mutex_t cnt_lock;
-extern uint64_t cnt;
-
#endif
diff --git a/kernel/include/ioapic.h b/kernel/include/ioapic.h
new file mode 100644
index 0000000..1b2307a
--- /dev/null
+++ b/kernel/include/ioapic.h
@@ -0,0 +1,12 @@
+#ifndef IOAPIC_H
+#define IOAPIC_H
+
+#include <types.h>
+
+void ioapic_eoi(void);
+uint32_t ioapic_read(const uint8_t offset);
+void ioapic_write(const uint8_t offset, const uint32_t val);
+void ioapic_set_irq(uint8_t irq, uint64_t apic_id, uint8_t vector);
+void apic_remap_interrupts(void);
+
+#endif