summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPeter Oruba2008-07-28 18:44:20 +0200
committerIngo Molnar2008-07-28 19:57:57 +0200
commit26bf7a48c33906cc3415a4492aa9ead7a75f1353 (patch)
tree5e66a9e37bb9870489c80b12c6ee8ea54eb173d4 /include
parentx86: add AMD specific declarations (diff)
downloadkernel-qcow2-linux-26bf7a48c33906cc3415a4492aa9ead7a75f1353.tar.gz
kernel-qcow2-linux-26bf7a48c33906cc3415a4492aa9ead7a75f1353.tar.xz
kernel-qcow2-linux-26bf7a48c33906cc3415a4492aa9ead7a75f1353.zip
x86: first step of refactoring, introducing microcode_ops
Refactoring with the goal of having one general module and separate vendor specific modules that hook into the general one. Microcode_ops is a function pointer structure in which vendor specific modules will enter all functions that differ between vendors and that need to be accessed from the general module. Signed-off-by: Peter Oruba <peter.oruba@amd.com> Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86/microcode.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-x86/microcode.h b/include/asm-x86/microcode.h
index 4e941721c0d1..9231c876e374 100644
--- a/include/asm-x86/microcode.h
+++ b/include/asm-x86/microcode.h
@@ -1,3 +1,16 @@
+struct microcode_ops {
+ long (*get_next_ucode)(void **mc, long offset);
+ long (*microcode_get_next_ucode)(void **mc, long offset);
+ int (*get_matching_microcode)(void *mc, int cpu);
+ int (*apply_microcode_check_cpu)(int cpu);
+ int (*microcode_sanity_check)(void *mc);
+ int (*cpu_request_microcode)(int cpu);
+ void (*collect_cpu_info)(int cpu_num);
+ void (*apply_microcode)(int cpu);
+ void (*microcode_fini_cpu)(int cpu);
+ void (*clear_patch)(void *data);
+};
+
struct microcode_header_intel {
unsigned int hdrver;
unsigned int rev;