18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 38c2ecf20Sopenharmony_ci * License. See the file "COPYING" in the main directory of this archive 48c2ecf20Sopenharmony_ci * for more details. 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Copyright (C) 2001 - 2013 Tensilica Inc. 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#ifndef _XTENSA_SMP_H 108c2ecf20Sopenharmony_ci#define _XTENSA_SMP_H 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#ifdef CONFIG_SMP 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#define raw_smp_processor_id() (current_thread_info()->cpu) 158c2ecf20Sopenharmony_ci#define cpu_logical_map(cpu) (cpu) 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistruct start_info { 188c2ecf20Sopenharmony_ci unsigned long stack; 198c2ecf20Sopenharmony_ci}; 208c2ecf20Sopenharmony_ciextern struct start_info start_info; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cistruct cpumask; 238c2ecf20Sopenharmony_civoid arch_send_call_function_ipi_mask(const struct cpumask *mask); 248c2ecf20Sopenharmony_civoid arch_send_call_function_single_ipi(int cpu); 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_civoid smp_init_cpus(void); 278c2ecf20Sopenharmony_civoid secondary_init_irq(void); 288c2ecf20Sopenharmony_civoid ipi_init(void); 298c2ecf20Sopenharmony_cistruct seq_file; 308c2ecf20Sopenharmony_civoid show_ipi_list(struct seq_file *p, int prec); 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#ifdef CONFIG_HOTPLUG_CPU 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_civoid __cpu_die(unsigned int cpu); 358c2ecf20Sopenharmony_ciint __cpu_disable(void); 368c2ecf20Sopenharmony_civoid cpu_die(void); 378c2ecf20Sopenharmony_civoid cpu_restart(void); 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci#endif /* CONFIG_HOTPLUG_CPU */ 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci#endif /* CONFIG_SMP */ 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci#endif /* _XTENSA_SMP_H */ 44