Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at dc39455e7948ec9bc5f3f2dced5c2f5ac8a8dfd9 56 lines 1.4 kB view raw
1#ifndef __ASM_SH_SMP_H 2#define __ASM_SH_SMP_H 3 4#include <linux/bitops.h> 5#include <linux/cpumask.h> 6 7#ifdef CONFIG_SMP 8 9#include <linux/spinlock.h> 10#include <asm/atomic.h> 11#include <asm/current.h> 12 13#define raw_smp_processor_id() (current_thread_info()->cpu) 14#define hard_smp_processor_id() plat_smp_processor_id() 15 16/* Map from cpu id to sequential logical cpu number. */ 17extern int __cpu_number_map[NR_CPUS]; 18#define cpu_number_map(cpu) __cpu_number_map[cpu] 19 20/* The reverse map from sequential logical cpu number to cpu id. */ 21extern int __cpu_logical_map[NR_CPUS]; 22#define cpu_logical_map(cpu) __cpu_logical_map[cpu] 23 24/* I've no idea what the real meaning of this is */ 25#define PROC_CHANGE_PENALTY 20 26 27#define NO_PROC_ID (-1) 28 29struct smp_fn_call_struct { 30 spinlock_t lock; 31 atomic_t finished; 32 void (*fn)(void *); 33 void *data; 34}; 35 36extern struct smp_fn_call_struct smp_fn_call; 37 38#define SMP_MSG_FUNCTION 0 39#define SMP_MSG_RESCHEDULE 1 40#define SMP_MSG_NR 2 41 42void plat_smp_setup(void); 43void plat_prepare_cpus(unsigned int max_cpus); 44int plat_smp_processor_id(void); 45void plat_start_cpu(unsigned int cpu, unsigned long entry_point); 46void plat_send_ipi(unsigned int cpu, unsigned int message); 47int plat_register_ipi_handler(unsigned int message, 48 void (*handler)(void *), void *arg); 49 50#else 51 52#define hard_smp_processor_id() (0) 53 54#endif /* CONFIG_SMP */ 55 56#endif /* __ASM_SH_SMP_H */