|
@@ -115,6 +115,59 @@ static inline bool apic_is_x2apic_enabled(void)
|
|
|
return msr & X2APIC_ENABLE;
|
|
|
}
|
|
|
|
|
|
+extern void enable_IR_x2apic(void);
|
|
|
+
|
|
|
+extern int get_physical_broadcast(void);
|
|
|
+
|
|
|
+extern int lapic_get_maxlvt(void);
|
|
|
+extern void clear_local_APIC(void);
|
|
|
+extern void disconnect_bsp_APIC(int virt_wire_setup);
|
|
|
+extern void disable_local_APIC(void);
|
|
|
+extern void lapic_shutdown(void);
|
|
|
+extern void sync_Arb_IDs(void);
|
|
|
+extern void init_bsp_APIC(void);
|
|
|
+extern void setup_local_APIC(void);
|
|
|
+extern void init_apic_mappings(void);
|
|
|
+void register_lapic_address(unsigned long address);
|
|
|
+extern void setup_boot_APIC_clock(void);
|
|
|
+extern void setup_secondary_APIC_clock(void);
|
|
|
+extern int APIC_init_uniprocessor(void);
|
|
|
+
|
|
|
+#ifdef CONFIG_X86_64
|
|
|
+static inline int apic_force_enable(unsigned long addr)
|
|
|
+{
|
|
|
+ return -1;
|
|
|
+}
|
|
|
+#else
|
|
|
+extern int apic_force_enable(unsigned long addr);
|
|
|
+#endif
|
|
|
+
|
|
|
+extern int apic_bsp_setup(bool upmode);
|
|
|
+extern void apic_ap_setup(void);
|
|
|
+
|
|
|
+/*
|
|
|
+ * On 32bit this is mach-xxx local
|
|
|
+ */
|
|
|
+#ifdef CONFIG_X86_64
|
|
|
+extern int apic_is_clustered_box(void);
|
|
|
+#else
|
|
|
+static inline int apic_is_clustered_box(void)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
+extern int setup_APIC_eilvt(u8 lvt_off, u8 vector, u8 msg_type, u8 mask);
|
|
|
+
|
|
|
+#else /* !CONFIG_X86_LOCAL_APIC */
|
|
|
+static inline void lapic_shutdown(void) { }
|
|
|
+#define local_apic_timer_c2_ok 1
|
|
|
+static inline void init_apic_mappings(void) { }
|
|
|
+static inline void disable_local_APIC(void) { }
|
|
|
+# define setup_boot_APIC_clock x86_init_noop
|
|
|
+# define setup_secondary_APIC_clock x86_init_noop
|
|
|
+#endif /* !CONFIG_X86_LOCAL_APIC */
|
|
|
+
|
|
|
#ifdef CONFIG_X86_X2APIC
|
|
|
/*
|
|
|
* Make previous memory operations globally visible before
|
|
@@ -186,67 +239,14 @@ static inline int x2apic_enabled(void)
|
|
|
}
|
|
|
|
|
|
#define x2apic_supported() (cpu_has_x2apic)
|
|
|
-#else
|
|
|
+#else /* !CONFIG_X86_X2APIC */
|
|
|
static inline void check_x2apic(void) { }
|
|
|
static inline void x2apic_setup(void) { }
|
|
|
static inline int x2apic_enabled(void) { return 0; }
|
|
|
|
|
|
#define x2apic_mode (0)
|
|
|
#define x2apic_supported() (0)
|
|
|
-#endif
|
|
|
-
|
|
|
-extern void enable_IR_x2apic(void);
|
|
|
-
|
|
|
-extern int get_physical_broadcast(void);
|
|
|
-
|
|
|
-extern int lapic_get_maxlvt(void);
|
|
|
-extern void clear_local_APIC(void);
|
|
|
-extern void disconnect_bsp_APIC(int virt_wire_setup);
|
|
|
-extern void disable_local_APIC(void);
|
|
|
-extern void lapic_shutdown(void);
|
|
|
-extern void sync_Arb_IDs(void);
|
|
|
-extern void init_bsp_APIC(void);
|
|
|
-extern void setup_local_APIC(void);
|
|
|
-extern void init_apic_mappings(void);
|
|
|
-void register_lapic_address(unsigned long address);
|
|
|
-extern void setup_boot_APIC_clock(void);
|
|
|
-extern void setup_secondary_APIC_clock(void);
|
|
|
-extern int APIC_init_uniprocessor(void);
|
|
|
-
|
|
|
-#ifdef CONFIG_X86_64
|
|
|
-static inline int apic_force_enable(unsigned long addr)
|
|
|
-{
|
|
|
- return -1;
|
|
|
-}
|
|
|
-#else
|
|
|
-extern int apic_force_enable(unsigned long addr);
|
|
|
-#endif
|
|
|
-
|
|
|
-extern int apic_bsp_setup(bool upmode);
|
|
|
-extern void apic_ap_setup(void);
|
|
|
-
|
|
|
-/*
|
|
|
- * On 32bit this is mach-xxx local
|
|
|
- */
|
|
|
-#ifdef CONFIG_X86_64
|
|
|
-extern int apic_is_clustered_box(void);
|
|
|
-#else
|
|
|
-static inline int apic_is_clustered_box(void)
|
|
|
-{
|
|
|
- return 0;
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
-extern int setup_APIC_eilvt(u8 lvt_off, u8 vector, u8 msg_type, u8 mask);
|
|
|
-
|
|
|
-#else /* !CONFIG_X86_LOCAL_APIC */
|
|
|
-static inline void lapic_shutdown(void) { }
|
|
|
-#define local_apic_timer_c2_ok 1
|
|
|
-static inline void init_apic_mappings(void) { }
|
|
|
-static inline void disable_local_APIC(void) { }
|
|
|
-# define setup_boot_APIC_clock x86_init_noop
|
|
|
-# define setup_secondary_APIC_clock x86_init_noop
|
|
|
-#endif /* !CONFIG_X86_LOCAL_APIC */
|
|
|
+#endif /* !CONFIG_X86_X2APIC */
|
|
|
|
|
|
#ifdef CONFIG_X86_64
|
|
|
#define SET_APIC_ID(x) (apic->set_apic_id(x))
|