| .. | .. |
|---|
| 14 | 14 | void (*c_init)(struct cpuinfo_x86 *); |
|---|
| 15 | 15 | void (*c_identify)(struct cpuinfo_x86 *); |
|---|
| 16 | 16 | void (*c_detect_tlb)(struct cpuinfo_x86 *); |
|---|
| 17 | | - void (*c_bsp_resume)(struct cpuinfo_x86 *); |
|---|
| 18 | 17 | int c_x86_vendor; |
|---|
| 19 | 18 | #ifdef CONFIG_X86_32 |
|---|
| 20 | 19 | /* Optional vendor specific routine to obtain the cache size. */ |
|---|
| .. | .. |
|---|
| 39 | 38 | |
|---|
| 40 | 39 | #define cpu_dev_register(cpu_devX) \ |
|---|
| 41 | 40 | static const struct cpu_dev *const __cpu_dev_##cpu_devX __used \ |
|---|
| 42 | | - __attribute__((__section__(".x86_cpu_dev.init"))) = \ |
|---|
| 41 | + __section(".x86_cpu_dev.init") = \ |
|---|
| 43 | 42 | &cpu_devX; |
|---|
| 44 | 43 | |
|---|
| 45 | 44 | extern const struct cpu_dev *const __x86_cpu_dev_start[], |
|---|
| .. | .. |
|---|
| 61 | 60 | static inline void tsx_init(void) { } |
|---|
| 62 | 61 | #endif /* CONFIG_CPU_SUP_INTEL */ |
|---|
| 63 | 62 | |
|---|
| 63 | +extern void init_spectral_chicken(struct cpuinfo_x86 *c); |
|---|
| 64 | + |
|---|
| 64 | 65 | extern void get_cpu_cap(struct cpuinfo_x86 *c); |
|---|
| 65 | 66 | extern void get_cpu_address_sizes(struct cpuinfo_x86 *c); |
|---|
| 66 | 67 | extern void cpu_detect_cache_sizes(struct cpuinfo_x86 *c); |
|---|
| 67 | 68 | extern void init_scattered_cpuid_features(struct cpuinfo_x86 *c); |
|---|
| 68 | | -extern u32 get_scattered_cpuid_leaf(unsigned int level, |
|---|
| 69 | | - unsigned int sub_leaf, |
|---|
| 70 | | - enum cpuid_regs_idx reg); |
|---|
| 71 | 69 | extern void init_intel_cacheinfo(struct cpuinfo_x86 *c); |
|---|
| 72 | 70 | extern void init_amd_cacheinfo(struct cpuinfo_x86 *c); |
|---|
| 71 | +extern void init_hygon_cacheinfo(struct cpuinfo_x86 *c); |
|---|
| 73 | 72 | |
|---|
| 74 | 73 | extern void detect_num_cpu_cores(struct cpuinfo_x86 *c); |
|---|
| 75 | 74 | extern int detect_extended_topology_early(struct cpuinfo_x86 *c); |
|---|