| Yinghai Lu | dcd32b6 | 2008-06-20 08:18:09 +0200 | [diff] [blame] | 1 | #ifndef ARCH_X86_CPU_H | 
 | 2 |  | 
 | 3 | #define ARCH_X86_CPU_H | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 4 |  | 
 | 5 | struct cpu_model_info { | 
 | 6 | 	int vendor; | 
 | 7 | 	int family; | 
 | 8 | 	char *model_names[16]; | 
 | 9 | }; | 
 | 10 |  | 
 | 11 | /* attempt to consolidate cpu attributes */ | 
 | 12 | struct cpu_dev { | 
 | 13 | 	char	* c_vendor; | 
 | 14 |  | 
 | 15 | 	/* some have two possibilities for cpuid string */ | 
 | 16 | 	char	* c_ident[2];	 | 
 | 17 |  | 
 | 18 | 	struct		cpu_model_info c_models[4]; | 
 | 19 |  | 
| Thomas Petazzoni | 03ae576 | 2008-02-15 12:00:23 +0100 | [diff] [blame] | 20 | 	void            (*c_early_init)(struct cpuinfo_x86 *c); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 21 | 	void		(*c_init)(struct cpuinfo_x86 * c); | 
 | 22 | 	void		(*c_identify)(struct cpuinfo_x86 * c); | 
 | 23 | 	unsigned int	(*c_size_cache)(struct cpuinfo_x86 * c, unsigned int size); | 
 | 24 | }; | 
 | 25 |  | 
 | 26 | extern struct cpu_dev * cpu_devs [X86_VENDOR_NUM]; | 
 | 27 |  | 
| Thomas Petazzoni | 03ae576 | 2008-02-15 12:00:23 +0100 | [diff] [blame] | 28 | struct cpu_vendor_dev { | 
 | 29 | 	int vendor; | 
 | 30 | 	struct cpu_dev *cpu_dev; | 
 | 31 | }; | 
 | 32 |  | 
 | 33 | #define cpu_vendor_dev_register(cpu_vendor_id, cpu_dev) \ | 
 | 34 | 	static struct cpu_vendor_dev __cpu_vendor_dev_##cpu_vendor_id __used \ | 
 | 35 | 	__attribute__((__section__(".x86cpuvendor.init"))) = \ | 
 | 36 | 	{ cpu_vendor_id, cpu_dev } | 
 | 37 |  | 
 | 38 | extern struct cpu_vendor_dev __x86cpuvendor_start[], __x86cpuvendor_end[]; | 
 | 39 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 40 | extern int get_model_name(struct cpuinfo_x86 *c); | 
 | 41 | extern void display_cacheinfo(struct cpuinfo_x86 *c); | 
| Robert Richter | 9e26d84 | 2008-06-06 12:01:13 +0200 | [diff] [blame] | 42 |  | 
| Yinghai Lu | dcd32b6 | 2008-06-20 08:18:09 +0200 | [diff] [blame] | 43 | #endif |