From: Glauber de Oliveira Costa Date: Wed, 30 Jan 2008 12:31:39 +0000 (+0100) Subject: x86: move definitions to processor.h X-Git-Tag: v2.6.25-rc1~1143^2~532 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a53905adddf6cc6d795bd7e988c60a19773f72e;p=linux-2.6 x86: move definitions to processor.h This patch moves definitions that are present in only one of the files (between processor_32.h and processor_64.h), to processor.h. They're mostly structures and function definitions. Signed-off-by: Glauber de Oliveira Costa Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner --- diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index ecd13c0e85..e48832a6c2 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -399,7 +399,7 @@ __setup("serialnumber", x86_serial_nr_setup); /* * This does the hard work of actually picking apart the CPU stuff... */ -static void __cpuinit identify_cpu(struct cpuinfo_x86 *c) +void __cpuinit identify_cpu(struct cpuinfo_x86 *c) { int i; diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c index 90b8bb4748..02409100f4 100644 --- a/arch/x86/kernel/setup_64.c +++ b/arch/x86/kernel/setup_64.c @@ -757,7 +757,7 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c) disable_apic_timer = 1; } -static void __cpuinit detect_ht(struct cpuinfo_x86 *c) +void __cpuinit detect_ht(struct cpuinfo_x86 *c) { #ifdef CONFIG_SMP u32 eax, ebx, ecx, edx; diff --git a/include/asm-x86/processor.h b/include/asm-x86/processor.h index 87466b6d3b..c6b749a018 100644 --- a/include/asm-x86/processor.h +++ b/include/asm-x86/processor.h @@ -96,7 +96,12 @@ struct cpuinfo_x86 { #define X86_VENDOR_NUM 9 #define X86_VENDOR_UNKNOWN 0xff +/* + * capabilities of CPUs + */ extern struct cpuinfo_x86 boot_cpu_data; +extern struct cpuinfo_x86 new_cpu_data; +extern struct tss_struct doublefault_tss; #ifdef CONFIG_SMP DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info); @@ -107,11 +112,22 @@ DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info); #define current_cpu_data boot_cpu_data #endif +void cpu_detect(struct cpuinfo_x86 *c); + +extern void identify_cpu(struct cpuinfo_x86 *); +extern void identify_boot_cpu(void); +extern void identify_secondary_cpu(struct cpuinfo_x86 *); extern void print_cpu_info(struct cpuinfo_x86 *); extern void init_scattered_cpuid_features(struct cpuinfo_x86 *c); extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c); extern unsigned short num_cache_leaves; +#if defined(CONFIG_X86_HT) || defined(CONFIG_X86_64) +extern void detect_ht(struct cpuinfo_x86 *c); +#else +static inline void detect_ht(struct cpuinfo_x86 *c) {} +#endif + static inline void native_cpuid(unsigned int *eax, unsigned int *ebx, unsigned int *ecx, unsigned int *edx) { @@ -205,6 +221,11 @@ struct tss_struct { DECLARE_PER_CPU(struct tss_struct, init_tss); +/* Save the original ist values for checking stack pointers during debugging */ +struct orig_ist { + unsigned long ist[7]; +}; + #ifdef CONFIG_X86_32 # include "processor_32.h" #else @@ -547,8 +568,28 @@ extern void select_idle_routine(const struct cpuinfo_x86 *c); extern unsigned long boot_option_idle_override; +extern void enable_sep_cpu(void); +extern int sysenter_setup(void); + +/* Defined in head.S */ +extern struct desc_ptr early_gdt_descr; + +extern void cpu_set_gdt(int); +extern void switch_to_new_gdt(void); +extern void cpu_init(void); +extern void init_gdt(int cpu); + +/* from system description table in BIOS. Mostly for MCA use, but + * others may find it useful. */ +extern unsigned int machine_id; +extern unsigned int machine_submodel_id; +extern unsigned int BIOS_revision; +extern unsigned int mca_pentium_flag; + /* Boot loader type from the setup header */ extern int bootloader_type; + +extern char ignore_fpu_irq; #define cache_line_size() (boot_cpu_data.x86_cache_alignment) #define HAVE_ARCH_PICK_MMAP_LAYOUT 1 diff --git a/include/asm-x86/processor_32.h b/include/asm-x86/processor_32.h index fa921aa1a9..84a4c5e47d 100644 --- a/include/asm-x86/processor_32.h +++ b/include/asm-x86/processor_32.h @@ -18,36 +18,12 @@ #include #include -/* - * capabilities of CPUs - */ -extern struct cpuinfo_x86 new_cpu_data; -extern struct tss_struct doublefault_tss; /* * the following now lives in the per cpu area: * extern int cpu_llc_id[NR_CPUS]; */ DECLARE_PER_CPU(u8, cpu_llc_id); -extern char ignore_fpu_irq; - -void __init cpu_detect(struct cpuinfo_x86 *c); - -extern void identify_boot_cpu(void); -extern void identify_secondary_cpu(struct cpuinfo_x86 *); - -#ifdef CONFIG_X86_HT -extern void detect_ht(struct cpuinfo_x86 *c); -#else -static inline void detect_ht(struct cpuinfo_x86 *c) {} -#endif - -/* from system description table in BIOS. Mostly for MCA use, but -others may find it useful. */ -extern unsigned int machine_id; -extern unsigned int machine_submodel_id; -extern unsigned int BIOS_revision; -extern unsigned int mca_pentium_flag; /* * User space process size: 3GB (default). @@ -277,15 +253,4 @@ static inline void prefetchw(const void *x) "r" (x)); } -extern void enable_sep_cpu(void); -extern int sysenter_setup(void); - -/* Defined in head.S */ -extern struct desc_ptr early_gdt_descr; - -extern void cpu_set_gdt(int); -extern void switch_to_new_gdt(void); -extern void cpu_init(void); -extern void init_gdt(int cpu); - #endif /* __ASM_I386_PROCESSOR_H */ diff --git a/include/asm-x86/processor_64.h b/include/asm-x86/processor_64.h index 1a258749b7..45e382989b 100644 --- a/include/asm-x86/processor_64.h +++ b/include/asm-x86/processor_64.h @@ -17,8 +17,6 @@ #include #include -extern void identify_cpu(struct cpuinfo_x86 *); - /* * User space process size. 47bits minus one guard page. */ @@ -51,10 +49,6 @@ union i387_union { struct i387_fxsave_struct fxsave; }; -/* Save the original ist values for checking stack pointers during debugging */ -struct orig_ist { - unsigned long ist[7]; -}; DECLARE_PER_CPU(struct orig_ist, orig_ist); #define INIT_THREAD { \