1 #ifndef ASM_X86__MICROCODE_H 2 #define ASM_X86__MICROCODE_H 3 4 #include <xen/types.h> 5 #include <xen/percpu.h> 6 7 #include <public/xen.h> 8 9 struct multiboot_info; 10 11 struct cpu_signature { 12 /* CPU signature (CPUID.1.EAX). */ 13 unsigned int sig; 14 15 /* Platform Flags. Only applicable to Intel. */ 16 unsigned int pf; 17 18 /* Microcode Revision. */ 19 unsigned int rev; 20 }; 21 22 DECLARE_PER_CPU(struct cpu_signature, cpu_sig); 23 24 void microcode_set_module(unsigned int idx); 25 int ucode_update_hcall(XEN_GUEST_HANDLE(const_void) buf, 26 unsigned long len, unsigned int flags); 27 int microcode_update_one(void); 28 29 struct boot_info; 30 int early_microcode_init(struct boot_info *bi); 31 32 #endif /* ASM_X86__MICROCODE_H */ 33