static inline void send_IPI_allbutself(int vector) { /* * if there are no other CPUs in the system then * we get an APIC send error if we try to broadcast. * thus we have to avoid sending IPIs in this case. */ if (!(smp_num_cpus > 1)) return; if (clustered_apic_mode) { // Pointless. Use send_IPI_mask to do this instead int cpu; if (smp_num_cpus > 1) { for (cpu = 0; cpu < smp_num_cpus; ++cpu) { if (cpu != smp_processor_id()) send_IPI_mask(1 << cpu, vector); } } } else { __send_IPI_shortcut(APIC_DEST_ALLBUT, vector); return; } }
static inline void send_IPI_allbutself(int vector) { /* * if there are no other CPUs in the system then * we get an APIC send error if we try to broadcast. * thus we have to avoid sending IPIs in this case. */ if (num_online_cpus() > 1) __send_IPI_shortcut(APIC_DEST_ALLBUT, vector); }
static void flat_send_IPI_allbutself(int vector) { /* * if there are no other CPUs in the system then * we get an APIC send error if we try to broadcast. * thus we have to avoid sending IPIs in this case. */ // if (~(1ul << smp_processor_id()) & cpu_online_map) if (smp_num_cpus > 1) __send_IPI_shortcut(APIC_DEST_ALLBUT, vector, APIC_DEST_LOGICAL); }
static inline void send_IPI_all(int vector) { if (clustered_apic_mode) { // Pointless. Use send_IPI_mask to do this instead int cpu; for (cpu = 0; cpu < smp_num_cpus; ++cpu) { send_IPI_mask(1 << cpu, vector); } } else { __send_IPI_shortcut(APIC_DEST_ALLINC, vector); } }
void send_IPI_self(int vector) { __send_IPI_shortcut(APIC_DEST_SELF, vector); }
static void flat_send_IPI_all(int vector) { __send_IPI_shortcut(APIC_DEST_ALLINC, vector, APIC_DEST_LOGICAL); }
static inline void send_IPI_all(int vector) { __send_IPI_shortcut(APIC_DEST_ALLINC, vector); }
void xen_send_IPI_all(int vector) { __send_IPI_shortcut(APIC_DEST_ALLINC, vector); }
void xen_send_IPI_allbutself(int vector) { __send_IPI_shortcut(APIC_DEST_ALLBUT, vector); }