Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_SMP_H
3#define __ASM_SMP_H
4
5extern int init_per_cpu(int cpuid);
6
7#if defined(CONFIG_SMP)
8
9/* Page Zero Location PDC will look for the address to branch to when we poke
10** slave CPUs still in "Icache loop".
11*/
12#define PDC_OS_BOOT_RENDEZVOUS 0x10
13#define PDC_OS_BOOT_RENDEZVOUS_HI 0x28
14
15#ifndef ASSEMBLY
16#include <linux/bitops.h>
17#include <linux/threads.h> /* for NR_CPUS */
18#include <linux/cpumask.h>
19typedef unsigned long address_t;
20
21
22/*
23 * Private routines/data
24 *
25 * physical and logical are equivalent until we support CPU hotplug.
26 */
27#define cpu_number_map(cpu) (cpu)
28#define cpu_logical_map(cpu) (cpu)
29
30extern void smp_send_all_nop(void);
31
32extern void arch_send_call_function_single_ipi(int cpu);
33extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
34
35#endif /* !ASSEMBLY */
36
37#define raw_smp_processor_id() (current_thread_info()->cpu)
38
39#else /* CONFIG_SMP */
40
41static inline void smp_send_all_nop(void) { return; }
42
43#endif
44
45#define NO_PROC_ID 0xFF /* No processor magic marker */
46#define ANY_PROC_ID 0xFF /* Any processor magic marker */
47static inline int __cpu_disable (void) {
48 return 0;
49}
50static inline void __cpu_die (unsigned int cpu) {
51 while(1)
52 ;
53}
54
55#endif /* __ASM_SMP_H */