aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/smp.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/smp.h')
-rw-r--r--include/linux/smp.h19
1 files changed, 10 insertions, 9 deletions
diff --git a/include/linux/smp.h b/include/linux/smp.h
index cfa2d20e35f1..6dc95cac6b3d 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -13,9 +13,10 @@
13 13
14extern void cpu_idle(void); 14extern void cpu_idle(void);
15 15
16typedef void (*smp_call_func_t)(void *info);
16struct call_single_data { 17struct call_single_data {
17 struct list_head list; 18 struct list_head list;
18 void (*func) (void *info); 19 smp_call_func_t func;
19 void *info; 20 void *info;
20 u16 flags; 21 u16 flags;
21 u16 priv; 22 u16 priv;
@@ -24,8 +25,8 @@ struct call_single_data {
24/* total number of cpus in this system (may exceed NR_CPUS) */ 25/* total number of cpus in this system (may exceed NR_CPUS) */
25extern unsigned int total_cpus; 26extern unsigned int total_cpus;
26 27
27int smp_call_function_single(int cpuid, void (*func) (void *info), void *info, 28int smp_call_function_single(int cpuid, smp_call_func_t func, void *info,
28 int wait); 29 int wait);
29 30
30#ifdef CONFIG_SMP 31#ifdef CONFIG_SMP
31 32
@@ -69,15 +70,15 @@ extern void smp_cpus_done(unsigned int max_cpus);
69/* 70/*
70 * Call a function on all other processors 71 * Call a function on all other processors
71 */ 72 */
72int smp_call_function(void(*func)(void *info), void *info, int wait); 73int smp_call_function(smp_call_func_t func, void *info, int wait);
73void smp_call_function_many(const struct cpumask *mask, 74void smp_call_function_many(const struct cpumask *mask,
74 void (*func)(void *info), void *info, bool wait); 75 smp_call_func_t func, void *info, bool wait);
75 76
76void __smp_call_function_single(int cpuid, struct call_single_data *data, 77void __smp_call_function_single(int cpuid, struct call_single_data *data,
77 int wait); 78 int wait);
78 79
79int smp_call_function_any(const struct cpumask *mask, 80int smp_call_function_any(const struct cpumask *mask,
80 void (*func)(void *info), void *info, int wait); 81 smp_call_func_t func, void *info, int wait);
81 82
82/* 83/*
83 * Generic and arch helpers 84 * Generic and arch helpers
@@ -94,7 +95,7 @@ void ipi_call_unlock_irq(void);
94/* 95/*
95 * Call a function on all processors 96 * Call a function on all processors
96 */ 97 */
97int on_each_cpu(void (*func) (void *info), void *info, int wait); 98int on_each_cpu(smp_call_func_t func, void *info, int wait);
98 99
99#define MSG_ALL_BUT_SELF 0x8000 /* Assume <32768 CPU's */ 100#define MSG_ALL_BUT_SELF 0x8000 /* Assume <32768 CPU's */
100#define MSG_ALL 0x8001 101#define MSG_ALL 0x8001
@@ -122,7 +123,7 @@ static inline void smp_send_stop(void) { }
122 * These macros fold the SMP functionality into a single CPU system 123 * These macros fold the SMP functionality into a single CPU system
123 */ 124 */
124#define raw_smp_processor_id() 0 125#define raw_smp_processor_id() 0
125static inline int up_smp_call_function(void (*func)(void *), void *info) 126static inline int up_smp_call_function(smp_call_func_t func, void *info)
126{ 127{
127 return 0; 128 return 0;
128} 129}
@@ -143,7 +144,7 @@ static inline void smp_send_reschedule(int cpu) { }
143static inline void init_call_single_data(void) { } 144static inline void init_call_single_data(void) { }
144 145
145static inline int 146static inline int
146smp_call_function_any(const struct cpumask *mask, void (*func)(void *info), 147smp_call_function_any(const struct cpumask *mask, smp_call_func_t func,
147 void *info, int wait) 148 void *info, int wait)
148{ 149{
149 return smp_call_function_single(0, func, info, wait); 150 return smp_call_function_single(0, func, info, wait);