diff options
Diffstat (limited to 'arch/sh/include/asm/smp.h')
| -rw-r--r-- | arch/sh/include/asm/smp.h | 40 | 
1 files changed, 32 insertions, 8 deletions
diff --git a/arch/sh/include/asm/smp.h b/arch/sh/include/asm/smp.h index 53ef26ced75..9070d943ddd 100644 --- a/arch/sh/include/asm/smp.h +++ b/arch/sh/include/asm/smp.h @@ -3,15 +3,16 @@  #include <linux/bitops.h>  #include <linux/cpumask.h> +#include <asm/smp-ops.h>  #ifdef CONFIG_SMP  #include <linux/spinlock.h>  #include <asm/atomic.h>  #include <asm/current.h> +#include <asm/percpu.h>  #define raw_smp_processor_id()	(current_thread_info()->cpu) -#define hard_smp_processor_id()	plat_smp_processor_id()  /* Map from cpu id to sequential logical cpu number. */  extern int __cpu_number_map[NR_CPUS]; @@ -30,20 +31,43 @@ enum {  	SMP_MSG_NR,	/* must be last */  }; +DECLARE_PER_CPU(int, cpu_state); +  void smp_message_recv(unsigned int msg);  void smp_timer_broadcast(const struct cpumask *mask);  void local_timer_interrupt(void);  void local_timer_setup(unsigned int cpu); - -void plat_smp_setup(void); -void plat_prepare_cpus(unsigned int max_cpus); -int plat_smp_processor_id(void); -void plat_start_cpu(unsigned int cpu, unsigned long entry_point); -void plat_send_ipi(unsigned int cpu, unsigned int message); +void local_timer_stop(unsigned int cpu);  void arch_send_call_function_single_ipi(int cpu); -extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); +void arch_send_call_function_ipi_mask(const struct cpumask *mask); + +void native_play_dead(void); +void native_cpu_die(unsigned int cpu); +int native_cpu_disable(unsigned int cpu); + +#ifdef CONFIG_HOTPLUG_CPU +void play_dead_common(void); +extern int __cpu_disable(void); + +static inline void __cpu_die(unsigned int cpu) +{ +	extern struct plat_smp_ops *mp_ops;     /* private */ + +	mp_ops->cpu_die(cpu); +} +#endif + +static inline int hard_smp_processor_id(void) +{ +	extern struct plat_smp_ops *mp_ops;	/* private */ + +	if (!mp_ops) +		return 0;	/* boot CPU */ + +	return mp_ops->smp_processor_id(); +}  #else  |