From: Sepherosa Ziehau Date: Wed, 4 May 2011 08:45:42 +0000 (+0800) Subject: x86_64: Move lapic function declarations from smp.h to apic/lapic.h X-Git-Tag: v2.12.0~680 X-Git-Url: https://gitweb.dragonflybsd.org/~nant/dragonfly.git/commitdiff_plain/83c8d73ee9ae09843a284798f9d6b4b4ee7ecb80 x86_64: Move lapic function declarations from smp.h to apic/lapic.h --- diff --git a/sys/platform/pc64/apic/lapic.h b/sys/platform/pc64/apic/lapic.h index 79021d1d61..3557d5fd37 100644 --- a/sys/platform/pc64/apic/lapic.h +++ b/sys/platform/pc64/apic/lapic.h @@ -30,7 +30,7 @@ #ifndef _ARCH_APIC_LAPIC_H_ #define _ARCH_APIC_LAPIC_H_ -#include "apicreg.h" +#include /* * the physical/logical APIC ID management macros @@ -38,10 +38,39 @@ #define CPU_TO_ID(CPU) (cpu_num_to_apic_id[CPU]) #define ID_TO_CPU(ID) (apic_id_to_logical[ID]) +#ifndef _SYS_QUEUE_H_ +#include +#endif + +struct lapic_enumerator { + int lapic_prio; + TAILQ_ENTRY(lapic_enumerator) lapic_link; + int (*lapic_probe)(struct lapic_enumerator *); + void (*lapic_enumerate)(struct lapic_enumerator *); +}; + +#define LAPIC_ENUM_PRIO_MPTABLE 20 +#define LAPIC_ENUM_PRIO_MADT 40 + #ifdef SMP +extern volatile lapic_t *lapic; + +void apic_dump(char*); +void lapic_init(boolean_t); +int apic_ipi(int, int, int); +void selected_apic_ipi(cpumask_t, int, int); +void single_apic_ipi(int, int, int); +int single_apic_ipi_passive(int, int, int); +void lapic_config(void); +void lapic_enumerator_register(struct lapic_enumerator *); +void set_apic_timer(int); +int get_apic_timer_frequency(void); +int read_apic_timer(void); +void u_sleep(int); + /* - * send an IPI INTerrupt containing 'vector' to all CPUs EXCEPT myself + * Send an IPI INTerrupt containing 'vector' to all CPUs EXCEPT myself */ static __inline int all_but_self_ipi(int vector) diff --git a/sys/platform/pc64/include/smp.h b/sys/platform/pc64/include/smp.h index 8db40b5394..4c111b3169 100644 --- a/sys/platform/pc64/include/smp.h +++ b/sys/platform/pc64/include/smp.h @@ -118,16 +118,6 @@ void mptable_pci_int_dump(void); #include #endif -struct lapic_enumerator { - int lapic_prio; - TAILQ_ENTRY(lapic_enumerator) lapic_link; - int (*lapic_probe)(struct lapic_enumerator *); - void (*lapic_enumerate)(struct lapic_enumerator *); -}; - -#define LAPIC_ENUM_PRIO_MPTABLE 20 -#define LAPIC_ENUM_PRIO_MADT 40 - struct ioapic_enumerator { int ioapic_prio; TAILQ_ENTRY(ioapic_enumerator) ioapic_link; @@ -138,22 +128,11 @@ struct ioapic_enumerator { #define IOAPIC_ENUM_PRIO_MPTABLE 20 #define IOAPIC_ENUM_PRIO_MADT 40 -/* global data in mpapic.c */ -extern volatile lapic_t *lapic; - #ifndef _SYS_BUS_H_ #include #endif /* functions in mpapic.c */ -void apic_dump (char*); -void lapic_init (boolean_t); -int apic_ipi (int, int, int); -void selected_apic_ipi (cpumask_t, int, int); -void single_apic_ipi(int cpu, int vector, int delivery_mode); -int single_apic_ipi_passive(int cpu, int vector, int delivery_mode); -void lapic_config(void); -void lapic_enumerator_register(struct lapic_enumerator *); void ioapic_config(void); void ioapic_enumerator_register(struct ioapic_enumerator *); void ioapic_add(void *, int, int); @@ -171,10 +150,6 @@ void clr_io_apic_mask24 (int, u_int32_t); void set_io_apic_mask24 (int, u_int32_t); #endif /* READY */ -void set_apic_timer (int); -int get_apic_timer_frequency(void); -int read_apic_timer (void); -void u_sleep (int); void cpu_send_ipiq (int); int cpu_send_ipiq_passive (int); diff --git a/sys/platform/pc64/x86_64/trap.c b/sys/platform/pc64/x86_64/trap.c index d22e5d40ce..16e28311a2 100644 --- a/sys/platform/pc64/x86_64/trap.c +++ b/sys/platform/pc64/x86_64/trap.c @@ -82,6 +82,7 @@ #include #include #include +#include #include