]>
Commit | Line | Data |
---|---|---|
dcd32b6a | 1 | #ifndef ARCH_X86_CPU_H |
dcd32b6a | 2 | #define ARCH_X86_CPU_H |
1da177e4 LT |
3 | |
4 | struct cpu_model_info { | |
f2362e6f JSR |
5 | int vendor; |
6 | int family; | |
7 | const char *model_names[16]; | |
1da177e4 LT |
8 | }; |
9 | ||
10 | /* attempt to consolidate cpu attributes */ | |
11 | struct cpu_dev { | |
f2362e6f | 12 | const char *c_vendor; |
1da177e4 LT |
13 | |
14 | /* some have two possibilities for cpuid string */ | |
f2362e6f | 15 | const char *c_ident[2]; |
1da177e4 LT |
16 | |
17 | struct cpu_model_info c_models[4]; | |
18 | ||
f2362e6f | 19 | void (*c_early_init)(struct cpuinfo_x86 *); |
a110b5ec | 20 | void (*c_bsp_init)(struct cpuinfo_x86 *); |
f2362e6f JSR |
21 | void (*c_init)(struct cpuinfo_x86 *); |
22 | void (*c_identify)(struct cpuinfo_x86 *); | |
e0ba94f1 | 23 | void (*c_detect_tlb)(struct cpuinfo_x86 *); |
f2362e6f JSR |
24 | unsigned int (*c_size_cache)(struct cpuinfo_x86 *, unsigned int); |
25 | int c_x86_vendor; | |
1da177e4 LT |
26 | }; |
27 | ||
e0ba94f1 AS |
28 | struct _tlb_table { |
29 | unsigned char descriptor; | |
30 | char tlb_type; | |
31 | unsigned int entries; | |
32 | /* unsigned int ways; */ | |
33 | char info[128]; | |
34 | }; | |
35 | ||
10a434fc | 36 | #define cpu_dev_register(cpu_devX) \ |
02dde8b4 | 37 | static const struct cpu_dev *const __cpu_dev_##cpu_devX __used \ |
10a434fc YL |
38 | __attribute__((__section__(".x86_cpu_dev.init"))) = \ |
39 | &cpu_devX; | |
1da177e4 | 40 | |
02dde8b4 JB |
41 | extern const struct cpu_dev *const __x86_cpu_dev_start[], |
42 | *const __x86_cpu_dev_end[]; | |
03ae5768 | 43 | |
c2b9ff24 | 44 | extern void get_cpu_cap(struct cpuinfo_x86 *c); |
27c13ece | 45 | extern void cpu_detect_cache_sizes(struct cpuinfo_x86 *c); |
d059f24a | 46 | #endif /* ARCH_X86_CPU_H */ |