1 #ifndef __ASM_ES7000_IPI_H |
1 #ifndef __ASM_ES7000_IPI_H |
2 #define __ASM_ES7000_IPI_H |
2 #define __ASM_ES7000_IPI_H |
3 |
3 |
4 void send_IPI_mask_sequence(cpumask_t mask, int vector); |
4 void send_IPI_mask_sequence(const struct cpumask *mask, int vector); |
|
5 void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); |
5 |
6 |
6 static inline void send_IPI_mask(cpumask_t mask, int vector) |
7 static inline void send_IPI_mask(const struct cpumask *mask, int vector) |
7 { |
8 { |
8 send_IPI_mask_sequence(mask, vector); |
9 send_IPI_mask_sequence(mask, vector); |
9 } |
10 } |
10 |
11 |
11 static inline void send_IPI_allbutself(int vector) |
12 static inline void send_IPI_allbutself(int vector) |
12 { |
13 { |
13 cpumask_t mask = cpu_online_map; |
14 send_IPI_mask_allbutself(cpu_online_mask, vector); |
14 cpu_clear(smp_processor_id(), mask); |
|
15 if (!cpus_empty(mask)) |
|
16 send_IPI_mask(mask, vector); |
|
17 } |
15 } |
18 |
16 |
19 static inline void send_IPI_all(int vector) |
17 static inline void send_IPI_all(int vector) |
20 { |
18 { |
21 send_IPI_mask(cpu_online_map, vector); |
19 send_IPI_mask(cpu_online_mask, vector); |
22 } |
20 } |
23 |
21 |
24 #endif /* __ASM_ES7000_IPI_H */ |
22 #endif /* __ASM_ES7000_IPI_H */ |