blob: f5d5bb1b554130874d3f681d1bc7173b037d7178 [file] [log] [blame]
Robert Richter9e26d842008-06-06 12:01:13 +02001#ifdef CONFIG_X86_32
Linus Torvalds1da177e2005-04-16 15:20:36 -07002
3struct cpu_model_info {
4 int vendor;
5 int family;
6 char *model_names[16];
7};
8
9/* attempt to consolidate cpu attributes */
10struct cpu_dev {
11 char * c_vendor;
12
13 /* some have two possibilities for cpuid string */
14 char * c_ident[2];
15
16 struct cpu_model_info c_models[4];
17
Thomas Petazzoni03ae5762008-02-15 12:00:23 +010018 void (*c_early_init)(struct cpuinfo_x86 *c);
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 void (*c_init)(struct cpuinfo_x86 * c);
20 void (*c_identify)(struct cpuinfo_x86 * c);
21 unsigned int (*c_size_cache)(struct cpuinfo_x86 * c, unsigned int size);
22};
23
24extern struct cpu_dev * cpu_devs [X86_VENDOR_NUM];
25
Thomas Petazzoni03ae5762008-02-15 12:00:23 +010026struct cpu_vendor_dev {
27 int vendor;
28 struct cpu_dev *cpu_dev;
29};
30
31#define cpu_vendor_dev_register(cpu_vendor_id, cpu_dev) \
32 static struct cpu_vendor_dev __cpu_vendor_dev_##cpu_vendor_id __used \
33 __attribute__((__section__(".x86cpuvendor.init"))) = \
34 { cpu_vendor_id, cpu_dev }
35
36extern struct cpu_vendor_dev __x86cpuvendor_start[], __x86cpuvendor_end[];
37
Linus Torvalds1da177e2005-04-16 15:20:36 -070038extern int get_model_name(struct cpuinfo_x86 *c);
39extern void display_cacheinfo(struct cpuinfo_x86 *c);
Robert Richter9e26d842008-06-06 12:01:13 +020040
41#endif /* CONFIG_X86_32 */
42
43extern void __cpuinit amd_enable_pci_ext_cfg(struct cpuinfo_x86 *c);