1 #ifndef _ASM_X86_MICROCODE_H
2 #define _ASM_X86_MICROCODE_H
12 enum ucode_state
{ UCODE_ERROR
, UCODE_OK
, UCODE_NFOUND
};
14 struct microcode_ops
{
15 void (*init
)(struct device
*device
);
17 enum ucode_state (*request_microcode_user
) (int cpu
,
18 const void __user
*buf
, size_t size
);
20 enum ucode_state (*request_microcode_fw
) (int cpu
,
21 struct device
*device
);
23 void (*microcode_fini_cpu
) (int cpu
);
26 * The generic 'microcode_core' part guarantees that
27 * the callbacks below run on a target cpu when they
29 * See also the "Synchronization" section in microcode_core.c.
31 int (*apply_microcode
) (int cpu
);
32 int (*collect_cpu_info
) (int cpu
, struct cpu_signature
*csig
);
35 struct ucode_cpu_info
{
36 struct cpu_signature cpu_sig
;
40 extern struct ucode_cpu_info ucode_cpu_info
[];
42 #ifdef CONFIG_MICROCODE_INTEL
43 extern struct microcode_ops
* __init
init_intel_microcode(void);
45 static inline struct microcode_ops
* __init
init_intel_microcode(void)
49 #endif /* CONFIG_MICROCODE_INTEL */
51 #ifdef CONFIG_MICROCODE_AMD
52 extern struct microcode_ops
* __init
init_amd_microcode(void);
54 static inline struct microcode_ops
* __init
init_amd_microcode(void)
60 #endif /* _ASM_X86_MICROCODE_H */