1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_X86_CPU_H
3#define _ASM_X86_CPU_H
4
5#include <linux/device.h>
6#include <linux/cpu.h>
7#include <linux/topology.h>
8#include <linux/nodemask.h>
9#include <linux/percpu.h>
10
11#ifdef CONFIG_SMP
12
13extern void prefill_possible_map(void);
14
15#else /* CONFIG_SMP */
16
17static inline void prefill_possible_map(void) {}
18
19#define cpu_physical_id(cpu) boot_cpu_physical_apicid
20#define cpu_acpi_id(cpu) 0
21#define safe_smp_processor_id() 0
22
23#endif /* CONFIG_SMP */
24
25struct x86_cpu {
26 struct cpu cpu;
27};
28
29#ifdef CONFIG_HOTPLUG_CPU
30extern int arch_register_cpu(int num);
31extern void arch_unregister_cpu(int);
32extern void start_cpu0(void);
33#ifdef CONFIG_DEBUG_HOTPLUG_CPU0
34extern int _debug_hotplug_cpu(int cpu, int action);
35#endif
36#endif
37
38int mwait_usable(const struct cpuinfo_x86 *);
39
40unsigned int x86_family(unsigned int sig);
41unsigned int x86_model(unsigned int sig);
42unsigned int x86_stepping(unsigned int sig);
43#endif /* _ASM_X86_CPU_H */
44