aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86/microcode.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/include/asm-x86/microcode.h b/include/asm-x86/microcode.h
index 18b2aeec2adf..7ceff48fa657 100644
--- a/include/asm-x86/microcode.h
+++ b/include/asm-x86/microcode.h
@@ -1,14 +1,18 @@
1#ifndef ASM_X86__MICROCODE_H
2#define ASM_X86__MICROCODE_H
3
1extern int microcode_init(void *opaque, struct module *module); 4extern int microcode_init(void *opaque, struct module *module);
2extern void microcode_exit(void); 5extern void microcode_exit(void);
3 6
7struct cpu_signature;
8
4struct microcode_ops { 9struct microcode_ops {
5 long (*get_next_ucode)(void **mc, long offset); 10 long (*get_next_ucode)(void **mc, long offset);
6 long (*microcode_get_next_ucode)(void **mc, long offset); 11 long (*microcode_get_next_ucode)(void **mc, long offset);
7 int (*get_matching_microcode)(void *mc, int cpu); 12 int (*get_matching_microcode)(void *mc, int cpu);
8 int (*apply_microcode_check_cpu)(int cpu);
9 int (*microcode_sanity_check)(void *mc); 13 int (*microcode_sanity_check)(void *mc);
10 int (*cpu_request_microcode)(int cpu); 14 int (*cpu_request_microcode)(int cpu);
11 void (*collect_cpu_info)(int cpu_num); 15 int (*collect_cpu_info)(int cpu_num, struct cpu_signature *csig);
12 void (*apply_microcode)(int cpu); 16 void (*apply_microcode)(int cpu);
13 void (*microcode_fini_cpu)(int cpu); 17 void (*microcode_fini_cpu)(int cpu);
14 void (*clear_patch)(void *data); 18 void (*clear_patch)(void *data);
@@ -75,13 +79,21 @@ struct microcode_amd {
75 unsigned int mpb[0]; 79 unsigned int mpb[0];
76}; 80};
77 81
78struct ucode_cpu_info { 82struct cpu_signature {
79 int valid;
80 unsigned int sig; 83 unsigned int sig;
81 unsigned int pf; 84 unsigned int pf;
82 unsigned int rev; 85 unsigned int rev;
86};
87
88struct ucode_cpu_info {
89 struct cpu_signature cpu_sig;
90 int valid;
83 union { 91 union {
84 struct microcode_intel *mc_intel; 92 struct microcode_intel *mc_intel;
85 struct microcode_amd *mc_amd; 93 struct microcode_amd *mc_amd;
94 void *valid_mc;
86 } mc; 95 } mc;
87}; 96};
97extern struct ucode_cpu_info ucode_cpu_info[];
98
99#endif /* ASM_X86__MICROCODE_H */