summaryrefslogtreecommitdiff
path: root/kernel/smp.h
blob: e99c77ba57fcefba0e72dcd83c1f32f5d8f52060 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef SMP_H
#define SMP_H

#include "kernel.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;

void apicEOI();
uint32_t apicID();
bool acpi_find(smp_processors *procdata);
void smp_start_aps(smp_processors *pros);

#endif