blob: 00a672a28e4565c6aa608fd443bdca268b328544 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#ifndef ASM_X86__MICROCODE_H
#define ASM_X86__MICROCODE_H
#include <xen/percpu.h>
struct cpu_signature;
struct ucode_cpu_info;
struct microcode_ops {
int (*microcode_resume_match)(int cpu, const void *mc);
int (*cpu_request_microcode)(int cpu, const void *buf, size_t size);
int (*collect_cpu_info)(int cpu, struct cpu_signature *csig);
int (*apply_microcode)(int cpu);
int (*start_update)(void);
};
struct cpu_signature {
unsigned int sig;
unsigned int pf;
unsigned int rev;
};
struct ucode_cpu_info {
struct cpu_signature cpu_sig;
union {
struct microcode_intel *mc_intel;
struct microcode_amd *mc_amd;
void *mc_valid;
} mc;
};
DECLARE_PER_CPU(struct ucode_cpu_info, ucode_cpu_info);
extern const struct microcode_ops *microcode_ops;
#endif /* ASM_X86__MICROCODE_H */
|