int f00f_bug;
int coma_bug;
unsigned long loops_per_jiffy;
+ unsigned char x86_num_cores;
} __attribute__((__aligned__(SMP_CACHE_BYTES)));
#define X86_VENDOR_INTEL 0
#define current_cpu_data boot_cpu_data
#endif
+extern int phys_proc_id[NR_CPUS];
extern char ignore_fpu_irq;
extern void identify_cpu(struct cpuinfo_x86 *);
extern void print_cpu_info(struct cpuinfo_x86 *);
+extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c);
extern void dodgy_tsc(void);
+#ifdef CONFIG_X86_HT
+extern void detect_ht(struct cpuinfo_x86 *c);
+#else
+static inline void detect_ht(struct cpuinfo_x86 *c) {}
+#endif
+
/*
* EFLAGS bits
*/
/*
* Generic CPUID function
+ * clear %ecx since some cpus (Cyrix MII) do not set or clear %ecx
+ * resulting in stale register contents being returned.
*/
static inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx)
{
"=b" (*ebx),
"=c" (*ecx),
"=d" (*edx)
- : "0" (op));
+ : "0" (op), "c"(0));
}
/*
outb((data), 0x23); \
} while (0)
-/*
- * Bus types (default is ISA, but people can check others with these..)
- */
-extern int MCA_bus;
-
static inline void __monitor(const void *eax, unsigned long ecx,
unsigned long edx)
{
extern unsigned int BIOS_revision;
extern unsigned int mca_pentium_flag;
+/* Boot loader type from the setup header */
+extern int bootloader_type;
+
/*
* User space process size: (3GB default).
*/
#define cache_line_size() (boot_cpu_data.x86_cache_alignment)
+extern unsigned long boot_option_idle_override;
+
#endif /* __ASM_I386_PROCESSOR_H */