示例#1
0
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);
}
示例#3
0
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);
}
示例#4
0
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);
	}
}
示例#5
0
void send_IPI_self(int vector)
{
	__send_IPI_shortcut(APIC_DEST_SELF, vector);
}
示例#6
0
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);
}
示例#8
0
void xen_send_IPI_all(int vector)
{
	__send_IPI_shortcut(APIC_DEST_ALLINC, vector);
}
示例#9
0
void xen_send_IPI_allbutself(int vector)
{
	__send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
}