x86_64: Move ioapic_map() from mp_machdep.c to ioapic.c
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 14 May 2011 13:57:06 +0000 (21:57 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 14 May 2011 15:37:16 +0000 (23:37 +0800)
sys/platform/pc64/apic/ioapic.c
sys/platform/pc64/apic/ioapic.h
sys/platform/pc64/include/smp.h
sys/platform/pc64/x86_64/mp_machdep.c

index a6a0df5..e5a6c03 100644 (file)
@@ -39,6 +39,7 @@
 #include <machine_base/apic/ioapic_abi.h>
 #include <machine/segments.h>
 #include <sys/thread2.h>
+#include <vm/pmap.h>
 
 #include <machine/intr_machdep.h>
 
@@ -566,3 +567,15 @@ ioapic_alloc_apic_id(int start)
        }
        panic("ioapic_unused_apic_id: never reached\n");
 }
+
+/*
+ * Map a physical memory address representing I/O into KVA.  The I/O
+ * block is assumed not to cross a page boundary.
+ */
+void *
+ioapic_map(vm_paddr_t pa)
+{
+       KKASSERT(pa < 0x100000000LL);
+
+       return pmap_mapdev_uncacheable(pa, PAGE_SIZE);
+}
index 5b26365..5b12f0e 100644 (file)
@@ -62,5 +62,6 @@ void  ioapic_pin_setup(void *, int, int,
 void   ioapic_extpin_setup(void *, int, int);
 int    ioapic_extpin_gsi(void);
 int    ioapic_gsi(int, int);
+void   *ioapic_map(vm_paddr_t);
 
 #endif /* !_ARCH_APIC_IOAPIC_H_ */
index 317ccc0..beb825e 100644 (file)
@@ -96,7 +96,6 @@ extern struct apic_intmapinfo int_to_apicintpin[];
 extern struct pcb              stoppcbs[];
 
 /* functions in mp_machdep.c */
-void   *ioapic_map(vm_paddr_t);
 u_int  mp_bootaddress          (u_int);
 void   mp_start                (void);
 void   mp_announce             (void);
index 33ea052..2389dcf 100644 (file)
@@ -373,18 +373,6 @@ mp_set_cpuids(int cpu_id, int apic_id)
        ID_TO_CPU(apic_id) = cpu_id;
 }
 
-/*
- * Map a physical memory address representing I/O into KVA.  The I/O
- * block is assumed not to cross a page boundary.
- */
-void *
-ioapic_map(vm_paddr_t pa)
-{
-       KKASSERT(pa < 0x100000000LL);
-
-       return pmap_mapdev_uncacheable(pa, PAGE_SIZE);
-}
-
 /*
  * start each AP in our list
  */