Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/cpuid.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef __X86_CPUID_H__
2
#define __X86_CPUID_H__
3
4
#include <asm/cpufeatureset.h>
5
#include <asm/percpu.h>
6
7
8
#define FEATURESET_1d     0 /* 0x00000001.edx      */
8
8
#define FEATURESET_1c     1 /* 0x00000001.ecx      */
9
8
#define FEATURESET_e1d    2 /* 0x80000001.edx      */
10
8
#define FEATURESET_e1c    3 /* 0x80000001.ecx      */
11
8
#define FEATURESET_Da1    4 /* 0x0000000d:1.eax    */
12
12
#define FEATURESET_7b0    5 /* 0x00000007:0.ebx    */
13
8
#define FEATURESET_7c0    6 /* 0x00000007:0.ecx    */
14
8
#define FEATURESET_e7d    7 /* 0x80000007.edx      */
15
8
#define FEATURESET_e8b    8 /* 0x80000008.ebx      */
16
8
#define FEATURESET_7d0    9 /* 0x00000007:0.edx    */
17
18
#ifndef __ASSEMBLY__
19
#include <xen/types.h>
20
#include <xen/kernel.h>
21
#include <asm/x86_emulate.h>
22
#include <public/sysctl.h>
23
24
extern const uint32_t known_features[FSCAPINTS];
25
extern const uint32_t special_features[FSCAPINTS];
26
27
void init_guest_cpuid(void);
28
29
const uint32_t *lookup_deep_deps(uint32_t feature);
30
31
/*
32
 * Expected levelling capabilities (given cpuid vendor/family information),
33
 * and levelling capabilities actually available (given MSR probing).
34
 */
35
2
#define LCAP_faulting XEN_SYSCTL_CPU_LEVELCAP_faulting
36
0
#define LCAP_1cd      (XEN_SYSCTL_CPU_LEVELCAP_ecx |        \
37
0
                       XEN_SYSCTL_CPU_LEVELCAP_edx)
38
0
#define LCAP_e1cd     (XEN_SYSCTL_CPU_LEVELCAP_extd_ecx |   \
39
0
                       XEN_SYSCTL_CPU_LEVELCAP_extd_edx)
40
0
#define LCAP_Da1      XEN_SYSCTL_CPU_LEVELCAP_xsave_eax
41
0
#define LCAP_6c       XEN_SYSCTL_CPU_LEVELCAP_thermal_ecx
42
0
#define LCAP_7ab0     (XEN_SYSCTL_CPU_LEVELCAP_l7s0_eax |   \
43
0
                       XEN_SYSCTL_CPU_LEVELCAP_l7s0_ebx)
44
extern unsigned int expected_levelling_cap, levelling_caps;
45
46
struct cpuidmasks
47
{
48
    uint64_t _1cd;
49
    uint64_t e1cd;
50
    uint64_t Da1;
51
    uint64_t _6c;
52
    uint64_t _7ab0;
53
};
54
55
/* Per CPU shadows of masking MSR values, for lazy context switching. */
56
DECLARE_PER_CPU(struct cpuidmasks, cpuidmasks);
57
58
/* Default masking MSR values, calculated at boot. */
59
extern struct cpuidmasks cpuidmask_defaults;
60
61
/* Whether or not cpuid faulting is available for the current domain. */
62
DECLARE_PER_CPU(bool, cpuid_faulting_enabled);
63
64
2.65k
#define CPUID_GUEST_NR_BASIC      (0xdu + 1)
65
#define CPUID_GUEST_NR_FEAT       (0u + 1)
66
#define CPUID_GUEST_NR_CACHE      (5u + 1)
67
#define CPUID_GUEST_NR_XSTATE     (62u + 1)
68
#define CPUID_GUEST_NR_EXTD_INTEL (0x8u + 1)
69
#define CPUID_GUEST_NR_EXTD_AMD   (0x1cu + 1)
70
8
#define CPUID_GUEST_NR_EXTD       MAX(CPUID_GUEST_NR_EXTD_INTEL, \
71
8
                                      CPUID_GUEST_NR_EXTD_AMD)
