4 #ifdef CONFIG_X86_LOCAL_APIC
23 #include <asm/hw_irq.h>
33 static inline unsigned int __prepare_ICR(
unsigned int shortcut,
int vector,
36 unsigned int icr = shortcut |
dest;
49 static inline int __prepare_ICR2(
unsigned int mask)
54 static inline void __xapic_wait_icr_idle(
void)
61 __default_send_IPI_shortcut(
unsigned int shortcut,
int vector,
unsigned int dest)
75 __xapic_wait_icr_idle();
80 cfg = __prepare_ICR(shortcut, vector, dest);
85 native_apic_mem_write(
APIC_ICR, cfg);
93 __default_send_IPI_dest_field(
unsigned int mask,
int vector,
unsigned int dest)
101 safe_apic_wait_icr_idle();
103 __xapic_wait_icr_idle();
108 cfg = __prepare_ICR2(mask);
114 cfg = __prepare_ICR(0, vector, dest);
119 native_apic_mem_write(
APIC_ICR, cfg);
128 #define NMI_VECTOR 0x02
132 static inline void __default_local_send_IPI_allbutself(
int vector)
140 static inline void __default_local_send_IPI_all(
int vector)
149 extern void default_send_IPI_mask_sequence_logical(
const struct cpumask *mask,
151 extern void default_send_IPI_mask_allbutself_logical(
const struct cpumask *mask,
153 extern void default_send_IPI_mask_logical(
const struct cpumask *mask,
155 extern void default_send_IPI_allbutself(
int vector);
156 extern void default_send_IPI_all(
int vector);
157 extern void default_send_IPI_self(
int vector);