diff options
| author | Miguel <m.i@gmx.at> | 2018-09-09 17:28:59 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-09 17:28:59 +0200 |
| commit | 4cda542d863839c5b0e026ccee297ca5ff3dd9cd (patch) | |
| tree | 7b8f7734f8f982df82b5c784386232e35a7ced44 /kernel/smp.h | |
| parent | 9a4b35fd5a32490f8f15b48f978e7b1fbfdceb2a (diff) | |
switched to apic/ioapic finally
Diffstat (limited to 'kernel/smp.h')
| -rw-r--r-- | kernel/smp.h | 28 |
1 files changed, 10 insertions, 18 deletions
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 <stdbool.h> -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 <stdint.h> 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 |
