summaryrefslogtreecommitdiff
path: root/kvm.h
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2011-01-21 21:48:17 +0100
committerMarcelo Tosatti <mtosatti@redhat.com>2011-01-23 02:27:22 -0200
commit600ff968d9900ac8ddb7908fd4e60d9d9c327960 (patch)
tree0271405cd56c03f2a7578169e4682e731d4f80ab /kvm.h
parent643a70821877a59bd1ae6f1a172edbdcaa31c72b (diff)
downloadqemu-600ff968d9900ac8ddb7908fd4e60d9d9c327960.tar.gz
qemu-600ff968d9900ac8ddb7908fd4e60d9d9c327960.tar.bz2
qemu-600ff968d9900ac8ddb7908fd4e60d9d9c327960.zip
kvm: Consolidate must-have capability checks
Instead of splattering the code with #ifdefs and runtime checks for capabilities we cannot work without anyway, provide central test infrastructure for verifying their availability both at build and runtime. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'kvm.h')
-rw-r--r--kvm.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/kvm.h b/kvm.h
index a9717528e2..ca57517af2 100644
--- a/kvm.h
+++ b/kvm.h
@@ -32,6 +32,14 @@ extern int kvm_allowed;
struct kvm_run;
+typedef struct KVMCapabilityInfo {
+ const char *name;
+ int value;
+} KVMCapabilityInfo;
+
+#define KVM_CAP_INFO(CAP) { "KVM_CAP_" stringify(CAP), KVM_CAP_##CAP }
+#define KVM_CAP_LAST_INFO { NULL, 0 }
+
/* external API */
int kvm_init(void);
@@ -86,6 +94,8 @@ int kvm_vcpu_ioctl(CPUState *env, int type, ...);
/* Arch specific hooks */
+extern const KVMCapabilityInfo kvm_arch_required_capabilities[];
+
int kvm_arch_post_run(CPUState *env, struct kvm_run *run);
int kvm_arch_handle_exit(CPUState *env, struct kvm_run *run);