]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/kernel/cpu/cpu.h
Merge branch 'x86/uv' into x86/devel
[linux-2.6-omap-h63xx.git] / arch / x86 / kernel / cpu / cpu.h
index 2f6432cef6ffb68c4bd9391f34313d20ca66cdb1..4d894e8565feb6ad22b103f9c87ae51641ca0eda 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef ARCH_X86_CPU_H
+
+#define ARCH_X86_CPU_H
 
 struct cpu_model_info {
        int vendor;
@@ -14,6 +17,7 @@ struct cpu_dev {
 
        struct          cpu_model_info c_models[4];
 
+       void            (*c_early_init)(struct cpuinfo_x86 *c);
        void            (*c_init)(struct cpuinfo_x86 * c);
        void            (*c_identify)(struct cpuinfo_x86 * c);
        unsigned int    (*c_size_cache)(struct cpuinfo_x86 * c, unsigned int size);
@@ -21,8 +25,19 @@ struct cpu_dev {
 
 extern struct cpu_dev * cpu_devs [X86_VENDOR_NUM];
 
+struct cpu_vendor_dev {
+       int vendor;
+       struct cpu_dev *cpu_dev;
+};
+
+#define cpu_vendor_dev_register(cpu_vendor_id, cpu_dev) \
+       static struct cpu_vendor_dev __cpu_vendor_dev_##cpu_vendor_id __used \
+       __attribute__((__section__(".x86cpuvendor.init"))) = \
+       { cpu_vendor_id, cpu_dev }
+
+extern struct cpu_vendor_dev __x86cpuvendor_start[], __x86cpuvendor_end[];
+
 extern int get_model_name(struct cpuinfo_x86 *c);
 extern void display_cacheinfo(struct cpuinfo_x86 *c);
 
-extern void early_intel_workaround(struct cpuinfo_x86 *c);
-
+#endif