• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/x86/include/asm/
1#ifndef _ASM_X86_MICROCODE_H
2#define _ASM_X86_MICROCODE_H
3
4struct cpu_signature {
5	unsigned int sig;
6	unsigned int pf;
7	unsigned int rev;
8};
9
10struct device;
11
12enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND };
13
14struct microcode_ops {
15	enum ucode_state (*request_microcode_user) (int cpu,
16				const void __user *buf, size_t size);
17
18	enum ucode_state (*request_microcode_fw) (int cpu,
19				struct device *device);
20
21	void (*microcode_fini_cpu) (int cpu);
22
23	/*
24	 * The generic 'microcode_core' part guarantees that
25	 * the callbacks below run on a target cpu when they
26	 * are being called.
27	 * See also the "Synchronization" section in microcode_core.c.
28	 */
29	int (*apply_microcode) (int cpu);
30	int (*collect_cpu_info) (int cpu, struct cpu_signature *csig);
31};
32
33struct ucode_cpu_info {
34	struct cpu_signature	cpu_sig;
35	int			valid;
36	void			*mc;
37};
38extern struct ucode_cpu_info ucode_cpu_info[];
39
40#ifdef CONFIG_MICROCODE_INTEL
41extern struct microcode_ops * __init init_intel_microcode(void);
42#else
43static inline struct microcode_ops * __init init_intel_microcode(void)
44{
45	return NULL;
46}
47#endif /* CONFIG_MICROCODE_INTEL */
48
49#ifdef CONFIG_MICROCODE_AMD
50extern struct microcode_ops * __init init_amd_microcode(void);
51#else
52static inline struct microcode_ops * __init init_amd_microcode(void)
53{
54	return NULL;
55}
56#endif
57
58#endif /* _ASM_X86_MICROCODE_H */
59