x86_64: Move lapic function declarations from smp.h to apic/lapic.h
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 4 May 2011 08:45:42 +0000 (16:45 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 4 May 2011 08:45:42 +0000 (16:45 +0800)
sys/platform/pc64/apic/lapic.h
sys/platform/pc64/include/smp.h
sys/platform/pc64/x86_64/trap.c

index 79021d1..3557d5f 100644 (file)
@@ -30,7 +30,7 @@
 #ifndef _ARCH_APIC_LAPIC_H_
 #define _ARCH_APIC_LAPIC_H_
 
-#include "apicreg.h"
+#include <machine_base/apic/apicreg.h>
 
 /*
  * the physical/logical APIC ID management macros
 #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 <sys/queue.h>
+#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)
index 8db40b5..4c111b3 100644 (file)
@@ -118,16 +118,6 @@ void       mptable_pci_int_dump(void);
 #include <sys/queue.h>
 #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 <sys/bus.h>
 #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);
 
index d22e5d4..16e2831 100644 (file)
@@ -82,6 +82,7 @@
 #include <machine/vmparam.h>
 #include <machine/md_var.h>
 #include <machine_base/isa/isa_intr.h>
+#include <machine_base/apic/lapic.h>
 
 #include <ddb/ddb.h>