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