1 /* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright (C) 2001 - 2013 Tensilica Inc. 7 */ 8 9 #ifndef _XTENSA_SMP_H 10 #define _XTENSA_SMP_H 11 12 #ifdef CONFIG_SMP 13 14 #define raw_smp_processor_id() (current_thread_info()->cpu) 15 #define cpu_logical_map(cpu) (cpu) 16 17 struct start_info { 18 unsigned long stack; 19 }; 20 extern struct start_info start_info; 21 22 struct cpumask; 23 void arch_send_call_function_ipi_mask(const struct cpumask *mask); 24 void arch_send_call_function_single_ipi(int cpu); 25 26 void secondary_start_kernel(void); 27 void smp_init_cpus(void); 28 void secondary_init_irq(void); 29 void ipi_init(void); 30 struct seq_file; 31 void show_ipi_list(struct seq_file *p, int prec); 32 33 #ifdef CONFIG_HOTPLUG_CPU 34 35 void __cpu_die(unsigned int cpu); 36 int __cpu_disable(void); 37 void __noreturn cpu_die(void); 38 void cpu_restart(void); 39 40 #endif /* CONFIG_HOTPLUG_CPU */ 41 42 #endif /* CONFIG_SMP */ 43 44 #endif /* _XTENSA_SMP_H */ 45