#ifndef _ASM_X86_MICROCODE_H
#define _ASM_X86_MICROCODE_H
struct cpu_signature { … };
struct ucode_cpu_info { … };
#ifdef CONFIG_MICROCODE
void load_ucode_bsp(void);
void load_ucode_ap(void);
void microcode_bsp_resume(void);
#else
static inline void load_ucode_bsp(void) { }
static inline void load_ucode_ap(void) { }
static inline void microcode_bsp_resume(void) { }
#endif
extern unsigned long initrd_start_early;
#ifdef CONFIG_CPU_SUP_INTEL
struct microcode_header_intel { … };
struct microcode_intel { … };
#define DEFAULT_UCODE_DATASIZE …
#define MC_HEADER_SIZE …
#define MC_HEADER_TYPE_MICROCODE …
#define MC_HEADER_TYPE_IFS …
static inline int intel_microcode_get_datasize(struct microcode_header_intel *hdr)
{ … }
static inline u32 intel_get_microcode_revision(void)
{ … }
#endif
bool microcode_nmi_handler(void);
void microcode_offline_nmi_handler(void);
#ifdef CONFIG_MICROCODE_LATE_LOADING
DECLARE_STATIC_KEY_FALSE(microcode_nmi_handler_enable);
static __always_inline bool microcode_nmi_handler_enabled(void)
{ … }
#else
static __always_inline bool microcode_nmi_handler_enabled(void) { return false; }
#endif
#endif