diff options
Diffstat (limited to 'kernel/include')
| -rw-r--r-- | kernel/include/apic.h | 13 | ||||
| -rw-r--r-- | kernel/include/atomic.h | 3 | ||||
| -rw-r--r-- | kernel/include/ioapic.h | 12 |
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 |
