From 4cda542d863839c5b0e026ccee297ca5ff3dd9cd Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 9 Sep 2018 17:28:59 +0200 Subject: switched to apic/ioapic finally --- kernel/smp.h | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) (limited to 'kernel/smp.h') diff --git a/kernel/smp.h b/kernel/smp.h index e99c77b..7e4c66a 100644 --- a/kernel/smp.h +++ b/kernel/smp.h @@ -1,29 +1,21 @@ +// http://www.intel.com/content/dam/doc/specification-update/64-architecture-x2apic-specification.pdf +// http://download.intel.com/design/chipsets/datashts/29056601.pdf +// http://www.scs.stanford.edu/05au-cs240c/lab/ia32/IA32-3.pdf +// https://wiki.osdev.org/Symmetric_Multiprocessing +// https://wiki.osdev.org/APIC_timer +// #ifndef SMP_H #define SMP_H #include "kernel.h" +#include "acpi.h" #include -typedef struct -{ - - uint8_t boot; //which processor in array is bsp - // (boot strap processor) - - uint8_t processors; // total number of usable processors - - uint32_t local_apic_address;// same for every processor - uint32_t io_apic_address; - - uint32_t local_apic_id[SMP_MAX_PROC]; // unique for every processor - - uint32_t flags; - -}smp_processors; +#include void apicEOI(); uint32_t apicID(); -bool acpi_find(smp_processors *procdata); -void smp_start_aps(smp_processors *pros); +void apicIPI(uint8_t dest, uint8_t number); +void smp_start_aps(acpi_information *pros); #endif -- cgit v1.2.3