|  | /* | 
|  | * include/asm-sh/smp.h | 
|  | * | 
|  | * Copyright (C) 2002, 2003  Paul Mundt | 
|  | * | 
|  | * This file is subject to the terms and conditions of the GNU General Public | 
|  | * License.  See the file "COPYING" in the main directory of this archive for | 
|  | * more details. | 
|  | */ | 
|  | #ifndef __ASM_SH_SMP_H | 
|  | #define __ASM_SH_SMP_H | 
|  |  | 
|  | #include <linux/config.h> | 
|  | #include <linux/bitops.h> | 
|  | #include <linux/cpumask.h> | 
|  |  | 
|  | #ifdef CONFIG_SMP | 
|  |  | 
|  | #include <asm/spinlock.h> | 
|  | #include <asm/atomic.h> | 
|  | #include <asm/current.h> | 
|  |  | 
|  | extern cpumask_t cpu_online_map; | 
|  | extern cpumask_t cpu_possible_map; | 
|  |  | 
|  | #define cpu_online(cpu)		cpu_isset(cpu, cpu_online_map) | 
|  |  | 
|  | #define raw_smp_processor_id()	(current_thread_info()->cpu) | 
|  |  | 
|  | /* I've no idea what the real meaning of this is */ | 
|  | #define PROC_CHANGE_PENALTY	20 | 
|  |  | 
|  | #define NO_PROC_ID	(-1) | 
|  |  | 
|  | struct smp_fn_call_struct { | 
|  | spinlock_t lock; | 
|  | atomic_t   finished; | 
|  | void (*fn)(void *); | 
|  | void *data; | 
|  | }; | 
|  |  | 
|  | extern struct smp_fn_call_struct smp_fn_call; | 
|  |  | 
|  | #define SMP_MSG_RESCHEDULE	0x0001 | 
|  |  | 
|  | #endif /* CONFIG_SMP */ | 
|  |  | 
|  | #endif /* __ASM_SH_SMP_H */ |