72
73
struct cpuid_policy
74
{
75
#define DECL_BITFIELD(word) _DECL_BITFIELD(FEATURESET_ ## word)
76
#define _DECL_BITFIELD(x)   __DECL_BITFIELD(x)
77
#define __DECL_BITFIELD(x)  CPUID_BITFIELD_ ## x
78
79
    /* Basic leaves: 0x000000xx */
80
    union {
81
        struct cpuid_leaf raw[CPUID_GUEST_NR_BASIC];
82
        struct {
83
            /* Leaf 0x0 - Max and vendor. */
84
            uint32_t max_leaf, vendor_ebx, vendor_ecx, vendor_edx;
85
86
            /* Leaf 0x1 - Family/model/stepping and features. */
87
            uint32_t raw_fms;
88
            uint8_t :8,       /* Brand ID. */
89
                clflush_size, /* Number of 8-byte blocks per cache line. */
90
                lppp,         /* Logical processors per package. */
91
                apic_id;      /* Initial APIC ID. */
92
            union {
93
                uint32_t _1c;
94
                struct { DECL_BITFIELD(1c); };
95
            };
96
            union {
97
                uint32_t _1d;
98
                struct { DECL_BITFIELD(1d); };
99
            };
100
101
            /* Leaf 0x2 - TLB/Cache/Prefetch. */
102
            uint8_t l2_nr_queries; /* Documented as fixed to 1. */
103
            uint8_t l2_desc[15];
104
105
            uint64_t :64, :64; /* Leaf 0x3 - PSN. */
106
            uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
107
            uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
108
            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
109
            uint64_t :64, :64; /* Leaf 0x7 - Structured Features. */
110
            uint64_t :64, :64; /* Leaf 0x8 - rsvd */
111
            uint64_t :64, :64; /* Leaf 0x9 - DCA */
112
113
            /* Leaf 0xa - Intel PMU. */
114
            uint8_t pmu_version;
115
        };
116
    } basic;
117
118
    /* Structured cache leaf: 0x00000004[xx] */
119
    union {
120
        struct cpuid_leaf raw[CPUID_GUEST_NR_CACHE];
121
        struct cpuid_cache_leaf {
122
            uint32_t type:5,
123
                :27, :32, :32, :32;
124
        } subleaf[CPUID_GUEST_NR_CACHE];
125
    } cache;
126
127
    /* Structured feature leaf: 0x00000007[xx] */
128
    union {
129
        struct cpuid_leaf raw[CPUID_GUEST_NR_FEAT];
130
        struct {
131
            /* Subleaf 0. */
132
            uint32_t max_subleaf;
133
            union {
134
                uint32_t _7b0;
135
                struct { DECL_BITFIELD(7b0); };
136
            };
137
            union {
138
                uint32_t _7c0;
139
                struct { DECL_BITFIELD(7c0); };
140
            };
141
            union {
142
                uint32_t _7d0;
143
                struct { DECL_BITFIELD(7d0); };
144
            };
145
        };
146
    } feat;
147
148
    /* Xstate feature leaf: 0x0000000D[xx] */
149
    union {
150
        struct cpuid_leaf raw[CPUID_GUEST_NR_XSTATE];
151
152
        struct {
153
            /* Subleaf 0. */
154
            uint32_t xcr0_low, /* b */:32, max_size, xcr0_high;
155
156
            /* Subleaf 1. */
157
            union {
158
                uint32_t Da1;
159
                struct { DECL_BITFIELD(Da1); };
160
            };
161
            uint32_t /* b */:32, xss_low, xss_high;
162
        };
163
164
        /* Per-component common state.  Valid for i >= 2. */
165
        struct {
166
            uint32_t size, offset;
167
            bool xss:1, align:1;
168
            uint32_t _res_d;
169
        } comp[CPUID_GUEST_NR_XSTATE];
170
    } xstate;
171
172
    /* Extended leaves: 0x800000xx */
173
    union {
174
        struct cpuid_leaf raw[CPUID_GUEST_NR_EXTD];
175
        struct {
176
            /* Leaf 0x80000000 - Max and vendor. */
177
            uint32_t max_leaf, vendor_ebx, vendor_ecx, vendor_edx;
178
179
            /* Leaf 0x80000001 - Family/model/stepping and features. */
180
            uint32_t raw_fms, /* b */:32;
181
            union {
182
                uint32_t e1c;
183
                struct { DECL_BITFIELD(e1c); };
184
            };
185
            union {
186
                uint32_t e1d;
187
                struct { DECL_BITFIELD(e1d); };
188
            };
189
190
            uint64_t :64, :64; /* Brand string. */
191
            uint64_t :64, :64; /* Brand string. */
192
            uint64_t :64, :64; /* Brand string. */
193
            uint64_t :64, :64; /* L1 cache/TLB. */
194
            uint64_t :64, :64; /* L2/3 cache/TLB. */
195
196
            /* Leaf 0x80000007 - Advanced Power Management. */
197
            uint32_t /* a */:32, /* b */:32, /* c */:32;
198
            union {
199
                uint32_t e7d;
200
                struct { DECL_BITFIELD(e7d); };
201
            };
202
203
            /* Leaf 0x80000008 - Misc addr/feature info. */
204
            uint8_t maxphysaddr, maxlinaddr, :8, :8;
205
            union {
206
                uint32_t e8b;
207
                struct { DECL_BITFIELD(e8b); };
208
            };
209
            uint32_t /* c */:32, /* d */:32;
210
        };
211
    } extd;
212
213
#undef __DECL_BITFIELD
214
#undef _DECL_BITFIELD
215
#undef DECL_BITFIELD
216
217
    /* Toolstack selected Hypervisor max_leaf (if non-zero). */
218
    uint8_t hv_limit, hv2_limit;
219
220
    /* Value calculated from raw data above. */
221
    uint8_t x86_vendor;
222
};
223
224
/* Fill in a featureset bitmap from a CPUID policy. */
225
static inline void cpuid_policy_to_featureset(
226
    const struct cpuid_policy *p, uint32_t fs[FSCAPINTS])
