Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
x86
kvm
cpuid.h
Go to the documentation of this file.
1
#ifndef ARCH_X86_KVM_CPUID_H
2
#define ARCH_X86_KVM_CPUID_H
3
4
#include "
x86.h
"
5
6
void
kvm_update_cpuid
(
struct
kvm_vcpu
*vcpu);
7
struct
kvm_cpuid_entry2
*
kvm_find_cpuid_entry
(
struct
kvm_vcpu
*vcpu,
8
u32
function
,
u32
index
);
9
int
kvm_dev_ioctl_get_supported_cpuid
(
struct
kvm_cpuid2
*
cpuid
,
10
struct
kvm_cpuid_entry2
__user *
entries
);
11
int
kvm_vcpu_ioctl_set_cpuid
(
struct
kvm_vcpu
*vcpu,
12
struct
kvm_cpuid
*
cpuid
,
13
struct
kvm_cpuid_entry
__user *
entries
);
14
int
kvm_vcpu_ioctl_set_cpuid2
(
struct
kvm_vcpu
*vcpu,
15
struct
kvm_cpuid2
*
cpuid
,
16
struct
kvm_cpuid_entry2
__user *
entries
);
17
int
kvm_vcpu_ioctl_get_cpuid2
(
struct
kvm_vcpu
*vcpu,
18
struct
kvm_cpuid2
*
cpuid
,
19
struct
kvm_cpuid_entry2
__user *
entries
);
20
void
kvm_cpuid
(
struct
kvm_vcpu
*vcpu,
u32
*
eax
,
u32
*
ebx
,
u32
*
ecx
,
u32
*
edx
);
21
22
23
static
inline
bool
guest_cpuid_has_xsave(
struct
kvm_vcpu
*vcpu)
24
{
25
struct
kvm_cpuid_entry2
*best;
26
27
if
(!static_cpu_has(
X86_FEATURE_XSAVE
))
28
return
0;
29
30
best =
kvm_find_cpuid_entry
(vcpu, 1, 0);
31
return
best && (best->
ecx
&
bit
(
X86_FEATURE_XSAVE
));
32
}
33
34
static
inline
bool
guest_cpuid_has_smep(
struct
kvm_vcpu
*vcpu)
35
{
36
struct
kvm_cpuid_entry2
*best;
37
38
best =
kvm_find_cpuid_entry
(vcpu, 7, 0);
39
return
best && (best->
ebx
&
bit
(
X86_FEATURE_SMEP
));
40
}
41
42
static
inline
bool
guest_cpuid_has_fsgsbase(
struct
kvm_vcpu
*vcpu)
43
{
44
struct
kvm_cpuid_entry2
*best;
45
46
best =
kvm_find_cpuid_entry
(vcpu, 7, 0);
47
return
best && (best->
ebx
&
bit
(
X86_FEATURE_FSGSBASE
));
48
}
49
50
static
inline
bool
guest_cpuid_has_osvw(
struct
kvm_vcpu
*vcpu)
51
{
52
struct
kvm_cpuid_entry2
*best;
53
54
best =
kvm_find_cpuid_entry
(vcpu, 0x80000001, 0);
55
return
best && (best->
ecx
&
bit
(
X86_FEATURE_OSVW
));
56
}
57
58
static
inline
bool
guest_cpuid_has_pcid(
struct
kvm_vcpu
*vcpu)
59
{
60
struct
kvm_cpuid_entry2
*best;
61
62
best =
kvm_find_cpuid_entry
(vcpu, 1, 0);
63
return
best && (best->
ecx
&
bit
(
X86_FEATURE_PCID
));
64
}
65
66
#endif
Generated on Thu Jan 10 2013 13:21:08 for Linux Kernel by
1.8.2