cregit-Linux how code gets into the kernel

Release 4.8 arch/x86/include/asm/microcode_intel.h

#ifndef _ASM_X86_MICROCODE_INTEL_H

#define _ASM_X86_MICROCODE_INTEL_H

#include <asm/microcode.h>


struct microcode_header_intel {
	
unsigned int            hdrver;
	
unsigned int            rev;
	
unsigned int            date;
	
unsigned int            sig;
	
unsigned int            cksum;
	
unsigned int            ldrver;
	
unsigned int            pf;
	
unsigned int            datasize;
	
unsigned int            totalsize;
	
unsigned int            reserved[3];
};


struct microcode_intel {
	
struct microcode_header_intel hdr;
	
unsigned int            bits[0];
};

/* microcode format is extended from prescott processors */

struct extended_signature {
	
unsigned int            sig;
	
unsigned int            pf;
	
unsigned int            cksum;
};


struct extended_sigtable {
	
unsigned int            count;
	
unsigned int            cksum;
	
unsigned int            reserved[3];
	
struct extended_signature sigs[0];
};


#define DEFAULT_UCODE_DATASIZE	(2000)

#define MC_HEADER_SIZE		(sizeof(struct microcode_header_intel))

#define DEFAULT_UCODE_TOTALSIZE (DEFAULT_UCODE_DATASIZE + MC_HEADER_SIZE)

#define EXT_HEADER_SIZE		(sizeof(struct extended_sigtable))

#define EXT_SIGNATURE_SIZE	(sizeof(struct extended_signature))


#define get_totalsize(mc) \
	(((struct microcode_intel *)mc)->hdr.datasize ? \
         ((struct microcode_intel *)mc)->hdr.totalsize : \
         DEFAULT_UCODE_TOTALSIZE)


#define get_datasize(mc) \
	(((struct microcode_intel *)mc)->hdr.datasize ? \
         ((struct microcode_intel *)mc)->hdr.datasize : DEFAULT_UCODE_DATASIZE)


#define exttable_size(et) ((et)->count * EXT_SIGNATURE_SIZE + EXT_HEADER_SIZE)

extern int has_newer_microcode(void *mc, unsigned int csig, int cpf, int rev);
extern int microcode_sanity_check(void *mc, int print_err);
extern int find_matching_signature(void *mc, unsigned int csig, int cpf);

#ifdef CONFIG_MICROCODE_INTEL
extern void __init load_ucode_intel_bsp(void);
extern void load_ucode_intel_ap(void);
extern void show_ucode_info_early(void);
extern int __init save_microcode_in_initrd_intel(void);
void reload_ucode_intel(void);
#else

static inline __init void load_ucode_intel_bsp(void) {}

Contributors

PersonTokensPropCommitsCommitProp
fenghua yufenghua yu9100.00%1100.00%
Total9100.00%1100.00%


static inline void load_ucode_intel_ap(void) {}

Contributors

PersonTokensPropCommitsCommitProp
fenghua yufenghua yu8100.00%1100.00%
Total8100.00%1100.00%


static inline void show_ucode_info_early(void) {}

Contributors

PersonTokensPropCommitsCommitProp
fenghua yufenghua yu8100.00%1100.00%
Total8100.00%1100.00%


static inline int __init save_microcode_in_initrd_intel(void) { return -EINVAL; }

Contributors

PersonTokensPropCommitsCommitProp
jacob shinjacob shin14100.00%1100.00%
Total14100.00%1100.00%


static inline void reload_ucode_intel(void) {}

Contributors

PersonTokensPropCommitsCommitProp
borislav petkovborislav petkov8100.00%1100.00%
Total8100.00%1100.00%

#endif #endif /* _ASM_X86_MICROCODE_INTEL_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
fenghua yufenghua yu25183.39%112.50%
borislav petkovborislav petkov278.97%562.50%
jacob shinjacob shin227.31%112.50%
henrique de moraes holschuhhenrique de moraes holschuh10.33%112.50%
Total301100.00%8100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.