X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Flinux%2Fsmp.h;h=259a13c3bd98eda779379be1c5df5e37aae6c73e;hb=b1d08ac064268d0ae2281e98bf5e82627e0f0c56;hp=d699a16b0cb275609b6c8fd474426d37cb6f7a9c;hpb=74293759002aa7db0179158c20676a034614577b;p=linux-2.6 diff --git a/include/linux/smp.h b/include/linux/smp.h index d699a16b0c..259a13c3bd 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h @@ -6,7 +6,7 @@ * Alan Cox. */ -#include +#include extern void cpu_idle(void); @@ -54,6 +54,9 @@ extern void smp_cpus_done(unsigned int max_cpus); */ int smp_call_function(void(*func)(void *info), void *info, int retry, int wait); +int smp_call_function_single(int cpuid, void (*func) (void *info), void *info, + int retry, int wait); + /* * Call a function on all processors */ @@ -81,8 +84,11 @@ void smp_prepare_boot_cpu(void); * These macros fold the SMP functionality into a single CPU system */ #define raw_smp_processor_id() 0 -#define hard_smp_processor_id() 0 -#define smp_call_function(func,info,retry,wait) ({ 0; }) +static inline int up_smp_call_function(void) +{ + return 0; +} +#define smp_call_function(func,info,retry,wait) (up_smp_call_function()) #define on_each_cpu(func,info,retry,wait) \ ({ \ local_irq_disable(); \ @@ -93,6 +99,14 @@ void smp_prepare_boot_cpu(void); static inline void smp_send_reschedule(int cpu) { } #define num_booting_cpus() 1 #define smp_prepare_boot_cpu() do {} while (0) +#define smp_call_function_single(cpuid, func, info, retry, wait) \ +({ \ + WARN_ON(cpuid != 0); \ + local_irq_disable(); \ + (func)(info); \ + local_irq_enable(); \ + 0; \ +}) #endif /* !SMP */ @@ -122,4 +136,6 @@ static inline void smp_send_reschedule(int cpu) { } #define put_cpu() preempt_enable() #define put_cpu_no_resched() preempt_enable_no_resched() +void smp_setup_processor_id(void); + #endif /* __LINUX_SMP_H */