Warning, cross-references for /kernel/include/smp/smp.h need to be fixed.
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef _SMP_H_
0019 #define _SMP_H_
0020
0021 #include "types.h"
0022 #include "kernel.h"
0023
0024 #define MP_BOOTADDR 0x70000
0025
0026 #ifndef __ASSEMBLER__
0027
0028 typedef struct
0029 {
0030 uint8 id;
0031 uint32 address, startGSI, numGSIs;
0032 } mp_IOAPIC_info;
0033
0034 typedef struct
0035 {
0036 uint32 src_bus, src_IRQ, dest_GSI;
0037 } mp_int_override;
0038
0039 extern uint32 cpu_bus_freq;
0040 extern uint64 tsc_freq;
0041
0042 int smp_init (void);
0043 void smp_secondary_init (void);
0044 void smp_enable_scheduling (void);
0045 uint32 smp_boot_cpu (uint8 apic_id, uint8 version);
0046
0047 extern uint8 CPU_to_APIC[MAX_CPUS];
0048 extern uint8 APIC_to_CPU[MAX_CPUS];
0049
0050 extern uint32 mp_num_cpus;
0051 extern bool mp_ISA_PC;
0052 extern bool mp_apic_mode;
0053
0054 #define MAX_INT_OVERRIDES 128
0055
0056 uint32 IRQ_to_GSI (uint32 bus, uint32 irq);
0057
0058 #endif
0059
0060 #endif
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071