227
4
{
228
4
    fs[FEATURESET_1d]  = p->basic._1d;
229
4
    fs[FEATURESET_1c]  = p->basic._1c;
230
4
    fs[FEATURESET_e1d] = p->extd.e1d;
231
4
    fs[FEATURESET_e1c] = p->extd.e1c;
232
4
    fs[FEATURESET_Da1] = p->xstate.Da1;
233
4
    fs[FEATURESET_7b0] = p->feat._7b0;
234
4
    fs[FEATURESET_7c0] = p->feat._7c0;
235
4
    fs[FEATURESET_e7d] = p->extd.e7d;
236
4
    fs[FEATURESET_e8b] = p->extd.e8b;
237
4
    fs[FEATURESET_7d0] = p->feat._7d0;
238
4
}
Unexecuted instantiation: core_parking.c:cpuid_policy_to_featureset
Unexecuted instantiation: mmconfig_64.c:cpuid_policy_to_featureset
Unexecuted instantiation: mmconf-fam10h.c:cpuid_policy_to_featureset
Unexecuted instantiation: acpi_mmcfg.c:cpuid_policy_to_featureset
Unexecuted instantiation: ro-page-fault.c:cpuid_policy_to_featureset
Unexecuted instantiation: misc-hypercalls.c:cpuid_policy_to_featureset
Unexecuted instantiation: iret.c:cpuid_policy_to_featureset
Unexecuted instantiation: emul-priv-op.c:cpuid_policy_to_featureset
Unexecuted instantiation: emul-inv-op.c:cpuid_policy_to_featureset
Unexecuted instantiation: emul-gate-op.c:cpuid_policy_to_featureset
Unexecuted instantiation: descriptor-tables.c:cpuid_policy_to_featureset
Unexecuted instantiation: callback.c:cpuid_policy_to_featureset
Unexecuted instantiation: backtrace.c:cpuid_policy_to_featureset
Unexecuted instantiation: op_model_athlon.c:cpuid_policy_to_featureset
Unexecuted instantiation: op_model_ppro.c:cpuid_policy_to_featureset
Unexecuted instantiation: op_model_p4.c:cpuid_policy_to_featureset
Unexecuted instantiation: nmi_int.c:cpuid_policy_to_featureset
Unexecuted instantiation: nested_ept.c:cpuid_policy_to_featureset
Unexecuted instantiation: nested_hap.c:cpuid_policy_to_featureset
Unexecuted instantiation: hap.c:cpuid_policy_to_featureset
Unexecuted instantiation: multi.c:cpuid_policy_to_featureset
Unexecuted instantiation: mem_sharing.c:cpuid_policy_to_featureset
Unexecuted instantiation: mem_paging.c:cpuid_policy_to_featureset
Unexecuted instantiation: guest_walk.c:cpuid_policy_to_featureset
Unexecuted instantiation: altp2m.c:cpuid_policy_to_featureset
Unexecuted instantiation: p2m-pod.c:cpuid_policy_to_featureset
Unexecuted instantiation: p2m-ept.c:cpuid_policy_to_featureset
Unexecuted instantiation: p2m-pt.c:cpuid_policy_to_featureset
Unexecuted instantiation: p2m.c:cpuid_policy_to_featureset
Unexecuted instantiation: paging.c:cpuid_policy_to_featureset
Unexecuted instantiation: vvmx.c:cpuid_policy_to_featureset
Unexecuted instantiation: vmx.c:cpuid_policy_to_featureset
Unexecuted instantiation: vmcs.c:cpuid_policy_to_featureset
Unexecuted instantiation: realmode.c:cpuid_policy_to_featureset
Unexecuted instantiation: vmcb.c:cpuid_policy_to_featureset
Unexecuted instantiation: svmdebug.c:cpuid_policy_to_featureset
Unexecuted instantiation: svm.c:cpuid_policy_to_featureset
Unexecuted instantiation: nestedsvm.c:cpuid_policy_to_featureset
Unexecuted instantiation: intr.c:cpuid_policy_to_featureset
Unexecuted instantiation: vpt.c:cpuid_policy_to_featureset
Unexecuted instantiation: vpic.c:cpuid_policy_to_featureset
Unexecuted instantiation: vmsi.c:cpuid_policy_to_featureset
Unexecuted instantiation: vlapic.c:cpuid_policy_to_featureset
Unexecuted instantiation: viridian.c:cpuid_policy_to_featureset
Unexecuted instantiation: vioapic.c:cpuid_policy_to_featureset
Unexecuted instantiation: stdvga.c:cpuid_policy_to_featureset
Unexecuted instantiation: save.c:cpuid_policy_to_featureset
Unexecuted instantiation: rtc.c:cpuid_policy_to_featureset
Unexecuted instantiation: pmtimer.c:cpuid_policy_to_featureset
Unexecuted instantiation: nestedhvm.c:cpuid_policy_to_featureset
Unexecuted instantiation: mtrr.c:cpuid_policy_to_featureset
Unexecuted instantiation: ioreq.c:cpuid_policy_to_featureset
Unexecuted instantiation: intercept.c:cpuid_policy_to_featureset
Unexecuted instantiation: i8254.c:cpuid_policy_to_featureset
Unexecuted instantiation: hvm.c:cpuid_policy_to_featureset
Unexecuted instantiation: emulate.c:cpuid_policy_to_featureset
Unexecuted instantiation: dm.c:cpuid_policy_to_featureset
Unexecuted instantiation: asid.c:cpuid_policy_to_featureset
Unexecuted instantiation: probe.c:cpuid_policy_to_featureset
Unexecuted instantiation: delivery.c:cpuid_policy_to_featureset
Unexecuted instantiation: default.c:cpuid_policy_to_featureset
Unexecuted instantiation: x2apic.c:cpuid_policy_to_featureset
Unexecuted instantiation: bigsmp.c:cpuid_policy_to_featureset
Unexecuted instantiation: main.c:cpuid_policy_to_featureset
Unexecuted instantiation: generic.c:cpuid_policy_to_featureset
Unexecuted instantiation: vmce.c:cpuid_policy_to_featureset
Unexecuted instantiation: util.c:cpuid_policy_to_featureset
Unexecuted instantiation: non-fatal.c:cpuid_policy_to_featureset
Unexecuted instantiation: mce_intel.c:cpuid_policy_to_featureset
Unexecuted instantiation: mce-apei.c:cpuid_policy_to_featureset
Unexecuted instantiation: mce.c:cpuid_policy_to_featureset
Unexecuted instantiation: mctelem.c:cpuid_policy_to_featureset
Unexecuted instantiation: barrier.c:cpuid_policy_to_featureset
Unexecuted instantiation: mcaction.c:cpuid_policy_to_featureset
Unexecuted instantiation: mce_amd.c:cpuid_policy_to_featureset
Unexecuted instantiation: amd_nonfatal.c:cpuid_policy_to_featureset
Unexecuted instantiation: vpmu_intel.c:cpuid_policy_to_featureset
Unexecuted instantiation: vpmu_amd.c:cpuid_policy_to_featureset
Unexecuted instantiation: vpmu.c:cpuid_policy_to_featureset
Unexecuted instantiation: mwait-idle.c:cpuid_policy_to_featureset
Unexecuted instantiation: intel_cacheinfo.c:cpuid_policy_to_featureset
Unexecuted instantiation: intel.c:cpuid_policy_to_featureset
Unexecuted instantiation: common.c:cpuid_policy_to_featureset
Unexecuted instantiation: centaur.c:cpuid_policy_to_featureset
Unexecuted instantiation: amd.c:cpuid_policy_to_featureset
Unexecuted instantiation: powernow.c:cpuid_policy_to_featureset
Unexecuted instantiation: cpuidle_menu.c:cpuid_policy_to_featureset
Unexecuted instantiation: cpu_idle.c:cpuid_policy_to_featureset
Unexecuted instantiation: suspend.c:cpuid_policy_to_featureset
Unexecuted instantiation: power.c:cpuid_policy_to_featureset
Unexecuted instantiation: lib.c:cpuid_policy_to_featureset
Unexecuted instantiation: xstate.c:cpuid_policy_to_featureset
Unexecuted instantiation: hpet.c:cpuid_policy_to_featureset
Unexecuted instantiation: tboot.c:cpuid_policy_to_featureset
Unexecuted instantiation: x86_emulate.c:cpuid_policy_to_featureset
Unexecuted instantiation: usercopy.c:cpuid_policy_to_featureset
Unexecuted instantiation: traps.c:cpuid_policy_to_featureset
Unexecuted instantiation: srat.c:cpuid_policy_to_featureset
Unexecuted instantiation: smpboot.c:cpuid_policy_to_featureset
Unexecuted instantiation: setup.c:cpuid_policy_to_featureset
Unexecuted instantiation: psr.c:cpuid_policy_to_featureset
Unexecuted instantiation: platform_hypercall.c:cpuid_policy_to_featureset
Unexecuted instantiation: physdev.c:cpuid_policy_to_featureset
Unexecuted instantiation: percpu.c:cpuid_policy_to_featureset
Unexecuted instantiation: nmi.c:cpuid_policy_to_featureset
Unexecuted instantiation: mpparse.c:cpuid_policy_to_featureset
Unexecuted instantiation: mm.c:cpuid_policy_to_featureset
Unexecuted instantiation: microcode.c:cpuid_policy_to_featureset
Unexecuted instantiation: microcode_intel.c:cpuid_policy_to_featureset
Unexecuted instantiation: microcode_amd.c:cpuid_policy_to_featureset
Unexecuted instantiation: machine_kexec.c:cpuid_policy_to_featureset
Unexecuted instantiation: ioport_emulate.c:cpuid_policy_to_featureset
Unexecuted instantiation: msr.c:cpuid_policy_to_featureset
Unexecuted instantiation: io_apic.c:cpuid_policy_to_featureset
Unexecuted instantiation: i8259.c:cpuid_policy_to_featureset
Unexecuted instantiation: i387.c:cpuid_policy_to_featureset
Unexecuted instantiation: hypercall.c:cpuid_policy_to_featureset
Unexecuted instantiation: flushtlb.c:cpuid_policy_to_featureset
Unexecuted instantiation: extable.c:cpuid_policy_to_featureset
Unexecuted instantiation: e820.c:cpuid_policy_to_featureset
Unexecuted instantiation: domain_page.c:cpuid_policy_to_featureset
Unexecuted instantiation: delay.c:cpuid_policy_to_featureset
Unexecuted instantiation: debug.c:cpuid_policy_to_featureset
Unexecuted instantiation: crash.c:cpuid_policy_to_featureset
Unexecuted instantiation: compat.c:cpuid_policy_to_featureset
cpuid.c:cpuid_policy_to_featureset
Line
Count
Source
227
4
{
228
4
    fs[FEATURESET_1d]  = p->basic._1d;
229
4
    fs[FEATURESET_1c]  = p->basic._1c;
230
4
    fs[FEATURESET_e1d] = p->extd.e1d;
231
4
    fs[FEATURESET_e1c] = p->extd.e1c;
232
4
    fs[FEATURESET_Da1] = p->xstate.Da1;
233
4
    fs[FEATURESET_7b0] = p->feat._7b0;
234
4
    fs[FEATURESET_7c0] = p->feat._7c0;
235
4
    fs[FEATURESET_e7d] = p->extd.e7d;
236
4
    fs[FEATURESET_e8b] = p->extd.e8b;
237
4
    fs[FEATURESET_7d0] = p->feat._7d0;
238
4
}
Unexecuted instantiation: apic.c:cpuid_policy_to_featureset
Unexecuted instantiation: xsm_core.c:cpuid_policy_to_featureset
Unexecuted instantiation: vesa.c:cpuid_policy_to_featureset
Unexecuted instantiation: vga.c:cpuid_policy_to_featureset
Unexecuted instantiation: apei-io.c:cpuid_policy_to_featureset
Unexecuted instantiation: apei-base.c:cpuid_policy_to_featureset
Unexecuted instantiation: hest.c:cpuid_policy_to_featureset
Unexecuted instantiation: erst.c:cpuid_policy_to_featureset
Unexecuted instantiation: utglobal.c:cpuid_policy_to_featureset
Unexecuted instantiation: tbutils.c:cpuid_policy_to_featureset
Unexecuted instantiation: reboot.c:cpuid_policy_to_featureset
Unexecuted instantiation: hwregs.c:cpuid_policy_to_featureset
Unexecuted instantiation: pmstat.c:cpuid_policy_to_featureset
Unexecuted instantiation: osl.c:cpuid_policy_to_featureset
Unexecuted instantiation: numa.c:cpuid_policy_to_featureset
Unexecuted instantiation: iommu_guest.c:cpuid_policy_to_featureset
Unexecuted instantiation: iommu_cmd.c:cpuid_policy_to_featureset
Unexecuted instantiation: iommu_intr.c:cpuid_policy_to_featureset
Unexecuted instantiation: pci_amd_iommu.c:cpuid_policy_to_featureset
Unexecuted instantiation: iommu_map.c:cpuid_policy_to_featureset
Unexecuted instantiation: iommu_init.c:cpuid_policy_to_featureset
Unexecuted instantiation: ats.c:cpuid_policy_to_featureset
Unexecuted instantiation: vtd.c:cpuid_policy_to_featureset
Unexecuted instantiation: quirks.c:cpuid_policy_to_featureset
Unexecuted instantiation: intremap.c:cpuid_policy_to_featureset
Unexecuted instantiation: qinval.c:cpuid_policy_to_featureset
Unexecuted instantiation: utils.c:cpuid_policy_to_featureset
Unexecuted instantiation: dmar.c:cpuid_policy_to_featureset
Unexecuted instantiation: io.c:cpuid_policy_to_featureset
Unexecuted instantiation: iommu.c:cpuid_policy_to_featureset
Unexecuted instantiation: msix.c:cpuid_policy_to_featureset
Unexecuted instantiation: msi.c:cpuid_policy_to_featureset
Unexecuted instantiation: header.c:cpuid_policy_to_featureset
Unexecuted instantiation: vpci.c:cpuid_policy_to_featureset
Unexecuted instantiation: pci.c:cpuid_policy_to_featureset
Unexecuted instantiation: utility.c:cpuid_policy_to_featureset
Unexecuted instantiation: cpufreq_misc_governors.c:cpuid_policy_to_featureset
Unexecuted instantiation: cpufreq_ondemand.c:cpuid_policy_to_featureset
Unexecuted instantiation: cpufreq.c:cpuid_policy_to_featureset
Unexecuted instantiation: serial.c:cpuid_policy_to_featureset
Unexecuted instantiation: ehci-dbgp.c:cpuid_policy_to_featureset
Unexecuted instantiation: ns16550.c:cpuid_policy_to_featureset
Unexecuted instantiation: console.c:cpuid_policy_to_featureset
Unexecuted instantiation: libelf-loader.c:cpuid_policy_to_featureset
Unexecuted instantiation: llvm.c:cpuid_policy_to_featureset
Unexecuted instantiation: tmem_control.c:cpuid_policy_to_featureset
Unexecuted instantiation: tmem_xen.c:cpuid_policy_to_featureset
Unexecuted instantiation: tmem.c:cpuid_policy_to_featureset
Unexecuted instantiation: xmalloc_tlsf.c:cpuid_policy_to_featureset
Unexecuted instantiation: xenoprof.c:cpuid_policy_to_featureset
Unexecuted instantiation: wait.c:cpuid_policy_to_featureset
Unexecuted instantiation: vsprintf.c:cpuid_policy_to_featureset
Unexecuted instantiation: vmap.c:cpuid_policy_to_featureset
Unexecuted instantiation: vm_event.c:cpuid_policy_to_featureset
Unexecuted instantiation: virtual_region.c:cpuid_policy_to_featureset
Unexecuted instantiation: trace.c:cpuid_policy_to_featureset
Unexecuted instantiation: timer.c:cpuid_policy_to_featureset
Unexecuted instantiation: time.c:cpuid_policy_to_featureset
Unexecuted instantiation: tasklet.c:cpuid_policy_to_featureset
Unexecuted instantiation: sysctl.c:cpuid_policy_to_featureset
Unexecuted instantiation: symbols.c:cpuid_policy_to_featureset
Unexecuted instantiation: stop_machine.c:cpuid_policy_to_featureset
Unexecuted instantiation: spinlock.c:cpuid_policy_to_featureset
Unexecuted instantiation: smp.c:cpuid_policy_to_featureset
Unexecuted instantiation: softirq.c:cpuid_policy_to_featureset
Unexecuted instantiation: shutdown.c:cpuid_policy_to_featureset
Unexecuted instantiation: schedule.c:cpuid_policy_to_featureset
Unexecuted instantiation: sched_null.c:cpuid_policy_to_featureset
Unexecuted instantiation: sched_rt.c:cpuid_policy_to_featureset
Unexecuted instantiation: sched_credit2.c:cpuid_policy_to_featureset
Unexecuted instantiation: sched_credit.c:cpuid_policy_to_featureset
Unexecuted instantiation: sched_arinc653.c:cpuid_policy_to_featureset
Unexecuted instantiation: rwlock.c:cpuid_policy_to_featureset
Unexecuted instantiation: rcupdate.c:cpuid_policy_to_featureset
Unexecuted instantiation: radix-tree.c:cpuid_policy_to_featureset
Unexecuted instantiation: rangeset.c:cpuid_policy_to_featureset
Unexecuted instantiation: random.c:cpuid_policy_to_featureset
Unexecuted instantiation: preempt.c:cpuid_policy_to_featureset
Unexecuted instantiation: pdx.c:cpuid_policy_to_featureset
Unexecuted instantiation: page_alloc.c:cpuid_policy_to_featureset
Unexecuted instantiation: notifier.c:cpuid_policy_to_featureset
Unexecuted instantiation: multicall.c:cpuid_policy_to_featureset
Unexecuted instantiation: monitor.c:cpuid_policy_to_featureset
Unexecuted instantiation: memory.c:cpuid_policy_to_featureset
Unexecuted instantiation: mem_access.c:cpuid_policy_to_featureset
Unexecuted instantiation: kimage.c:cpuid_policy_to_featureset
Unexecuted instantiation: kexec.c:cpuid_policy_to_featureset
Unexecuted instantiation: keyhandler.c:cpuid_policy_to_featureset
Unexecuted instantiation: kernel.c:cpuid_policy_to_featureset
Unexecuted instantiation: irq.c:cpuid_policy_to_featureset
Unexecuted instantiation: guestcopy.c:cpuid_policy_to_featureset
Unexecuted instantiation: grant_table.c:cpuid_policy_to_featureset
Unexecuted instantiation: event_fifo.c:cpuid_policy_to_featureset
Unexecuted instantiation: event_channel.c:cpuid_policy_to_featureset
Unexecuted instantiation: event_2l.c:cpuid_policy_to_featureset
Unexecuted instantiation: domain.c:cpuid_policy_to_featureset
Unexecuted instantiation: domctl.c:cpuid_policy_to_featureset
Unexecuted instantiation: cpupool.c:cpuid_policy_to_featureset
Unexecuted instantiation: cpu.c:cpuid_policy_to_featureset
Unexecuted instantiation: mmconfig-shared.c:cpuid_policy_to_featureset
239
240
/* Fill in a CPUID policy from a featureset bitmap. */
241
static inline void cpuid_featureset_to_policy(
242
    const uint32_t fs[FSCAPINTS], struct cpuid_policy *p)
