Commit 1a53905a authored by Glauber de Oliveira Costa's avatar Glauber de Oliveira Costa Committed by Ingo Molnar

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: default avatarGlauber de Oliveira Costa <gcosta@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent fc87e906
...@@ -399,7 +399,7 @@ __setup("serialnumber", x86_serial_nr_setup); ...@@ -399,7 +399,7 @@ __setup("serialnumber", x86_serial_nr_setup);
/* /*
* This does the hard work of actually picking apart the CPU stuff... * 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; int i;
......
...@@ -757,7 +757,7 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c) ...@@ -757,7 +757,7 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
disable_apic_timer = 1; disable_apic_timer = 1;
} }
static void __cpuinit detect_ht(struct cpuinfo_x86 *c) void __cpuinit detect_ht(struct cpuinfo_x86 *c)
{ {
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
u32 eax, ebx, ecx, edx; u32 eax, ebx, ecx, edx;
......
...@@ -96,7 +96,12 @@ struct cpuinfo_x86 { ...@@ -96,7 +96,12 @@ struct cpuinfo_x86 {
#define X86_VENDOR_NUM 9 #define X86_VENDOR_NUM 9
#define X86_VENDOR_UNKNOWN 0xff #define X86_VENDOR_UNKNOWN 0xff
/*
* capabilities of CPUs
*/
extern struct cpuinfo_x86 boot_cpu_data; extern struct cpuinfo_x86 boot_cpu_data;
extern struct cpuinfo_x86 new_cpu_data;
extern struct tss_struct doublefault_tss;
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info); DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info);
...@@ -107,11 +112,22 @@ 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 #define current_cpu_data boot_cpu_data
#endif #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 print_cpu_info(struct cpuinfo_x86 *);
extern void init_scattered_cpuid_features(struct cpuinfo_x86 *c); extern void init_scattered_cpuid_features(struct cpuinfo_x86 *c);
extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c); extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c);
extern unsigned short num_cache_leaves; 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, static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
unsigned int *ecx, unsigned int *edx) unsigned int *ecx, unsigned int *edx)
{ {
...@@ -205,6 +221,11 @@ struct tss_struct { ...@@ -205,6 +221,11 @@ struct tss_struct {
DECLARE_PER_CPU(struct tss_struct, init_tss); 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 #ifdef CONFIG_X86_32
# include "processor_32.h" # include "processor_32.h"
#else #else
...@@ -547,8 +568,28 @@ extern void select_idle_routine(const struct cpuinfo_x86 *c); ...@@ -547,8 +568,28 @@ extern void select_idle_routine(const struct cpuinfo_x86 *c);
extern unsigned long boot_option_idle_override; 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 */ /* Boot loader type from the setup header */
extern int bootloader_type; extern int bootloader_type;
extern char ignore_fpu_irq;
#define cache_line_size() (boot_cpu_data.x86_cache_alignment) #define cache_line_size() (boot_cpu_data.x86_cache_alignment)
#define HAVE_ARCH_PICK_MMAP_LAYOUT 1 #define HAVE_ARCH_PICK_MMAP_LAYOUT 1
......
...@@ -18,36 +18,12 @@ ...@@ -18,36 +18,12 @@
#include <linux/init.h> #include <linux/init.h>
#include <asm/desc_defs.h> #include <asm/desc_defs.h>
/*
* 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: * the following now lives in the per cpu area:
* extern int cpu_llc_id[NR_CPUS]; * extern int cpu_llc_id[NR_CPUS];
*/ */
DECLARE_PER_CPU(u8, cpu_llc_id); 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). * User space process size: 3GB (default).
...@@ -277,15 +253,4 @@ static inline void prefetchw(const void *x) ...@@ -277,15 +253,4 @@ static inline void prefetchw(const void *x)
"r" (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 */ #endif /* __ASM_I386_PROCESSOR_H */
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
#include <linux/personality.h> #include <linux/personality.h>
#include <asm/desc_defs.h> #include <asm/desc_defs.h>
extern void identify_cpu(struct cpuinfo_x86 *);
/* /*
* User space process size. 47bits minus one guard page. * User space process size. 47bits minus one guard page.
*/ */
...@@ -51,10 +49,6 @@ union i387_union { ...@@ -51,10 +49,6 @@ union i387_union {
struct i387_fxsave_struct fxsave; 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); DECLARE_PER_CPU(struct orig_ist, orig_ist);
#define INIT_THREAD { \ #define INIT_THREAD { \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment