summaryrefslogtreecommitdiffstats
path: root/target-i386/kvm.c
diff options
context:
space:
mode:
authorEduardo Habkost <ehabkost@redhat.com>2012-10-04 17:48:56 -0300
committerMarcelo Tosatti <mtosatti@redhat.com>2012-10-30 23:39:46 -0200
commit829ae2f9fa37bf026de556f50d58ef14a7dab9b3 (patch)
treeecdc934903f9a24152475623861dbc994b195ba8 /target-i386/kvm.c
parent47111e2cfa1a83a99ac10ed19c7c8b02be4fe973 (diff)
downloadhqemu-829ae2f9fa37bf026de556f50d58ef14a7dab9b3.zip
hqemu-829ae2f9fa37bf026de556f50d58ef14a7dab9b3.tar.gz
i386: kvm: extract register switch to cpuid_entry_get_reg() function
No behavior change: just code movement. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'target-i386/kvm.c')
-rw-r--r--target-i386/kvm.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 18782e4..695deb9 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -123,6 +123,28 @@ static int get_para_features(KVMState *s)
}
+/* Returns the value for a specific register on the cpuid entry
+ */
+static uint32_t cpuid_entry_get_reg(struct kvm_cpuid_entry2 *entry, int reg)
+{
+ uint32_t ret = 0;
+ switch (reg) {
+ case R_EAX:
+ ret = entry->eax;
+ break;
+ case R_EBX:
+ ret = entry->ebx;
+ break;
+ case R_ECX:
+ ret = entry->ecx;
+ break;
+ case R_EDX:
+ ret = entry->edx;
+ break;
+ }
+ return ret;
+}
+
uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
uint32_t index, int reg)
{
@@ -142,20 +164,7 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
cpuid->entries[i].index == index) {
struct kvm_cpuid_entry2 *entry = &cpuid->entries[i];
found = true;
- switch (reg) {
- case R_EAX:
- ret = entry->eax;
- break;
- case R_EBX:
- ret = entry->ebx;
- break;
- case R_ECX:
- ret = entry->ecx;
- break;
- case R_EDX:
- ret = entry->edx;
- break;
- }
+ ret = cpuid_entry_get_reg(entry, reg);
}
}
OpenPOWER on IntegriCloud