243
4
{
244
4
    p->basic._1d  = fs[FEATURESET_1d];
245
4
    p->basic._1c  = fs[FEATURESET_1c];
246
4
    p->extd.e1d   = fs[FEATURESET_e1d];
247
4
    p->extd.e1c   = fs[FEATURESET_e1c];
248
4
    p->xstate.Da1 = fs[FEATURESET_Da1];
249
4
    p->feat._7b0  = fs[FEATURESET_7b0];
250
4
    p->feat._7c0  = fs[FEATURESET_7c0];
251
4
    p->extd.e7d   = fs[FEATURESET_e7d];
252
4
    p->extd.e8b   = fs[FEATURESET_e8b];
253
4
    p->feat._7d0  = fs[FEATURESET_7d0];
254
4
}
Unexecuted instantiation: mmconfig-shared.c:cpuid_featureset_to_policy
Unexecuted instantiation: mmconfig_64.c:cpuid_featureset_to_policy
Unexecuted instantiation: mmconf-fam10h.c:cpuid_featureset_to_policy
Unexecuted instantiation: acpi_mmcfg.c:cpuid_featureset_to_policy
Unexecuted instantiation: ro-page-fault.c:cpuid_featureset_to_policy
Unexecuted instantiation: misc-hypercalls.c:cpuid_featureset_to_policy
Unexecuted instantiation: iret.c:cpuid_featureset_to_policy
Unexecuted instantiation: emul-priv-op.c:cpuid_featureset_to_policy
Unexecuted instantiation: emul-inv-op.c:cpuid_featureset_to_policy
Unexecuted instantiation: emul-gate-op.c:cpuid_featureset_to_policy
Unexecuted instantiation: descriptor-tables.c:cpuid_featureset_to_policy
Unexecuted instantiation: callback.c:cpuid_featureset_to_policy
Unexecuted instantiation: backtrace.c:cpuid_featureset_to_policy
Unexecuted instantiation: op_model_athlon.c:cpuid_featureset_to_policy
Unexecuted instantiation: op_model_ppro.c:cpuid_featureset_to_policy
Unexecuted instantiation: op_model_p4.c:cpuid_featureset_to_policy
Unexecuted instantiation: nmi_int.c:cpuid_featureset_to_policy
Unexecuted instantiation: nested_ept.c:cpuid_featureset_to_policy
Unexecuted instantiation: nested_hap.c:cpuid_featureset_to_policy
Unexecuted instantiation: hap.c:cpuid_featureset_to_policy
Unexecuted instantiation: multi.c:cpuid_featureset_to_policy
Unexecuted instantiation: mem_sharing.c:cpuid_featureset_to_policy
Unexecuted instantiation: mem_paging.c:cpuid_featureset_to_policy
Unexecuted instantiation: guest_walk.c:cpuid_featureset_to_policy
Unexecuted instantiation: altp2m.c:cpuid_featureset_to_policy
Unexecuted instantiation: p2m-pod.c:cpuid_featureset_to_policy
Unexecuted instantiation: p2m-ept.c:cpuid_featureset_to_policy
Unexecuted instantiation: p2m-pt.c:cpuid_featureset_to_policy
Unexecuted instantiation: p2m.c:cpuid_featureset_to_policy
Unexecuted instantiation: paging.c:cpuid_featureset_to_policy
Unexecuted instantiation: vvmx.c:cpuid_featureset_to_policy
Unexecuted instantiation: vmx.c:cpuid_featureset_to_policy
Unexecuted instantiation: vmcs.c:cpuid_featureset_to_policy
Unexecuted instantiation: realmode.c:cpuid_featureset_to_policy
Unexecuted instantiation: vmcb.c:cpuid_featureset_to_policy
Unexecuted instantiation: svmdebug.c:cpuid_featureset_to_policy
Unexecuted instantiation: svm.c:cpuid_featureset_to_policy
Unexecuted instantiation: nestedsvm.c:cpuid_featureset_to_policy
Unexecuted instantiation: intr.c:cpuid_featureset_to_policy
Unexecuted instantiation: vpt.c:cpuid_featureset_to_policy
Unexecuted instantiation: vpic.c:cpuid_featureset_to_policy
Unexecuted instantiation: vmsi.c:cpuid_featureset_to_policy
Unexecuted instantiation: vlapic.c:cpuid_featureset_to_policy
Unexecuted instantiation: viridian.c:cpuid_featureset_to_policy
Unexecuted instantiation: vioapic.c:cpuid_featureset_to_policy
Unexecuted instantiation: stdvga.c:cpuid_featureset_to_policy
Unexecuted instantiation: save.c:cpuid_featureset_to_policy
Unexecuted instantiation: rtc.c:cpuid_featureset_to_policy
Unexecuted instantiation: pmtimer.c:cpuid_featureset_to_policy
Unexecuted instantiation: nestedhvm.c:cpuid_featureset_to_policy
Unexecuted instantiation: mtrr.c:cpuid_featureset_to_policy
Unexecuted instantiation: ioreq.c:cpuid_featureset_to_policy
Unexecuted instantiation: intercept.c:cpuid_featureset_to_policy
Unexecuted instantiation: i8254.c:cpuid_featureset_to_policy
Unexecuted instantiation: hvm.c:cpuid_featureset_to_policy
Unexecuted instantiation: emulate.c:cpuid_featureset_to_policy
Unexecuted instantiation: dm.c:cpuid_featureset_to_policy
Unexecuted instantiation: asid.c:cpuid_featureset_to_policy
Unexecuted instantiation: probe.c:cpuid_featureset_to_policy
Unexecuted instantiation: delivery.c:cpuid_featureset_to_policy
Unexecuted instantiation: default.c:cpuid_featureset_to_policy
Unexecuted instantiation: x2apic.c:cpuid_featureset_to_policy
Unexecuted instantiation: bigsmp.c:cpuid_featureset_to_policy
Unexecuted instantiation: main.c:cpuid_featureset_to_policy
Unexecuted instantiation: generic.c:cpuid_featureset_to_policy
Unexecuted instantiation: vmce.c:cpuid_featureset_to_policy
Unexecuted instantiation: util.c:cpuid_featureset_to_policy
Unexecuted instantiation: non-fatal.c:cpuid_featureset_to_policy
Unexecuted instantiation: mce_intel.c:cpuid_featureset_to_policy
Unexecuted instantiation: mce-apei.c:cpuid_featureset_to_policy
Unexecuted instantiation: mce.c:cpuid_featureset_to_policy
Unexecuted instantiation: mctelem.c:cpuid_featureset_to_policy
Unexecuted instantiation: barrier.c:cpuid_featureset_to_policy
Unexecuted instantiation: mcaction.c:cpuid_featureset_to_policy
Unexecuted instantiation: mce_amd.c:cpuid_featureset_to_policy
Unexecuted instantiation: amd_nonfatal.c:cpuid_featureset_to_policy
Unexecuted instantiation: vpmu_intel.c:cpuid_featureset_to_policy
Unexecuted instantiation: vpmu_amd.c:cpuid_featureset_to_policy
Unexecuted instantiation: vpmu.c:cpuid_featureset_to_policy
Unexecuted instantiation: mwait-idle.c:cpuid_featureset_to_policy
Unexecuted instantiation: intel_cacheinfo.c:cpuid_featureset_to_policy
Unexecuted instantiation: intel.c:cpuid_featureset_to_policy
Unexecuted instantiation: common.c:cpuid_featureset_to_policy
Unexecuted instantiation: centaur.c:cpuid_featureset_to_policy
Unexecuted instantiation: amd.c:cpuid_featureset_to_policy
Unexecuted instantiation: powernow.c:cpuid_featureset_to_policy
Unexecuted instantiation: cpuidle_menu.c:cpuid_featureset_to_policy
Unexecuted instantiation: cpu_idle.c:cpuid_featureset_to_policy
Unexecuted instantiation: suspend.c:cpuid_featureset_to_policy
Unexecuted instantiation: power.c:cpuid_featureset_to_policy
Unexecuted instantiation: lib.c:cpuid_featureset_to_policy
Unexecuted instantiation: xstate.c:cpuid_featureset_to_policy
Unexecuted instantiation: hpet.c:cpuid_featureset_to_policy
Unexecuted instantiation: tboot.c:cpuid_featureset_to_policy
Unexecuted instantiation: x86_emulate.c:cpuid_featureset_to_policy
Unexecuted instantiation: usercopy.c:cpuid_featureset_to_policy
Unexecuted instantiation: traps.c:cpuid_featureset_to_policy
Unexecuted instantiation: srat.c:cpuid_featureset_to_policy
Unexecuted instantiation: smpboot.c:cpuid_featureset_to_policy
Unexecuted instantiation: setup.c:cpuid_featureset_to_policy
Unexecuted instantiation: psr.c:cpuid_featureset_to_policy
Unexecuted instantiation: platform_hypercall.c:cpuid_featureset_to_policy
Unexecuted instantiation: physdev.c:cpuid_featureset_to_policy
Unexecuted instantiation: percpu.c:cpuid_featureset_to_policy
Unexecuted instantiation: nmi.c:cpuid_featureset_to_policy
Unexecuted instantiation: mpparse.c:cpuid_featureset_to_policy
Unexecuted instantiation: mm.c:cpuid_featureset_to_policy
Unexecuted instantiation: microcode.c:cpuid_featureset_to_policy
Unexecuted instantiation: microcode_intel.c:cpuid_featureset_to_policy
Unexecuted instantiation: microcode_amd.c:cpuid_featureset_to_policy
Unexecuted instantiation: machine_kexec.c:cpuid_featureset_to_policy
Unexecuted instantiation: ioport_emulate.c:cpuid_featureset_to_policy
Unexecuted instantiation: msr.c:cpuid_featureset_to_policy
Unexecuted instantiation: io_apic.c:cpuid_featureset_to_policy
Unexecuted instantiation: i8259.c:cpuid_featureset_to_policy
Unexecuted instantiation: i387.c:cpuid_featureset_to_policy
Unexecuted instantiation: hypercall.c:cpuid_featureset_to_policy
Unexecuted instantiation: flushtlb.c:cpuid_featureset_to_policy
Unexecuted instantiation: extable.c:cpuid_featureset_to_policy
Unexecuted instantiation: e820.c:cpuid_featureset_to_policy
Unexecuted instantiation: domain_page.c:cpuid_featureset_to_policy
Unexecuted instantiation: delay.c:cpuid_featureset_to_policy
Unexecuted instantiation: debug.c:cpuid_featureset_to_policy
Unexecuted instantiation: crash.c:cpuid_featureset_to_policy
Unexecuted instantiation: compat.c:cpuid_featureset_to_policy
cpuid.c:cpuid_featureset_to_policy
Line
Count
Source
243
4
{
244
4
    p->basic._1d  = fs[FEATURESET_1d];
245
4
    p->basic._1c  = fs[FEATURESET_1c];
246
4
    p->extd.e1d   = fs[FEATURESET_e1d];
247
4
    p->extd.e1c   = fs[FEATURESET_e1c];
248
4
    p->xstate.Da1 = fs[FEATURESET_Da1];
249
4
    p->feat._7b0  = fs[FEATURESET_7b0];
250
4
    p->feat._7c0  = fs[FEATURESET_7c0];
251
4
    p->extd.e7d   = fs[FEATURESET_e7d];
252
4
    p->extd.e8b   = fs[FEATURESET_e8b];
253
4
    p->feat._7d0  = fs[FEATURESET_7d0];
254
4
}
Unexecuted instantiation: apic.c:cpuid_featureset_to_policy
Unexecuted instantiation: xsm_core.c:cpuid_featureset_to_policy
Unexecuted instantiation: vesa.c:cpuid_featureset_to_policy
Unexecuted instantiation: vga.c:cpuid_featureset_to_policy
Unexecuted instantiation: apei-io.c:cpuid_featureset_to_policy
Unexecuted instantiation: apei-base.c:cpuid_featureset_to_policy
Unexecuted instantiation: hest.c:cpuid_featureset_to_policy
Unexecuted instantiation: erst.c:cpuid_featureset_to_policy
Unexecuted instantiation: utglobal.c:cpuid_featureset_to_policy
Unexecuted instantiation: tbutils.c:cpuid_featureset_to_policy
Unexecuted instantiation: reboot.c:cpuid_featureset_to_policy
Unexecuted instantiation: hwregs.c:cpuid_featureset_to_policy
Unexecuted instantiation: pmstat.c:cpuid_featureset_to_policy
Unexecuted instantiation: osl.c:cpuid_featureset_to_policy
Unexecuted instantiation: numa.c:cpuid_featureset_to_policy
Unexecuted instantiation: iommu_guest.c:cpuid_featureset_to_policy
Unexecuted instantiation: iommu_cmd.c:cpuid_featureset_to_policy
Unexecuted instantiation: iommu_intr.c:cpuid_featureset_to_policy
Unexecuted instantiation: pci_amd_iommu.c:cpuid_featureset_to_policy
Unexecuted instantiation: iommu_map.c:cpuid_featureset_to_policy
Unexecuted instantiation: iommu_init.c:cpuid_featureset_to_policy
Unexecuted instantiation: ats.c:cpuid_featureset_to_policy
Unexecuted instantiation: vtd.c:cpuid_featureset_to_policy
Unexecuted instantiation: quirks.c:cpuid_featureset_to_policy
Unexecuted instantiation: intremap.c:cpuid_featureset_to_policy
Unexecuted instantiation: qinval.c:cpuid_featureset_to_policy
Unexecuted instantiation: utils.c:cpuid_featureset_to_policy
Unexecuted instantiation: dmar.c:cpuid_featureset_to_policy
Unexecuted instantiation: io.c:cpuid_featureset_to_policy
Unexecuted instantiation: iommu.c:cpuid_featureset_to_policy
Unexecuted instantiation: msix.c:cpuid_featureset_to_policy
Unexecuted instantiation: msi.c:cpuid_featureset_to_policy
Unexecuted instantiation: header.c:cpuid_featureset_to_policy
Unexecuted instantiation: vpci.c:cpuid_featureset_to_policy
Unexecuted instantiation: pci.c:cpuid_featureset_to_policy
Unexecuted instantiation: utility.c:cpuid_featureset_to_policy
Unexecuted instantiation: cpufreq_misc_governors.c:cpuid_featureset_to_policy
Unexecuted instantiation: cpufreq_ondemand.c:cpuid_featureset_to_policy
Unexecuted instantiation: cpufreq.c:cpuid_featureset_to_policy
Unexecuted instantiation: serial.c:cpuid_featureset_to_policy
Unexecuted instantiation: ehci-dbgp.c:cpuid_featureset_to_policy
Unexecuted instantiation: ns16550.c:cpuid_featureset_to_policy
Unexecuted instantiation: console.c:cpuid_featureset_to_policy
Unexecuted instantiation: libelf-loader.c:cpuid_featureset_to_policy
Unexecuted instantiation: llvm.c:cpuid_featureset_to_policy
Unexecuted instantiation: tmem_control.c:cpuid_featureset_to_policy
Unexecuted instantiation: tmem_xen.c:cpuid_featureset_to_policy
Unexecuted instantiation: tmem.c:cpuid_featureset_to_policy
Unexecuted instantiation: xmalloc_tlsf.c:cpuid_featureset_to_policy
Unexecuted instantiation: xenoprof.c:cpuid_featureset_to_policy
Unexecuted instantiation: wait.c:cpuid_featureset_to_policy
Unexecuted instantiation: vsprintf.c:cpuid_featureset_to_policy
Unexecuted instantiation: vmap.c:cpuid_featureset_to_policy
Unexecuted instantiation: vm_event.c:cpuid_featureset_to_policy
Unexecuted instantiation: virtual_region.c:cpuid_featureset_to_policy
Unexecuted instantiation: trace.c:cpuid_featureset_to_policy
Unexecuted instantiation: timer.c:cpuid_featureset_to_policy
Unexecuted instantiation: time.c:cpuid_featureset_to_policy
Unexecuted instantiation: tasklet.c:cpuid_featureset_to_policy
Unexecuted instantiation: sysctl.c:cpuid_featureset_to_policy
Unexecuted instantiation: symbols.c:cpuid_featureset_to_policy
Unexecuted instantiation: stop_machine.c:cpuid_featureset_to_policy
Unexecuted instantiation: spinlock.c:cpuid_featureset_to_policy
Unexecuted instantiation: smp.c:cpuid_featureset_to_policy
Unexecuted instantiation: softirq.c:cpuid_featureset_to_policy
Unexecuted instantiation: shutdown.c:cpuid_featureset_to_policy
Unexecuted instantiation: schedule.c:cpuid_featureset_to_policy
Unexecuted instantiation: sched_null.c:cpuid_featureset_to_policy
Unexecuted instantiation: sched_rt.c:cpuid_featureset_to_policy
Unexecuted instantiation: sched_credit2.c:cpuid_featureset_to_policy
Unexecuted instantiation: sched_credit.c:cpuid_featureset_to_policy
Unexecuted instantiation: sched_arinc653.c:cpuid_featureset_to_policy
Unexecuted instantiation: rwlock.c:cpuid_featureset_to_policy
Unexecuted instantiation: rcupdate.c:cpuid_featureset_to_policy
Unexecuted instantiation: radix-tree.c:cpuid_featureset_to_policy
Unexecuted instantiation: rangeset.c:cpuid_featureset_to_policy
Unexecuted instantiation: random.c:cpuid_featureset_to_policy
Unexecuted instantiation: preempt.c:cpuid_featureset_to_policy
Unexecuted instantiation: pdx.c:cpuid_featureset_to_policy
Unexecuted instantiation: page_alloc.c:cpuid_featureset_to_policy
Unexecuted instantiation: notifier.c:cpuid_featureset_to_policy
Unexecuted instantiation: multicall.c:cpuid_featureset_to_policy
Unexecuted instantiation: monitor.c:cpuid_featureset_to_policy
Unexecuted instantiation: memory.c:cpuid_featureset_to_policy
Unexecuted instantiation: mem_access.c:cpuid_featureset_to_policy
Unexecuted instantiation: kimage.c:cpuid_featureset_to_policy
Unexecuted instantiation: kexec.c:cpuid_featureset_to_policy
Unexecuted instantiation: keyhandler.c:cpuid_featureset_to_policy
Unexecuted instantiation: kernel.c:cpuid_featureset_to_policy
Unexecuted instantiation: irq.c:cpuid_featureset_to_policy
Unexecuted instantiation: guestcopy.c:cpuid_featureset_to_policy
Unexecuted instantiation: grant_table.c:cpuid_featureset_to_policy
Unexecuted instantiation: event_fifo.c:cpuid_featureset_to_policy
Unexecuted instantiation: event_channel.c:cpuid_featureset_to_policy
Unexecuted instantiation: event_2l.c:cpuid_featureset_to_policy
Unexecuted instantiation: domain.c:cpuid_featureset_to_policy
Unexecuted instantiation: domctl.c:cpuid_featureset_to_policy
Unexecuted instantiation: cpupool.c:cpuid_featureset_to_policy
Unexecuted instantiation: cpu.c:cpuid_featureset_to_policy
Unexecuted instantiation: core_parking.c:cpuid_featureset_to_policy
255
256
extern struct cpuid_policy raw_cpuid_policy, host_cpuid_policy,
257
    pv_max_cpuid_policy, hvm_max_cpuid_policy;
258
259
/* Allocate and initialise a CPUID policy suitable for the domain. */
260
int init_domain_cpuid_policy(struct domain *d);
261
262
/* Clamp the CPUID policy to reality. */
263
void recalculate_cpuid_policy(struct domain *d);
264
265
void guest_cpuid(const struct vcpu *v, uint32_t leaf,
266
                 uint32_t subleaf, struct cpuid_leaf *res);
267
268
#endif /* __ASSEMBLY__ */
269
#endif /* !__X86_CPUID_H__ */
270
271
/*
272
 * Local variables:
273
 * mode: C
274
 * c-file-style: "BSD"
275
 * c-basic-offset: 4
276
 * tab-width: 4
277
 * indent-tabs-mode: nil
278
 * End:
279
 */