Lines Matching +full:cpu +full:- +full:nr
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * smp.h: PowerPC-specific SMP code.
9 * Copyright (C) 1996-2001 Cort Dougan <cort@fsmlabs.com>
34 extern int cpu_to_chip_id(int cpu);
44 void (*message_pass)(int cpu, int msg);
46 void (*cause_ipi)(int cpu);
48 int (*cause_nmi_ipi)(int cpu);
50 int (*kick_cpu)(int nr);
51 int (*prepare_cpu)(int nr);
52 void (*setup_cpu)(int nr);
57 void (*cpu_die)(unsigned int nr);
58 int (*cpu_bootable)(unsigned int nr);
67 extern int smp_send_nmi_ipi(int cpu, void (*fn)(struct pt_regs *), u64 delay_us);
68 extern int smp_send_safe_nmi_ipi(int cpu, void (*fn)(struct pt_regs *), u64 delay_us);
78 void generic_cpu_die(unsigned int cpu);
79 void generic_set_cpu_dead(unsigned int cpu);
80 void generic_set_cpu_up(unsigned int cpu);
81 int generic_check_cpu_restart(unsigned int cpu);
82 int is_cpu_dead(unsigned int cpu);
88 #define raw_smp_processor_id() (local_paca->paca_index)
89 #define hard_smp_processor_id() (get_paca()->hw_cpu_id)
91 /* 32-bit */
94 #define raw_smp_processor_id() (current_thread_info()->cpu)
97 static inline int get_hard_smp_processor_id(int cpu) in get_hard_smp_processor_id() argument
99 return smp_hw_index[cpu]; in get_hard_smp_processor_id()
102 static inline void set_hard_smp_processor_id(int cpu, int phys) in set_hard_smp_processor_id() argument
104 smp_hw_index[cpu] = phys; in set_hard_smp_processor_id()
113 static inline struct cpumask *cpu_sibling_mask(int cpu) in cpu_sibling_mask() argument
115 return per_cpu(cpu_sibling_map, cpu); in cpu_sibling_mask()
118 static inline struct cpumask *cpu_core_mask(int cpu) in cpu_core_mask() argument
120 return per_cpu(cpu_core_map, cpu); in cpu_core_mask()
123 static inline struct cpumask *cpu_l2_cache_mask(int cpu) in cpu_l2_cache_mask() argument
125 return per_cpu(cpu_l2_cache_map, cpu); in cpu_l2_cache_mask()
128 static inline struct cpumask *cpu_smallcore_mask(int cpu) in cpu_smallcore_mask() argument
130 return per_cpu(cpu_smallcore_map, cpu); in cpu_smallcore_mask()
133 extern int cpu_to_core_id(int cpu);
141 static inline const struct cpumask *cpu_smt_mask(int cpu) in cpu_smt_mask() argument
144 return per_cpu(cpu_smallcore_map, cpu); in cpu_smt_mask()
146 return per_cpu(cpu_sibling_map, cpu); in cpu_smt_mask()
153 * in /proc/interrupts will be wrong!!! --Troy */
162 #define NMI_IPI_ALL_OTHERS -2
175 extern void smp_muxed_ipi_message_pass(int cpu, int msg);
176 extern void smp_muxed_ipi_set_message(int cpu, int msg);
185 extern void __cpu_die(unsigned int cpu);
193 static inline const struct cpumask *cpu_sibling_mask(int cpu) in cpu_sibling_mask() argument
195 return cpumask_of(cpu); in cpu_sibling_mask()
198 static inline const struct cpumask *cpu_smallcore_mask(int cpu) in cpu_smallcore_mask() argument
200 return cpumask_of(cpu); in cpu_smallcore_mask()
203 static inline const struct cpumask *cpu_l2_cache_mask(int cpu) in cpu_l2_cache_mask() argument
205 return cpumask_of(cpu); in cpu_l2_cache_mask()
210 static inline int get_hard_smp_processor_id(int cpu) in get_hard_smp_processor_id() argument
212 return paca_ptrs[cpu]->hw_cpu_id; in get_hard_smp_processor_id()
215 static inline void set_hard_smp_processor_id(int cpu, int phys) in set_hard_smp_processor_id() argument
217 paca_ptrs[cpu]->hw_cpu_id = phys; in set_hard_smp_processor_id()
220 /* 32-bit */
223 static inline int get_hard_smp_processor_id(int cpu) in get_hard_smp_processor_id() argument
228 static inline void set_hard_smp_processor_id(int cpu, int phys) in set_hard_smp_processor_id() argument
244 extern void smp_mpic_setup_cpu(int cpu);
245 extern int smp_generic_kick_cpu(int nr);
246 extern int smp_generic_cpu_bootable(unsigned int nr);
254 extern void arch_send_call_function_single_ipi(int cpu);
257 /* Definitions relative to the secondary CPU spin loop
259 * 64-bit but defining them all here doesn't harm