#include<linux/bootmem.h>#include<linux/linkage.h>#include<linux/bitops.h>#include<linux/kernel.h>#include<linux/module.h>#include<linux/percpu.h>#include<linux/string.h>#include<linux/delay.h>#include<linux/sched.h>#include<linux/init.h>#include<linux/kgdb.h>#include<linux/smp.h>#include<linux/io.h>#include<asm/stackprotector.h>#include<asm/perf_event.h>#include<asm/mmu_context.h>#include<asm/archrandom.h>#include<asm/hypervisor.h>#include<asm/processor.h>#include<asm/debugreg.h>#include<asm/sections.h>#include<linux/topology.h>#include<linux/cpumask.h>#include<asm/pgtable.h>#include<linux/atomic.h>#include<asm/proto.h>#include<asm/setup.h>#include<asm/apic.h>#include<asm/desc.h>#include<asm/i387.h>#include<asm/fpu-internal.h>#include<asm/mtrr.h>#include<linux/numa.h>#include<asm/asm.h>#include<asm/cpu.h>#include<asm/mce.h>#include<asm/msr.h>#include<asm/pat.h>#include<asm/microcode.h>#include<asm/microcode_intel.h>#ifdef CONFIG_X86_LOCAL_APIC#include<asm/uv/uv.h>#endif#include"cpu.h"/* all of these masks are initialized in setup_cpu_local_masks() */cpumask_var_tcpu_initialized_mask;cpumask_var_tcpu_callout_mask;cpumask_var_tcpu_callin_mask;/* representing cpus for which sibling maps can be computed */cpumask_var_tcpu_sibling_setup_mask;/* correctly size the local cpu masks */void__initsetup_cpu_local_masks(void){alloc_bootmem_cpumask_var(&cpu_initialized_mask);alloc_bootmem_cpumask_var(&cpu_callin_mask);alloc_bootmem_cpumask_var(&cpu_callout_mask);alloc_bootmem_cpumask_var(&cpu_sibling_setup_mask);}staticvoid__cpuinitdefault_init(structcpuinfo_x86*c){#ifdef CONFIG_X86_64cpu_detect_cache_sizes(c);#else/* Not much we can do here... *//* Check if at least it has cpuid */if(c->cpuid_level==-1){/* No cpuid. It must be an ancient CPU */if(c->x86==4)strcpy(c->x86_model_id,"486");elseif(c->x86==3)strcpy(c->x86_model_id,"386");}#endif}staticconststructcpu_dev__cpuinitconstdefault_cpu={.c_init