2008-07-25 17:17:44 +08:00
|
|
|
#ifndef __ASM_SUMMIT_IPI_H
|
|
|
|
#define __ASM_SUMMIT_IPI_H
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2008-12-17 09:33:52 +08:00
|
|
|
void send_IPI_mask_sequence(const cpumask_t *mask, int vector);
|
|
|
|
void send_IPI_mask_allbutself(const cpumask_t *mask, int vector);
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2008-12-17 09:33:52 +08:00
|
|
|
static inline void send_IPI_mask(const cpumask_t *mask, int vector)
|
2005-04-17 06:20:36 +08:00
|
|
|
{
|
|
|
|
send_IPI_mask_sequence(mask, vector);
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline void send_IPI_allbutself(int vector)
|
|
|
|
{
|
|
|
|
cpumask_t mask = cpu_online_map;
|
|
|
|
cpu_clear(smp_processor_id(), mask);
|
|
|
|
|
|
|
|
if (!cpus_empty(mask))
|
2008-12-17 09:33:52 +08:00
|
|
|
send_IPI_mask(&mask, vector);
|
2005-04-17 06:20:36 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline void send_IPI_all(int vector)
|
|
|
|
{
|
2008-12-17 09:33:52 +08:00
|
|
|
send_IPI_mask(&cpu_online_map, vector);
|
2005-04-17 06:20:36 +08:00
|
|
|
}
|
|
|
|
|
2008-07-25 17:17:44 +08:00
|
|
|
#endif /* __ASM_SUMMIT_IPI_H */
|