xref: /linux/arch/hexagon/include/asm/smp.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*08dbd0f8SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
243afdf50SRichard Kuo /*
343afdf50SRichard Kuo  * SMP definitions for the Hexagon architecture
443afdf50SRichard Kuo  *
5e1858b2aSRichard Kuo  * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
643afdf50SRichard Kuo  */
743afdf50SRichard Kuo 
843afdf50SRichard Kuo #ifndef __ASM_SMP_H
943afdf50SRichard Kuo #define __ASM_SMP_H
1043afdf50SRichard Kuo 
1143afdf50SRichard Kuo #include <linux/cpumask.h>
1243afdf50SRichard Kuo 
1343afdf50SRichard Kuo #define raw_smp_processor_id() (current_thread_info()->cpu)
1443afdf50SRichard Kuo 
1543afdf50SRichard Kuo enum ipi_message_type {
1643afdf50SRichard Kuo 	IPI_NOP = 0,
1743afdf50SRichard Kuo 	IPI_RESCHEDULE = 1,
1843afdf50SRichard Kuo 	IPI_CALL_FUNC,
1943afdf50SRichard Kuo 	IPI_CPU_STOP,
2043afdf50SRichard Kuo 	IPI_TIMER,
2143afdf50SRichard Kuo };
2243afdf50SRichard Kuo 
2343afdf50SRichard Kuo extern void send_ipi(const struct cpumask *cpumask, enum ipi_message_type msg);
2443afdf50SRichard Kuo extern void smp_start_cpus(void);
2543afdf50SRichard Kuo extern void arch_send_call_function_single_ipi(int cpu);
2643afdf50SRichard Kuo extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
2743afdf50SRichard Kuo 
2843afdf50SRichard Kuo extern void smp_vm_unmask_irq(void *info);
2943afdf50SRichard Kuo 
3043afdf50SRichard Kuo #endif
31