Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/domain.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef __ASM_DOMAIN_H__
2
#define __ASM_DOMAIN_H__
3
4
#include <xen/mm.h>
5
#include <xen/radix-tree.h>
6
#include <asm/hvm/vcpu.h>
7
#include <asm/hvm/domain.h>
8
#include <asm/e820.h>
9
#include <asm/mce.h>
10
#include <asm/vpmu.h>
11
#include <asm/x86_emulate.h>
12
#include <public/vcpu.h>
13
#include <public/hvm/hvm_info_table.h>
14
15
9.96M
#define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
16
39.5k
#define is_pv_32bit_domain(d)  ((d)->arch.is_32bit_pv)
17
0
#define is_pv_32bit_vcpu(v)    (is_pv_32bit_domain((v)->domain))
18
19
99.6k
#define is_hvm_pv_evtchn_domain(d) (is_hvm_domain(d) && \
20
99.7k
        (d)->arch.hvm_domain.irq->callback_via_type == HVMIRQ_callback_vector)
21
99.6k
#define is_hvm_pv_evtchn_vcpu(v) (is_hvm_pv_evtchn_domain(v->domain))
22
1
#define is_domain_direct_mapped(d) ((void)(d), 0)
23
24
0
#define VCPU_TRAP_NMI          1
25
0
#define VCPU_TRAP_MCE          2
26
0
#define VCPU_TRAP_LAST         VCPU_TRAP_MCE
27
28
0
#define nmi_state              async_exception_state(VCPU_TRAP_NMI)
29
#define mce_state              async_exception_state(VCPU_TRAP_MCE)
30
31
0
#define nmi_pending            nmi_state.pending
32
#define mce_pending            mce_state.pending
33
34
struct trap_bounce {
35
    uint32_t      error_code;
36
    uint8_t       flags; /* TBF_ */
37
    uint16_t      cs;
38
    unsigned long eip;
39
};
40
41
18.4E
#define MAPHASH_ENTRIES 8
42
18.4E
#define MAPHASH_HASHFN(pfn) ((pfn) & (MAPHASH_ENTRIES-1))
43
0
#define MAPHASHENT_NOTINUSE ((u32)~0U)
44
struct mapcache_vcpu {
45
    /* Shadow of mapcache_domain.epoch. */
46
    unsigned int shadow_epoch;
47
48
    /* Lock-free per-VCPU hash of recently-used mappings. */
49
    struct vcpu_maphash_entry {
50
        unsigned long mfn;
51
        uint32_t      idx;
52
        uint32_t      refcnt;
53
    } hash[MAPHASH_ENTRIES];
54
};
55
56
struct mapcache_domain {
57
    /* The number of array entries, and a cursor into the array. */
58
    unsigned int entries;
59
    unsigned int cursor;
60
61
    /* Protects map_domain_page(). */
62
    spinlock_t lock;
63
64
    /* Garbage mappings are flushed from TLBs in batches called 'epochs'. */
65
    unsigned int epoch;
66
    u32 tlbflush_timestamp;
67
68
    /* Which mappings are in use, and which are garbage to reap next epoch? */
69
    unsigned long *inuse;
70
    unsigned long *garbage;
71
};
72
73
int mapcache_domain_init(struct domain *);
74
int mapcache_vcpu_init(struct vcpu *);
75
void mapcache_override_current(struct vcpu *);
76
77
/* x86/64: toggle guest between kernel and user modes. */
78
void toggle_guest_mode(struct vcpu *);
79
80
/*
81
 * Initialise a hypercall-transfer page. The given pointer must be mapped
82
 * in Xen virtual address space (accesses are not validated or checked).
83
 */
84
void hypercall_page_initialise(struct domain *d, void *);
85
86
/************************************************/
87
/*          shadow paging extension             */
88
/************************************************/
89
struct shadow_domain {
90
#ifdef CONFIG_SHADOW_PAGING
91
    unsigned int      opt_flags;    /* runtime tunable optimizations on/off */
92
    struct page_list_head pinned_shadows;
93
94
    /* Memory allocation */
95
    struct page_list_head freelist;
96
    unsigned int      total_pages;  /* number of pages allocated */
97
    unsigned int      free_pages;   /* number of pages on freelists */
98
    unsigned int      p2m_pages;    /* number of pages allocates to p2m */
99
100
    /* 1-to-1 map for use when HVM vcpus have paging disabled */
101
    pagetable_t unpaged_pagetable;
102
103
    /* reflect guest table dirty status, incremented by write
104
     * emulation and remove write permission */
105
    atomic_t gtable_dirty_version;
106
107
    /* Shadow hashtable */
108
    struct page_info **hash_table;
109
    bool_t hash_walking;  /* Some function is walking the hash table */
110
111
    /* Fast MMIO path heuristic */
112
    bool_t has_fast_mmio_entries;
113
114
    /* OOS */
115
    bool_t oos_active;
116
    bool_t oos_off;
117
118
    /* Has this domain ever used HVMOP_pagetable_dying? */
119
    bool_t pagetable_dying_op;
120
#endif
121
};
122
123
struct shadow_vcpu {
124
#ifdef CONFIG_SHADOW_PAGING
125
    /* PAE guests: per-vcpu shadow top-level table */
126
    l3_pgentry_t l3table[4] __attribute__((__aligned__(32)));
127
    /* PAE guests: per-vcpu cache of the top-level *guest* entries */
128
    l3_pgentry_t gl3e[4] __attribute__((__aligned__(32)));
129
    /* Non-PAE guests: pointer to guest top-level pagetable */
130
    void *guest_vtable;
131
    /* Last MFN that we emulated a write to as unshadow heuristics. */
132
    unsigned long last_emulated_mfn_for_unshadow;
133
    /* MFN of the last shadow that we shot a writeable mapping in */
134
    unsigned long last_writeable_pte_smfn;
135
    /* Last frame number that we emulated a write to. */
136
    unsigned long last_emulated_frame;
137
    /* Last MFN that we emulated a write successfully */
138
    unsigned long last_emulated_mfn;
139
140
    /* Shadow out-of-sync: pages that this vcpu has let go out of sync */
141
    mfn_t oos[SHADOW_OOS_PAGES];
142
    mfn_t oos_snapshot[SHADOW_OOS_PAGES];
143
    struct oos_fixup {
144
        int next;
145
        mfn_t smfn[SHADOW_OOS_FIXUPS];
146
        unsigned long off[SHADOW_OOS_FIXUPS];
147
    } oos_fixup[SHADOW_OOS_PAGES];
148
149
    bool_t pagetable_dying;
150
#endif
151
};
152
153
/************************************************/
154
/*            hardware assisted paging          */
155
/************************************************/
156
struct hap_domain {
157
    struct page_list_head freelist;
158
    unsigned int      total_pages;  /* number of pages allocated */
159
    unsigned int      free_pages;   /* number of pages on freelists */
160
    unsigned int      p2m_pages;    /* number of pages allocates to p2m */
161
};
162
163
/************************************************/
164
/*       common paging data structure           */
165
/************************************************/
166
struct log_dirty_domain {
167
    /* log-dirty radix tree to record dirty pages */
168
    mfn_t          top;
169
    unsigned int   allocs;
170
    unsigned int   failed_allocs;
171
172
    /* log-dirty mode stats */
173
    unsigned int   fault_count;
174
    unsigned int   dirty_count;
175
176
    /* functions which are paging mode specific */
177
    const struct log_dirty_ops {
178
        int        (*enable  )(struct domain *d, bool log_global);
179
        int        (*disable )(struct domain *d);
180
        void       (*clean   )(struct domain *d);
181
    } *ops;
182
};
183
184
struct paging_domain {
185
    /* paging lock */
186
    mm_lock_t lock;
187
188
    /* flags to control paging operation */
189
    u32                     mode;
190
    /* Has that pool ever run out of memory? */
191
    bool_t                  p2m_alloc_failed;
192
    /* extension for shadow paging support */
193
    struct shadow_domain    shadow;
194
    /* extension for hardware-assited paging */
195
    struct hap_domain       hap;
196
    /* log dirty support */
197
    struct log_dirty_domain log_dirty;
198
199
    /* preemption handling */
200
    struct {
201
        const struct domain *dom;
202
        unsigned int op;
203
        union {
204
            struct {
205
                unsigned long done:PADDR_BITS - PAGE_SHIFT;
206
                unsigned long i4:PAGETABLE_ORDER;
207
                unsigned long i3:PAGETABLE_ORDER;
208
            } log_dirty;
209
        };
210
    } preempt;
211
212
    /* alloc/free pages from the pool for paging-assistance structures
213
     * (used by p2m and log-dirty code for their tries) */
214
    struct page_info * (*alloc_page)(struct domain *d);
215
    void (*free_page)(struct domain *d, struct page_info *pg);
216
};
217
218
struct paging_vcpu {
219
    /* Pointers to mode-specific entry points. */
220
    const struct paging_mode *mode;
221
    /* Nested Virtualization: paging mode of nested guest */
222
    const struct paging_mode *nestedmode;
223
    /* HVM guest: last emulate was to a pagetable */
224
    unsigned int last_write_was_pt:1;
225
    /* HVM guest: last write emulation succeeds */
226
    unsigned int last_write_emul_ok:1;
227
    /* Translated guest: virtual TLB */
228
    struct shadow_vtlb *vtlb;
229
    spinlock_t          vtlb_lock;
230
231
    /* paging support extension */
232
    struct shadow_vcpu shadow;
233
};
234
235
22
#define MAX_NESTEDP2M 10
236
237
11
#define MAX_ALTP2M      10 /* arbitrary */
238
0
#define INVALID_ALTP2M  0xffff
239
0
#define MAX_EPTP        (PAGE_SIZE / sizeof(uint64_t))
240
struct p2m_domain;
241
struct time_scale {
242
    int shift;
243
    u32 mul_frac;
244
};
245
246
struct pv_domain
247
{
248
    l1_pgentry_t **gdt_ldt_l1tab;
249
250
    atomic_t nr_l4_pages;
251
252
    /* map_domain_page() mapping cache. */
253
    struct mapcache_domain mapcache;
254
255
    struct cpuidmasks *cpuidmasks;
256
};
257
258
struct monitor_write_data {
259
    struct {
260
        unsigned int msr : 1;
261
        unsigned int cr0 : 1;
262
        unsigned int cr3 : 1;
263
        unsigned int cr4 : 1;
264
    } do_write;
265
266
    uint32_t msr;
267
    uint64_t value;
268
    uint64_t cr0;
269
    uint64_t cr3;
270
    uint64_t cr4;
271
};
272
273
struct arch_domain
274
{
275
    struct page_info *perdomain_l3_pg;
276
277
    unsigned int hv_compat_vstart;
278
279
    /* Maximum physical-address bitwidth supported by this guest. */
280
    unsigned int physaddr_bitsize;
281
282
    /* I/O-port admin-specified access capabilities. */
283
    struct rangeset *ioport_caps;
284
    uint32_t pci_cf8;
285
    uint8_t cmos_idx;
286
287
    bool_t s3_integrity;
288
289
    struct list_head pdev_list;
290
291
    union {
292
        struct pv_domain pv_domain;
293
        struct hvm_domain hvm_domain;
294
    };
295
296
    struct paging_domain paging;
297
    struct p2m_domain *p2m;
298
    /* To enforce lock ordering in the pod code wrt the 
299
     * page_alloc lock */
300
    int page_alloc_unlock_level;
301
302
    /* Continuable domain_relinquish_resources(). */
303
    enum {
304
        RELMEM_not_started,
305
        RELMEM_shared,
306
        RELMEM_xen,
307
        RELMEM_l4,
308
        RELMEM_l3,
309
        RELMEM_l2,
310
        RELMEM_done,
311
    } relmem;
312
    struct page_list_head relmem_list;
313
314
    const struct arch_csw {
315
        void (*from)(struct vcpu *);
316
        void (*to)(struct vcpu *);
317
        void (*tail)(struct vcpu *);
318
    } *ctxt_switch;
319
320
    /* nestedhvm: translate l2 guest physical to host physical */
321
    struct p2m_domain *nested_p2m[MAX_NESTEDP2M];
322
    mm_lock_t nested_p2m_lock;
323
324
    /* altp2m: allow multiple copies of host p2m */
325
    bool_t altp2m_active;
326
    struct p2m_domain *altp2m_p2m[MAX_ALTP2M];
327
    mm_lock_t altp2m_list_lock;
328
    uint64_t *altp2m_eptp;
329
330
    /* NB. protected by d->event_lock and by irq_desc[irq].lock */
331
    struct radix_tree_root irq_pirq;
332
333
    /* Is a 32-bit PV (non-HVM) guest? */
334
    bool_t is_32bit_pv;
335
    /* Is shared-info page in 32-bit format? */
336
    bool_t has_32bit_shinfo;
337
338
    /* Domain cannot handle spurious page faults? */
339
    bool_t suppress_spurious_page_faults;
340
341
    /* Is PHYSDEVOP_eoi to automatically unmask the event channel? */
342
    bool_t auto_unmask;
343
344
    /*
345
     * The width of the FIP/FDP register in the FPU that needs to be
346
     * saved/restored during a context switch.  This is needed because
347
     * the FPU can either: a) restore the 64-bit FIP/FDP and clear FCS
348
     * and FDS; or b) restore the 32-bit FIP/FDP (clearing the upper
349
     * 32-bits of FIP/FDP) and restore FCS/FDS.
350
     *
351
     * Which one is needed depends on the guest.
352
     *
353
     * This can be either: 8, 4 or 0.  0 means auto-detect the size
354
     * based on the width of FIP/FDP values that are written by the
355
     * guest.
356
     */
357
    uint8_t x87_fip_width;
358
359
    /* CPUID and MSR policy objects. */
360
    struct cpuid_policy *cpuid;
361
    struct msr_domain_policy *msr;
362
363
    struct PITState vpit;
364
365
    /* TSC management (emulation, pv, scaling, stats) */
366
    int tsc_mode;            /* see include/asm-x86/time.h */
367
    bool_t vtsc;             /* tsc is emulated (may change after migrate) */
368
    s_time_t vtsc_last;      /* previous TSC value (guarantee monotonicity) */
369
    spinlock_t vtsc_lock;
370
    uint64_t vtsc_offset;    /* adjustment for save/restore/migrate */
371
    uint32_t tsc_khz;        /* cached guest khz for certain emulated or
372
                                hardware TSC scaling cases */
373
    struct time_scale vtsc_to_ns; /* scaling for certain emulated or
374
                                     hardware TSC scaling cases */
375
    struct time_scale ns_to_vtsc; /* scaling for certain emulated or
376
                                     hardware TSC scaling cases */
377
    uint32_t incarnation;    /* incremented every restore or live migrate
378
                                (possibly other cases in the future */
379
#if !defined(NDEBUG) || defined(CONFIG_PERF_COUNTERS)
380
    uint64_t vtsc_kerncount;
381
    uint64_t vtsc_usercount;
382
#endif
383
384
    /* Pseudophysical e820 map (XENMEM_memory_map).  */
385
    spinlock_t e820_lock;
386
    struct e820entry *e820;
387
    unsigned int nr_e820;
388
389
    /* RMID assigned to the domain for CMT */
390
    unsigned int psr_rmid;
391
    /* COS assigned to the domain for each socket */
392
    unsigned int *psr_cos_ids;
393
394
    /* Shared page for notifying that explicit PIRQ EOI is required. */
395
    unsigned long *pirq_eoi_map;
396
    unsigned long pirq_eoi_map_mfn;
397
398
    /* Arch-specific monitor options */
399
    struct {
400
        unsigned int write_ctrlreg_enabled                                 : 4;
401
        unsigned int write_ctrlreg_sync                                    : 4;
402
        unsigned int write_ctrlreg_onchangeonly                            : 4;
403
        unsigned int singlestep_enabled                                    : 1;
404
        unsigned int software_breakpoint_enabled                           : 1;
405
        unsigned int debug_exception_enabled                               : 1;
406
        unsigned int debug_exception_sync                                  : 1;
407
        unsigned int cpuid_enabled                                         : 1;
408
        unsigned int descriptor_access_enabled                             : 1;
409
        unsigned int guest_request_userspace_enabled                       : 1;
410
        unsigned int emul_unimplemented_enabled                            : 1;
411
        struct monitor_msr_bitmap *msr_bitmap;
412
        uint64_t write_ctrlreg_mask[4];
413
    } monitor;
414
415
    /* Mem_access emulation control */
416
    bool_t mem_access_emulate_each_rep;
417
418
    /* Emulated devices enabled bitmap. */
419
    uint32_t emulation_flags;
420
} __cacheline_aligned;
421
422
70
#define has_vlapic(d)      (!!((d)->arch.emulation_flags & XEN_X86_EMU_LAPIC))
423
1
#define has_vhpet(d)       (!!((d)->arch.emulation_flags & XEN_X86_EMU_HPET))
424
1
#define has_vpm(d)         (!!((d)->arch.emulation_flags & XEN_X86_EMU_PM))
425
549
#define has_vrtc(d)        (!!((d)->arch.emulation_flags & XEN_X86_EMU_RTC))
426
2
#define has_vioapic(d)     (!!((d)->arch.emulation_flags & XEN_X86_EMU_IOAPIC))
427
7.85M
#define has_vpic(d)        (!!((d)->arch.emulation_flags & XEN_X86_EMU_PIC))
428
1
#define has_vvga(d)        (!!((d)->arch.emulation_flags & XEN_X86_EMU_VGA))
429
0
#define has_viommu(d)      (!!((d)->arch.emulation_flags & XEN_X86_EMU_IOMMU))
430
2
#define has_vpit(d)        (!!((d)->arch.emulation_flags & XEN_X86_EMU_PIT))
431
70
#define has_pirq(d)        (!!((d)->arch.emulation_flags & \
432
70
                            XEN_X86_EMU_USE_PIRQ))
433
9.75M
#define has_vpci(d)        (!!((d)->arch.emulation_flags & XEN_X86_EMU_VPCI))
434
435
18.4E
#define has_arch_pdevs(d)    (!list_empty(&(d)->arch.pdev_list))
436
437
#define gdt_ldt_pt_idx(v) \
438
0
      ((v)->vcpu_id >> (PAGETABLE_ORDER - GDT_LDT_VCPU_SHIFT))
439
#define pv_gdt_ptes(v) \
440
0
    ((v)->domain->arch.pv_domain.gdt_ldt_l1tab[gdt_ldt_pt_idx(v)] + \
441
0
     (((v)->vcpu_id << GDT_LDT_VCPU_SHIFT) & (L1_PAGETABLE_ENTRIES - 1)))
442
0
#define pv_ldt_ptes(v) (pv_gdt_ptes(v) + 16)
443
444
struct pv_vcpu
445
{
446
    /* map_domain_page() mapping cache. */
447
    struct mapcache_vcpu mapcache;
448
449
    struct trap_info *trap_ctxt;
450
451
    unsigned long gdt_frames[FIRST_RESERVED_GDT_PAGE];
452
    unsigned long ldt_base;
453
    unsigned int gdt_ents, ldt_ents;
454
455
    unsigned long kernel_ss, kernel_sp;
456
    unsigned long ctrlreg[8];
457
458
    unsigned long event_callback_eip;
459
    unsigned long failsafe_callback_eip;
460
    union {
461
        unsigned long syscall_callback_eip;
462
        struct {
463
            unsigned int event_callback_cs;
464
            unsigned int failsafe_callback_cs;
465
        };
466
    };
467
468
    unsigned long syscall32_callback_eip;
469
    unsigned long sysenter_callback_eip;
470
    unsigned short syscall32_callback_cs;
471
    unsigned short sysenter_callback_cs;
472
    bool_t syscall32_disables_events;
473
    bool_t sysenter_disables_events;
474
475
    /* Segment base addresses. */
476
    unsigned long fs_base;
477
    unsigned long gs_base_kernel;
478
    unsigned long gs_base_user;
479
480
    /* Bounce information for propagating an exception to guest OS. */
481
    struct trap_bounce trap_bounce;
482
    struct trap_bounce int80_bounce;
483
484
    /* I/O-port access bitmap. */
485
    XEN_GUEST_HANDLE(uint8) iobmp; /* Guest kernel vaddr of the bitmap. */
486
    unsigned int iobmp_limit; /* Number of ports represented in the bitmap. */
487
0
#define IOPL(val) MASK_INSR(val, X86_EFLAGS_IOPL)
488
    unsigned int iopl;        /* Current IOPL for this VCPU, shifted left by
489
                               * 12 to match the eflags register. */
490
491
    /* Current LDT details. */
492
    unsigned long shadow_ldt_mapcnt;
493
    spinlock_t shadow_ldt_lock;
494
495
    /* data breakpoint extension MSRs */
496
    uint32_t dr_mask[4];
497
498
    /* Deferred VA-based update state. */
499
    bool_t need_update_runstate_area;
500
    struct vcpu_time_info pending_system_time;
501
};
502
503
typedef enum __packed {
504
    SMAP_CHECK_HONOR_CPL_AC,    /* honor the guest's CPL and AC */
505
    SMAP_CHECK_ENABLED,         /* enable the check */
506
    SMAP_CHECK_DISABLED,        /* disable the check */
507
} smap_check_policy_t;
508
509
struct arch_vcpu
510
{
511
    /*
512
     * guest context (mirroring struct vcpu_guest_context) common
513
     * between pv and hvm guests
514
     */
515
516
    void              *fpu_ctxt;
517
    unsigned long      vgc_flags;
518
    struct cpu_user_regs user_regs;
519
    unsigned long      debugreg[8];
520
521
    /* other state */
522
523
    unsigned long      flags; /* TF_ */
524
525
    struct vpmu_struct vpmu;
526
527
    /* Virtual Machine Extensions */
528
    union {
529
        struct pv_vcpu pv_vcpu;
530
        struct hvm_vcpu hvm_vcpu;
531
    };
532
533
    pagetable_t guest_table_user;       /* (MFN) x86/64 user-space pagetable */
534
    pagetable_t guest_table;            /* (MFN) guest notion of cr3 */
535
    struct page_info *old_guest_table;  /* partially destructed pagetable */
536
    struct page_info *old_guest_ptpg;   /* containing page table of the */
537
                                        /* former, if any */
538
    /* guest_table holds a ref to the page, and also a type-count unless
539
     * shadow refcounts are in use */
540
    pagetable_t shadow_table[4];        /* (MFN) shadow(s) of guest */
541
    pagetable_t monitor_table;          /* (MFN) hypervisor PT (for HVM) */
542
    unsigned long cr3;                  /* (MA) value to install in HW CR3 */
543
544
    /*
545
     * The save area for Processor Extended States and the bitmask of the
546
     * XSAVE/XRSTOR features. They are used by: 1) when a vcpu (which has
547
     * dirtied FPU/SSE) is scheduled out we XSAVE the states here; 2) in
548
     * #NM handler, we XRSTOR the states we XSAVE-ed;
549
     */
550
    struct xsave_struct *xsave_area;
551
    uint64_t xcr0;
552
    /* Accumulated eXtended features mask for using XSAVE/XRESTORE by Xen
553
     * itself, as we can never know whether guest OS depends on content
554
     * preservation whenever guest OS clears one feature flag (for example,
555
     * temporarily).
556
     * However, processor should not be able to touch eXtended states before
557
     * it explicitly enables it via xcr0.
558
     */
559
    uint64_t xcr0_accum;
560
    /* This variable determines whether nonlazy extended state has been used,
561
     * and thus should be saved/restored. */
562
    bool_t nonlazy_xstate_used;
563
564
    /*
565
     * The SMAP check policy when updating runstate_guest(v) and the
566
     * secondary system time.
567
     */
568
    smap_check_policy_t smap_check_policy;
569
570
    struct vmce vmce;
571
572
    struct paging_vcpu paging;
573
574
    uint32_t gdbsx_vcpu_event;
575
576
    /* A secondary copy of the vcpu time info. */
577
    XEN_GUEST_HANDLE(vcpu_time_info_t) time_info_guest;
578
579
    struct arch_vm_event *vm_event;
580
581
    struct msr_vcpu_policy *msr;
582
583
    struct {
584
        bool next_interrupt_enabled;
585
    } monitor;
586
};
587
588
struct guest_memory_policy
589
{
590
    smap_check_policy_t smap_policy;
591
    bool nested_guest_mode;
592
};
593
594
void update_guest_memory_policy(struct vcpu *v,
595
                                struct guest_memory_policy *policy);
596
597
/* Shorthands to improve code legibility. */
598
30.2M
#define hvm_vmx         hvm_vcpu.u.vmx
599
0
#define hvm_svm         hvm_vcpu.u.svm
600
601
bool update_runstate_area(struct vcpu *);
602
bool update_secondary_system_time(struct vcpu *,
603
                                  struct vcpu_time_info *);
604
605
void vcpu_show_execution_state(struct vcpu *);
606
void vcpu_show_registers(const struct vcpu *);
607
608
/* Clean up CR4 bits that are not under guest control. */
609
unsigned long pv_guest_cr4_fixup(const struct vcpu *, unsigned long guest_cr4);
610
611
/* Convert between guest-visible and real CR4 values. */
612
#define pv_guest_cr4_to_real_cr4(v)                         \
613
0
    (((v)->arch.pv_vcpu.ctrlreg[4]                          \
614
0
      | (mmu_cr4_features                                   \
615
0
         & (X86_CR4_PGE | X86_CR4_PSE | X86_CR4_SMEP |      \
616
0
            X86_CR4_SMAP | X86_CR4_OSXSAVE |                \
617
0
            X86_CR4_FSGSBASE))                              \
618
0
      | ((v)->domain->arch.vtsc ? X86_CR4_TSD : 0))         \
619
0
     & ~X86_CR4_DE)
620
#define real_cr4_to_pv_guest_cr4(c)                         \
621
0
    ((c) & ~(X86_CR4_PGE | X86_CR4_PSE | X86_CR4_TSD |      \
622
0
             X86_CR4_OSXSAVE | X86_CR4_SMEP |               \
623
0
             X86_CR4_FSGSBASE | X86_CR4_SMAP))
624
625
0
#define domain_max_vcpus(d) (is_hvm_domain(d) ? HVM_MAX_VCPUS : MAX_VIRT_CPUS)
626
627
static inline struct vcpu_guest_context *alloc_vcpu_guest_context(void)
628
0
{
629
0
    return vmalloc(sizeof(struct vcpu_guest_context));
630
0
}
Unexecuted instantiation: mm.c:alloc_vcpu_guest_context
Unexecuted instantiation: ro-page-fault.c:alloc_vcpu_guest_context
Unexecuted instantiation: misc-hypercalls.c:alloc_vcpu_guest_context
Unexecuted instantiation: iret.c:alloc_vcpu_guest_context
Unexecuted instantiation: emul-priv-op.c:alloc_vcpu_guest_context
Unexecuted instantiation: emul-inv-op.c:alloc_vcpu_guest_context
Unexecuted instantiation: emul-gate-op.c:alloc_vcpu_guest_context
Unexecuted instantiation: descriptor-tables.c:alloc_vcpu_guest_context
Unexecuted instantiation: callback.c:alloc_vcpu_guest_context
Unexecuted instantiation: backtrace.c:alloc_vcpu_guest_context
Unexecuted instantiation: op_model_athlon.c:alloc_vcpu_guest_context
Unexecuted instantiation: op_model_ppro.c:alloc_vcpu_guest_context
Unexecuted instantiation: nmi_int.c:alloc_vcpu_guest_context
Unexecuted instantiation: nested_ept.c:alloc_vcpu_guest_context
Unexecuted instantiation: nested_hap.c:alloc_vcpu_guest_context
Unexecuted instantiation: hap.c:alloc_vcpu_guest_context
Unexecuted instantiation: multi.c:alloc_vcpu_guest_context
Unexecuted instantiation: mem_sharing.c:alloc_vcpu_guest_context
Unexecuted instantiation: mem_paging.c:alloc_vcpu_guest_context
Unexecuted instantiation: guest_walk.c:alloc_vcpu_guest_context
Unexecuted instantiation: altp2m.c:alloc_vcpu_guest_context
Unexecuted instantiation: p2m-pod.c:alloc_vcpu_guest_context
Unexecuted instantiation: p2m-ept.c:alloc_vcpu_guest_context
Unexecuted instantiation: p2m-pt.c:alloc_vcpu_guest_context
Unexecuted instantiation: p2m.c:alloc_vcpu_guest_context
Unexecuted instantiation: paging.c:alloc_vcpu_guest_context
Unexecuted instantiation: vvmx.c:alloc_vcpu_guest_context
Unexecuted instantiation: vmx.c:alloc_vcpu_guest_context
Unexecuted instantiation: vmcs.c:alloc_vcpu_guest_context
Unexecuted instantiation: realmode.c:alloc_vcpu_guest_context
Unexecuted instantiation: vmcb.c:alloc_vcpu_guest_context
Unexecuted instantiation: svmdebug.c:alloc_vcpu_guest_context
Unexecuted instantiation: svm.c:alloc_vcpu_guest_context
Unexecuted instantiation: nestedsvm.c:alloc_vcpu_guest_context
Unexecuted instantiation: intr.c:alloc_vcpu_guest_context
Unexecuted instantiation: vpt.c:alloc_vcpu_guest_context
Unexecuted instantiation: vpic.c:alloc_vcpu_guest_context
Unexecuted instantiation: vmsi.c:alloc_vcpu_guest_context
Unexecuted instantiation: vlapic.c:alloc_vcpu_guest_context
Unexecuted instantiation: viridian.c:alloc_vcpu_guest_context
Unexecuted instantiation: vioapic.c:alloc_vcpu_guest_context
Unexecuted instantiation: stdvga.c:alloc_vcpu_guest_context
Unexecuted instantiation: save.c:alloc_vcpu_guest_context
Unexecuted instantiation: rtc.c:alloc_vcpu_guest_context
Unexecuted instantiation: pmtimer.c:alloc_vcpu_guest_context
Unexecuted instantiation: nestedhvm.c:alloc_vcpu_guest_context
Unexecuted instantiation: mtrr.c:alloc_vcpu_guest_context
Unexecuted instantiation: ioreq.c:alloc_vcpu_guest_context
Unexecuted instantiation: intercept.c:alloc_vcpu_guest_context
Unexecuted instantiation: i8254.c:alloc_vcpu_guest_context
Unexecuted instantiation: hvm.c:alloc_vcpu_guest_context
Unexecuted instantiation: hpet.c:alloc_vcpu_guest_context
Unexecuted instantiation: emulate.c:alloc_vcpu_guest_context
Unexecuted instantiation: dm.c:alloc_vcpu_guest_context
Unexecuted instantiation: asid.c:alloc_vcpu_guest_context
Unexecuted instantiation: delivery.c:alloc_vcpu_guest_context
Unexecuted instantiation: vmce.c:alloc_vcpu_guest_context
Unexecuted instantiation: util.c:alloc_vcpu_guest_context
Unexecuted instantiation: non-fatal.c:alloc_vcpu_guest_context
Unexecuted instantiation: mce_intel.c:alloc_vcpu_guest_context
Unexecuted instantiation: mce-apei.c:alloc_vcpu_guest_context
Unexecuted instantiation: mce.c:alloc_vcpu_guest_context
Unexecuted instantiation: mctelem.c:alloc_vcpu_guest_context
Unexecuted instantiation: barrier.c:alloc_vcpu_guest_context
Unexecuted instantiation: mcaction.c:alloc_vcpu_guest_context
Unexecuted instantiation: mce_amd.c:alloc_vcpu_guest_context
Unexecuted instantiation: amd_nonfatal.c:alloc_vcpu_guest_context
Unexecuted instantiation: vpmu_intel.c:alloc_vcpu_guest_context
Unexecuted instantiation: vpmu_amd.c:alloc_vcpu_guest_context
Unexecuted instantiation: vpmu.c:alloc_vcpu_guest_context
Unexecuted instantiation: mwait-idle.c:alloc_vcpu_guest_context
Unexecuted instantiation: intel.c:alloc_vcpu_guest_context
Unexecuted instantiation: common.c:alloc_vcpu_guest_context
Unexecuted instantiation: amd.c:alloc_vcpu_guest_context
Unexecuted instantiation: cpu_idle.c:alloc_vcpu_guest_context
Unexecuted instantiation: suspend.c:alloc_vcpu_guest_context
Unexecuted instantiation: power.c:alloc_vcpu_guest_context
Unexecuted instantiation: xstate.c:alloc_vcpu_guest_context
Unexecuted instantiation: tboot.c:alloc_vcpu_guest_context
Unexecuted instantiation: x86_emulate.c:alloc_vcpu_guest_context
Unexecuted instantiation: usercopy.c:alloc_vcpu_guest_context
Unexecuted instantiation: traps.c:alloc_vcpu_guest_context
Unexecuted instantiation: smpboot.c:alloc_vcpu_guest_context
Unexecuted instantiation: smp.c:alloc_vcpu_guest_context
Unexecuted instantiation: setup.c:alloc_vcpu_guest_context
Unexecuted instantiation: psr.c:alloc_vcpu_guest_context
Unexecuted instantiation: platform_hypercall.c:alloc_vcpu_guest_context
Unexecuted instantiation: physdev.c:alloc_vcpu_guest_context
Unexecuted instantiation: numa.c:alloc_vcpu_guest_context
Unexecuted instantiation: nmi.c:alloc_vcpu_guest_context
Unexecuted instantiation: mpparse.c:alloc_vcpu_guest_context
Unexecuted instantiation: microcode.c:alloc_vcpu_guest_context
Unexecuted instantiation: microcode_intel.c:alloc_vcpu_guest_context
Unexecuted instantiation: microcode_amd.c:alloc_vcpu_guest_context
Unexecuted instantiation: machine_kexec.c:alloc_vcpu_guest_context
Unexecuted instantiation: irq.c:alloc_vcpu_guest_context
Unexecuted instantiation: ioport_emulate.c:alloc_vcpu_guest_context
Unexecuted instantiation: msr.c:alloc_vcpu_guest_context
Unexecuted instantiation: io_apic.c:alloc_vcpu_guest_context
Unexecuted instantiation: i8259.c:alloc_vcpu_guest_context
Unexecuted instantiation: i387.c:alloc_vcpu_guest_context
Unexecuted instantiation: hypercall.c:alloc_vcpu_guest_context
Unexecuted instantiation: flushtlb.c:alloc_vcpu_guest_context
Unexecuted instantiation: domain_page.c:alloc_vcpu_guest_context
Unexecuted instantiation: debug.c:alloc_vcpu_guest_context
Unexecuted instantiation: crash.c:alloc_vcpu_guest_context
Unexecuted instantiation: compat.c:alloc_vcpu_guest_context
Unexecuted instantiation: cpuid.c:alloc_vcpu_guest_context
Unexecuted instantiation: apic.c:alloc_vcpu_guest_context
Unexecuted instantiation: xsm_core.c:alloc_vcpu_guest_context
Unexecuted instantiation: pmstat.c:alloc_vcpu_guest_context
Unexecuted instantiation: iommu_guest.c:alloc_vcpu_guest_context
Unexecuted instantiation: iommu_cmd.c:alloc_vcpu_guest_context
Unexecuted instantiation: iommu_intr.c:alloc_vcpu_guest_context
Unexecuted instantiation: pci_amd_iommu.c:alloc_vcpu_guest_context
Unexecuted instantiation: iommu_map.c:alloc_vcpu_guest_context
Unexecuted instantiation: iommu_init.c:alloc_vcpu_guest_context
Unexecuted instantiation: ats.c:alloc_vcpu_guest_context
Unexecuted instantiation: vtd.c:alloc_vcpu_guest_context
Unexecuted instantiation: quirks.c:alloc_vcpu_guest_context
Unexecuted instantiation: intremap.c:alloc_vcpu_guest_context
Unexecuted instantiation: qinval.c:alloc_vcpu_guest_context
Unexecuted instantiation: utils.c:alloc_vcpu_guest_context
Unexecuted instantiation: pci.c:alloc_vcpu_guest_context
Unexecuted instantiation: io.c:alloc_vcpu_guest_context
Unexecuted instantiation: iommu.c:alloc_vcpu_guest_context
Unexecuted instantiation: msix.c:alloc_vcpu_guest_context
Unexecuted instantiation: msi.c:alloc_vcpu_guest_context
Unexecuted instantiation: header.c:alloc_vcpu_guest_context
Unexecuted instantiation: vpci.c:alloc_vcpu_guest_context
Unexecuted instantiation: utility.c:alloc_vcpu_guest_context
Unexecuted instantiation: cpufreq_misc_governors.c:alloc_vcpu_guest_context
Unexecuted instantiation: cpufreq_ondemand.c:alloc_vcpu_guest_context
Unexecuted instantiation: cpufreq.c:alloc_vcpu_guest_context
Unexecuted instantiation: ns16550.c:alloc_vcpu_guest_context
Unexecuted instantiation: console.c:alloc_vcpu_guest_context
Unexecuted instantiation: libelf-loader.c:alloc_vcpu_guest_context
Unexecuted instantiation: llvm.c:alloc_vcpu_guest_context
Unexecuted instantiation: tmem_control.c:alloc_vcpu_guest_context
Unexecuted instantiation: tmem_xen.c:alloc_vcpu_guest_context
Unexecuted instantiation: tmem.c:alloc_vcpu_guest_context
Unexecuted instantiation: xenoprof.c:alloc_vcpu_guest_context
Unexecuted instantiation: wait.c:alloc_vcpu_guest_context
Unexecuted instantiation: vsprintf.c:alloc_vcpu_guest_context
Unexecuted instantiation: vm_event.c:alloc_vcpu_guest_context
Unexecuted instantiation: trace.c:alloc_vcpu_guest_context
Unexecuted instantiation: timer.c:alloc_vcpu_guest_context
Unexecuted instantiation: time.c:alloc_vcpu_guest_context
Unexecuted instantiation: tasklet.c:alloc_vcpu_guest_context
Unexecuted instantiation: sysctl.c:alloc_vcpu_guest_context
Unexecuted instantiation: symbols.c:alloc_vcpu_guest_context
Unexecuted instantiation: stop_machine.c:alloc_vcpu_guest_context
Unexecuted instantiation: spinlock.c:alloc_vcpu_guest_context
Unexecuted instantiation: softirq.c:alloc_vcpu_guest_context
Unexecuted instantiation: shutdown.c:alloc_vcpu_guest_context
Unexecuted instantiation: schedule.c:alloc_vcpu_guest_context
Unexecuted instantiation: sched_null.c:alloc_vcpu_guest_context
Unexecuted instantiation: sched_rt.c:alloc_vcpu_guest_context
Unexecuted instantiation: sched_credit2.c:alloc_vcpu_guest_context
Unexecuted instantiation: sched_credit.c:alloc_vcpu_guest_context
Unexecuted instantiation: sched_arinc653.c:alloc_vcpu_guest_context
Unexecuted instantiation: rcupdate.c:alloc_vcpu_guest_context
Unexecuted instantiation: rangeset.c:alloc_vcpu_guest_context
Unexecuted instantiation: page_alloc.c:alloc_vcpu_guest_context
Unexecuted instantiation: multicall.c:alloc_vcpu_guest_context
Unexecuted instantiation: monitor.c:alloc_vcpu_guest_context
Unexecuted instantiation: memory.c:alloc_vcpu_guest_context
Unexecuted instantiation: mem_access.c:alloc_vcpu_guest_context
Unexecuted instantiation: kimage.c:alloc_vcpu_guest_context
Unexecuted instantiation: kexec.c:alloc_vcpu_guest_context
Unexecuted instantiation: keyhandler.c:alloc_vcpu_guest_context
Unexecuted instantiation: kernel.c:alloc_vcpu_guest_context
Unexecuted instantiation: guestcopy.c:alloc_vcpu_guest_context
Unexecuted instantiation: grant_table.c:alloc_vcpu_guest_context
Unexecuted instantiation: event_fifo.c:alloc_vcpu_guest_context
Unexecuted instantiation: event_channel.c:alloc_vcpu_guest_context
Unexecuted instantiation: event_2l.c:alloc_vcpu_guest_context
Unexecuted instantiation: domain.c:alloc_vcpu_guest_context
Unexecuted instantiation: domctl.c:alloc_vcpu_guest_context
Unexecuted instantiation: cpupool.c:alloc_vcpu_guest_context
Unexecuted instantiation: cpu.c:alloc_vcpu_guest_context
631
632
static inline void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
633
0
{
634
0
    vfree(vgc);
635
0
}
Unexecuted instantiation: ro-page-fault.c:free_vcpu_guest_context
Unexecuted instantiation: cpu.c:free_vcpu_guest_context
Unexecuted instantiation: misc-hypercalls.c:free_vcpu_guest_context
Unexecuted instantiation: iret.c:free_vcpu_guest_context
Unexecuted instantiation: emul-priv-op.c:free_vcpu_guest_context
Unexecuted instantiation: emul-inv-op.c:free_vcpu_guest_context
Unexecuted instantiation: emul-gate-op.c:free_vcpu_guest_context
Unexecuted instantiation: descriptor-tables.c:free_vcpu_guest_context
Unexecuted instantiation: callback.c:free_vcpu_guest_context
Unexecuted instantiation: backtrace.c:free_vcpu_guest_context
Unexecuted instantiation: op_model_athlon.c:free_vcpu_guest_context
Unexecuted instantiation: op_model_ppro.c:free_vcpu_guest_context
Unexecuted instantiation: nmi_int.c:free_vcpu_guest_context
Unexecuted instantiation: nested_ept.c:free_vcpu_guest_context
Unexecuted instantiation: nested_hap.c:free_vcpu_guest_context
Unexecuted instantiation: hap.c:free_vcpu_guest_context
Unexecuted instantiation: multi.c:free_vcpu_guest_context
Unexecuted instantiation: mem_sharing.c:free_vcpu_guest_context
Unexecuted instantiation: mem_paging.c:free_vcpu_guest_context
Unexecuted instantiation: guest_walk.c:free_vcpu_guest_context
Unexecuted instantiation: altp2m.c:free_vcpu_guest_context
Unexecuted instantiation: p2m-pod.c:free_vcpu_guest_context
Unexecuted instantiation: p2m-ept.c:free_vcpu_guest_context
Unexecuted instantiation: p2m-pt.c:free_vcpu_guest_context
Unexecuted instantiation: p2m.c:free_vcpu_guest_context
Unexecuted instantiation: paging.c:free_vcpu_guest_context
Unexecuted instantiation: vvmx.c:free_vcpu_guest_context
Unexecuted instantiation: vmx.c:free_vcpu_guest_context
Unexecuted instantiation: vmcs.c:free_vcpu_guest_context
Unexecuted instantiation: realmode.c:free_vcpu_guest_context
Unexecuted instantiation: vmcb.c:free_vcpu_guest_context
Unexecuted instantiation: svmdebug.c:free_vcpu_guest_context
Unexecuted instantiation: svm.c:free_vcpu_guest_context
Unexecuted instantiation: nestedsvm.c:free_vcpu_guest_context
Unexecuted instantiation: intr.c:free_vcpu_guest_context
Unexecuted instantiation: vpt.c:free_vcpu_guest_context
Unexecuted instantiation: vpic.c:free_vcpu_guest_context
Unexecuted instantiation: vmsi.c:free_vcpu_guest_context
Unexecuted instantiation: vlapic.c:free_vcpu_guest_context
Unexecuted instantiation: viridian.c:free_vcpu_guest_context
Unexecuted instantiation: vioapic.c:free_vcpu_guest_context
Unexecuted instantiation: stdvga.c:free_vcpu_guest_context
Unexecuted instantiation: save.c:free_vcpu_guest_context
Unexecuted instantiation: rtc.c:free_vcpu_guest_context
Unexecuted instantiation: pmtimer.c:free_vcpu_guest_context
Unexecuted instantiation: nestedhvm.c:free_vcpu_guest_context
Unexecuted instantiation: mtrr.c:free_vcpu_guest_context
Unexecuted instantiation: ioreq.c:free_vcpu_guest_context
Unexecuted instantiation: intercept.c:free_vcpu_guest_context
Unexecuted instantiation: i8254.c:free_vcpu_guest_context
Unexecuted instantiation: hvm.c:free_vcpu_guest_context
Unexecuted instantiation: hpet.c:free_vcpu_guest_context
Unexecuted instantiation: emulate.c:free_vcpu_guest_context
Unexecuted instantiation: dm.c:free_vcpu_guest_context
Unexecuted instantiation: asid.c:free_vcpu_guest_context
Unexecuted instantiation: delivery.c:free_vcpu_guest_context
Unexecuted instantiation: vmce.c:free_vcpu_guest_context
Unexecuted instantiation: util.c:free_vcpu_guest_context
Unexecuted instantiation: non-fatal.c:free_vcpu_guest_context
Unexecuted instantiation: mce_intel.c:free_vcpu_guest_context
Unexecuted instantiation: mce-apei.c:free_vcpu_guest_context
Unexecuted instantiation: mce.c:free_vcpu_guest_context
Unexecuted instantiation: mctelem.c:free_vcpu_guest_context
Unexecuted instantiation: barrier.c:free_vcpu_guest_context
Unexecuted instantiation: mcaction.c:free_vcpu_guest_context
Unexecuted instantiation: mce_amd.c:free_vcpu_guest_context
Unexecuted instantiation: amd_nonfatal.c:free_vcpu_guest_context
Unexecuted instantiation: vpmu_intel.c:free_vcpu_guest_context
Unexecuted instantiation: vpmu_amd.c:free_vcpu_guest_context
Unexecuted instantiation: vpmu.c:free_vcpu_guest_context
Unexecuted instantiation: mwait-idle.c:free_vcpu_guest_context
Unexecuted instantiation: intel.c:free_vcpu_guest_context
Unexecuted instantiation: common.c:free_vcpu_guest_context
Unexecuted instantiation: amd.c:free_vcpu_guest_context
Unexecuted instantiation: cpu_idle.c:free_vcpu_guest_context
Unexecuted instantiation: suspend.c:free_vcpu_guest_context
Unexecuted instantiation: power.c:free_vcpu_guest_context
Unexecuted instantiation: xstate.c:free_vcpu_guest_context
Unexecuted instantiation: tboot.c:free_vcpu_guest_context
Unexecuted instantiation: x86_emulate.c:free_vcpu_guest_context
Unexecuted instantiation: usercopy.c:free_vcpu_guest_context
Unexecuted instantiation: traps.c:free_vcpu_guest_context
Unexecuted instantiation: smpboot.c:free_vcpu_guest_context
Unexecuted instantiation: smp.c:free_vcpu_guest_context
Unexecuted instantiation: setup.c:free_vcpu_guest_context
Unexecuted instantiation: psr.c:free_vcpu_guest_context
Unexecuted instantiation: platform_hypercall.c:free_vcpu_guest_context
Unexecuted instantiation: physdev.c:free_vcpu_guest_context
Unexecuted instantiation: numa.c:free_vcpu_guest_context
Unexecuted instantiation: nmi.c:free_vcpu_guest_context
Unexecuted instantiation: mpparse.c:free_vcpu_guest_context
Unexecuted instantiation: mm.c:free_vcpu_guest_context
Unexecuted instantiation: microcode.c:free_vcpu_guest_context
Unexecuted instantiation: microcode_intel.c:free_vcpu_guest_context
Unexecuted instantiation: microcode_amd.c:free_vcpu_guest_context
Unexecuted instantiation: machine_kexec.c:free_vcpu_guest_context
Unexecuted instantiation: irq.c:free_vcpu_guest_context
Unexecuted instantiation: ioport_emulate.c:free_vcpu_guest_context
Unexecuted instantiation: msr.c:free_vcpu_guest_context
Unexecuted instantiation: io_apic.c:free_vcpu_guest_context
Unexecuted instantiation: i8259.c:free_vcpu_guest_context
Unexecuted instantiation: i387.c:free_vcpu_guest_context
Unexecuted instantiation: hypercall.c:free_vcpu_guest_context
Unexecuted instantiation: flushtlb.c:free_vcpu_guest_context
Unexecuted instantiation: domain_page.c:free_vcpu_guest_context
Unexecuted instantiation: debug.c:free_vcpu_guest_context
Unexecuted instantiation: crash.c:free_vcpu_guest_context
Unexecuted instantiation: compat.c:free_vcpu_guest_context
Unexecuted instantiation: cpuid.c:free_vcpu_guest_context
Unexecuted instantiation: apic.c:free_vcpu_guest_context
Unexecuted instantiation: xsm_core.c:free_vcpu_guest_context
Unexecuted instantiation: pmstat.c:free_vcpu_guest_context
Unexecuted instantiation: iommu_guest.c:free_vcpu_guest_context
Unexecuted instantiation: iommu_cmd.c:free_vcpu_guest_context
Unexecuted instantiation: iommu_intr.c:free_vcpu_guest_context
Unexecuted instantiation: pci_amd_iommu.c:free_vcpu_guest_context
Unexecuted instantiation: iommu_map.c:free_vcpu_guest_context
Unexecuted instantiation: iommu_init.c:free_vcpu_guest_context
Unexecuted instantiation: ats.c:free_vcpu_guest_context
Unexecuted instantiation: vtd.c:free_vcpu_guest_context
Unexecuted instantiation: quirks.c:free_vcpu_guest_context
Unexecuted instantiation: intremap.c:free_vcpu_guest_context
Unexecuted instantiation: qinval.c:free_vcpu_guest_context
Unexecuted instantiation: utils.c:free_vcpu_guest_context
Unexecuted instantiation: pci.c:free_vcpu_guest_context
Unexecuted instantiation: io.c:free_vcpu_guest_context
Unexecuted instantiation: iommu.c:free_vcpu_guest_context
Unexecuted instantiation: msix.c:free_vcpu_guest_context
Unexecuted instantiation: msi.c:free_vcpu_guest_context
Unexecuted instantiation: header.c:free_vcpu_guest_context
Unexecuted instantiation: vpci.c:free_vcpu_guest_context
Unexecuted instantiation: utility.c:free_vcpu_guest_context
Unexecuted instantiation: cpufreq_misc_governors.c:free_vcpu_guest_context
Unexecuted instantiation: cpufreq_ondemand.c:free_vcpu_guest_context
Unexecuted instantiation: cpufreq.c:free_vcpu_guest_context
Unexecuted instantiation: ns16550.c:free_vcpu_guest_context
Unexecuted instantiation: console.c:free_vcpu_guest_context
Unexecuted instantiation: libelf-loader.c:free_vcpu_guest_context
Unexecuted instantiation: llvm.c:free_vcpu_guest_context
Unexecuted instantiation: tmem_control.c:free_vcpu_guest_context
Unexecuted instantiation: tmem_xen.c:free_vcpu_guest_context
Unexecuted instantiation: tmem.c:free_vcpu_guest_context
Unexecuted instantiation: xenoprof.c:free_vcpu_guest_context
Unexecuted instantiation: wait.c:free_vcpu_guest_context
Unexecuted instantiation: vsprintf.c:free_vcpu_guest_context
Unexecuted instantiation: vm_event.c:free_vcpu_guest_context
Unexecuted instantiation: trace.c:free_vcpu_guest_context
Unexecuted instantiation: timer.c:free_vcpu_guest_context
Unexecuted instantiation: time.c:free_vcpu_guest_context
Unexecuted instantiation: tasklet.c:free_vcpu_guest_context
Unexecuted instantiation: sysctl.c:free_vcpu_guest_context
Unexecuted instantiation: symbols.c:free_vcpu_guest_context
Unexecuted instantiation: stop_machine.c:free_vcpu_guest_context
Unexecuted instantiation: spinlock.c:free_vcpu_guest_context
Unexecuted instantiation: softirq.c:free_vcpu_guest_context
Unexecuted instantiation: shutdown.c:free_vcpu_guest_context
Unexecuted instantiation: schedule.c:free_vcpu_guest_context
Unexecuted instantiation: sched_null.c:free_vcpu_guest_context
Unexecuted instantiation: sched_rt.c:free_vcpu_guest_context
Unexecuted instantiation: sched_credit2.c:free_vcpu_guest_context
Unexecuted instantiation: sched_credit.c:free_vcpu_guest_context
Unexecuted instantiation: sched_arinc653.c:free_vcpu_guest_context
Unexecuted instantiation: rcupdate.c:free_vcpu_guest_context
Unexecuted instantiation: rangeset.c:free_vcpu_guest_context
Unexecuted instantiation: page_alloc.c:free_vcpu_guest_context
Unexecuted instantiation: multicall.c:free_vcpu_guest_context
Unexecuted instantiation: monitor.c:free_vcpu_guest_context
Unexecuted instantiation: memory.c:free_vcpu_guest_context
Unexecuted instantiation: mem_access.c:free_vcpu_guest_context
Unexecuted instantiation: kimage.c:free_vcpu_guest_context
Unexecuted instantiation: kexec.c:free_vcpu_guest_context
Unexecuted instantiation: keyhandler.c:free_vcpu_guest_context
Unexecuted instantiation: kernel.c:free_vcpu_guest_context
Unexecuted instantiation: guestcopy.c:free_vcpu_guest_context
Unexecuted instantiation: grant_table.c:free_vcpu_guest_context
Unexecuted instantiation: event_fifo.c:free_vcpu_guest_context
Unexecuted instantiation: event_channel.c:free_vcpu_guest_context
Unexecuted instantiation: event_2l.c:free_vcpu_guest_context
Unexecuted instantiation: domain.c:free_vcpu_guest_context
Unexecuted instantiation: domctl.c:free_vcpu_guest_context
Unexecuted instantiation: cpupool.c:free_vcpu_guest_context
636
637
struct vcpu_hvm_context;
638
int arch_set_info_hvm_guest(struct vcpu *v, const struct vcpu_hvm_context *ctx);
639
640
void pv_inject_event(const struct x86_event *event);
641
642
static inline void pv_inject_hw_exception(unsigned int vector, int errcode)
643
0
{
644
0
    const struct x86_event event = {
645
0
        .vector = vector,
646
0
        .type = X86_EVENTTYPE_HW_EXCEPTION,
647
0
        .error_code = errcode,
648
0
    };
649
0
650
0
    pv_inject_event(&event);
651
0
}
Unexecuted instantiation: ro-page-fault.c:pv_inject_hw_exception
Unexecuted instantiation: misc-hypercalls.c:pv_inject_hw_exception
Unexecuted instantiation: iret.c:pv_inject_hw_exception
Unexecuted instantiation: emul-priv-op.c:pv_inject_hw_exception
Unexecuted instantiation: emul-inv-op.c:pv_inject_hw_exception
Unexecuted instantiation: emul-gate-op.c:pv_inject_hw_exception
Unexecuted instantiation: descriptor-tables.c:pv_inject_hw_exception
Unexecuted instantiation: callback.c:pv_inject_hw_exception
Unexecuted instantiation: backtrace.c:pv_inject_hw_exception
Unexecuted instantiation: op_model_athlon.c:pv_inject_hw_exception
Unexecuted instantiation: op_model_ppro.c:pv_inject_hw_exception
Unexecuted instantiation: nmi_int.c:pv_inject_hw_exception
Unexecuted instantiation: nested_ept.c:pv_inject_hw_exception
Unexecuted instantiation: nested_hap.c:pv_inject_hw_exception
Unexecuted instantiation: hap.c:pv_inject_hw_exception
Unexecuted instantiation: multi.c:pv_inject_hw_exception
Unexecuted instantiation: mem_sharing.c:pv_inject_hw_exception
Unexecuted instantiation: mem_paging.c:pv_inject_hw_exception
Unexecuted instantiation: guest_walk.c:pv_inject_hw_exception
Unexecuted instantiation: altp2m.c:pv_inject_hw_exception
Unexecuted instantiation: p2m-pod.c:pv_inject_hw_exception
Unexecuted instantiation: p2m-ept.c:pv_inject_hw_exception
Unexecuted instantiation: p2m-pt.c:pv_inject_hw_exception
Unexecuted instantiation: p2m.c:pv_inject_hw_exception
Unexecuted instantiation: paging.c:pv_inject_hw_exception
Unexecuted instantiation: vvmx.c:pv_inject_hw_exception
Unexecuted instantiation: vmx.c:pv_inject_hw_exception
Unexecuted instantiation: vmcs.c:pv_inject_hw_exception
Unexecuted instantiation: realmode.c:pv_inject_hw_exception
Unexecuted instantiation: vmcb.c:pv_inject_hw_exception
Unexecuted instantiation: svmdebug.c:pv_inject_hw_exception
Unexecuted instantiation: svm.c:pv_inject_hw_exception
Unexecuted instantiation: nestedsvm.c:pv_inject_hw_exception
Unexecuted instantiation: intr.c:pv_inject_hw_exception
Unexecuted instantiation: vpt.c:pv_inject_hw_exception
Unexecuted instantiation: vpic.c:pv_inject_hw_exception
Unexecuted instantiation: vmsi.c:pv_inject_hw_exception
Unexecuted instantiation: vlapic.c:pv_inject_hw_exception
Unexecuted instantiation: viridian.c:pv_inject_hw_exception
Unexecuted instantiation: vioapic.c:pv_inject_hw_exception
Unexecuted instantiation: stdvga.c:pv_inject_hw_exception
Unexecuted instantiation: save.c:pv_inject_hw_exception
Unexecuted instantiation: rtc.c:pv_inject_hw_exception
Unexecuted instantiation: pmtimer.c:pv_inject_hw_exception
Unexecuted instantiation: nestedhvm.c:pv_inject_hw_exception
Unexecuted instantiation: mtrr.c:pv_inject_hw_exception
Unexecuted instantiation: ioreq.c:pv_inject_hw_exception
Unexecuted instantiation: intercept.c:pv_inject_hw_exception
Unexecuted instantiation: i8254.c:pv_inject_hw_exception
Unexecuted instantiation: hvm.c:pv_inject_hw_exception
Unexecuted instantiation: hpet.c:pv_inject_hw_exception
Unexecuted instantiation: emulate.c:pv_inject_hw_exception
Unexecuted instantiation: dm.c:pv_inject_hw_exception
Unexecuted instantiation: asid.c:pv_inject_hw_exception
Unexecuted instantiation: delivery.c:pv_inject_hw_exception
Unexecuted instantiation: vmce.c:pv_inject_hw_exception
Unexecuted instantiation: util.c:pv_inject_hw_exception
Unexecuted instantiation: non-fatal.c:pv_inject_hw_exception
Unexecuted instantiation: mce_intel.c:pv_inject_hw_exception
Unexecuted instantiation: mce-apei.c:pv_inject_hw_exception
Unexecuted instantiation: mce.c:pv_inject_hw_exception
Unexecuted instantiation: mctelem.c:pv_inject_hw_exception
Unexecuted instantiation: barrier.c:pv_inject_hw_exception
Unexecuted instantiation: mcaction.c:pv_inject_hw_exception
Unexecuted instantiation: mce_amd.c:pv_inject_hw_exception
Unexecuted instantiation: amd_nonfatal.c:pv_inject_hw_exception
Unexecuted instantiation: vpmu_intel.c:pv_inject_hw_exception
Unexecuted instantiation: vpmu_amd.c:pv_inject_hw_exception
Unexecuted instantiation: vpmu.c:pv_inject_hw_exception
Unexecuted instantiation: mwait-idle.c:pv_inject_hw_exception
Unexecuted instantiation: intel.c:pv_inject_hw_exception
Unexecuted instantiation: common.c:pv_inject_hw_exception
Unexecuted instantiation: amd.c:pv_inject_hw_exception
Unexecuted instantiation: cpu_idle.c:pv_inject_hw_exception
Unexecuted instantiation: suspend.c:pv_inject_hw_exception
Unexecuted instantiation: power.c:pv_inject_hw_exception
Unexecuted instantiation: xstate.c:pv_inject_hw_exception
Unexecuted instantiation: tboot.c:pv_inject_hw_exception
Unexecuted instantiation: x86_emulate.c:pv_inject_hw_exception
Unexecuted instantiation: usercopy.c:pv_inject_hw_exception
Unexecuted instantiation: traps.c:pv_inject_hw_exception
Unexecuted instantiation: smpboot.c:pv_inject_hw_exception
Unexecuted instantiation: smp.c:pv_inject_hw_exception
Unexecuted instantiation: setup.c:pv_inject_hw_exception
Unexecuted instantiation: psr.c:pv_inject_hw_exception
Unexecuted instantiation: platform_hypercall.c:pv_inject_hw_exception
Unexecuted instantiation: physdev.c:pv_inject_hw_exception
Unexecuted instantiation: numa.c:pv_inject_hw_exception
Unexecuted instantiation: nmi.c:pv_inject_hw_exception
Unexecuted instantiation: mpparse.c:pv_inject_hw_exception
Unexecuted instantiation: cpu.c:pv_inject_hw_exception
Unexecuted instantiation: mm.c:pv_inject_hw_exception
Unexecuted instantiation: microcode.c:pv_inject_hw_exception
Unexecuted instantiation: microcode_intel.c:pv_inject_hw_exception
Unexecuted instantiation: microcode_amd.c:pv_inject_hw_exception
Unexecuted instantiation: machine_kexec.c:pv_inject_hw_exception
Unexecuted instantiation: irq.c:pv_inject_hw_exception
Unexecuted instantiation: ioport_emulate.c:pv_inject_hw_exception
Unexecuted instantiation: msr.c:pv_inject_hw_exception
Unexecuted instantiation: io_apic.c:pv_inject_hw_exception
Unexecuted instantiation: i8259.c:pv_inject_hw_exception
Unexecuted instantiation: i387.c:pv_inject_hw_exception
Unexecuted instantiation: hypercall.c:pv_inject_hw_exception
Unexecuted instantiation: flushtlb.c:pv_inject_hw_exception
Unexecuted instantiation: domain_page.c:pv_inject_hw_exception
Unexecuted instantiation: debug.c:pv_inject_hw_exception
Unexecuted instantiation: crash.c:pv_inject_hw_exception
Unexecuted instantiation: compat.c:pv_inject_hw_exception
Unexecuted instantiation: cpuid.c:pv_inject_hw_exception
Unexecuted instantiation: apic.c:pv_inject_hw_exception
Unexecuted instantiation: xsm_core.c:pv_inject_hw_exception
Unexecuted instantiation: pmstat.c:pv_inject_hw_exception
Unexecuted instantiation: iommu_guest.c:pv_inject_hw_exception
Unexecuted instantiation: iommu_cmd.c:pv_inject_hw_exception
Unexecuted instantiation: iommu_intr.c:pv_inject_hw_exception
Unexecuted instantiation: pci_amd_iommu.c:pv_inject_hw_exception
Unexecuted instantiation: iommu_map.c:pv_inject_hw_exception
Unexecuted instantiation: iommu_init.c:pv_inject_hw_exception
Unexecuted instantiation: ats.c:pv_inject_hw_exception
Unexecuted instantiation: vtd.c:pv_inject_hw_exception
Unexecuted instantiation: quirks.c:pv_inject_hw_exception
Unexecuted instantiation: intremap.c:pv_inject_hw_exception
Unexecuted instantiation: qinval.c:pv_inject_hw_exception
Unexecuted instantiation: utils.c:pv_inject_hw_exception
Unexecuted instantiation: pci.c:pv_inject_hw_exception
Unexecuted instantiation: io.c:pv_inject_hw_exception
Unexecuted instantiation: iommu.c:pv_inject_hw_exception
Unexecuted instantiation: msix.c:pv_inject_hw_exception
Unexecuted instantiation: msi.c:pv_inject_hw_exception
Unexecuted instantiation: header.c:pv_inject_hw_exception
Unexecuted instantiation: vpci.c:pv_inject_hw_exception
Unexecuted instantiation: utility.c:pv_inject_hw_exception
Unexecuted instantiation: cpufreq_misc_governors.c:pv_inject_hw_exception
Unexecuted instantiation: cpufreq_ondemand.c:pv_inject_hw_exception
Unexecuted instantiation: cpufreq.c:pv_inject_hw_exception
Unexecuted instantiation: ns16550.c:pv_inject_hw_exception
Unexecuted instantiation: console.c:pv_inject_hw_exception
Unexecuted instantiation: libelf-loader.c:pv_inject_hw_exception
Unexecuted instantiation: llvm.c:pv_inject_hw_exception
Unexecuted instantiation: tmem_control.c:pv_inject_hw_exception
Unexecuted instantiation: tmem_xen.c:pv_inject_hw_exception
Unexecuted instantiation: tmem.c:pv_inject_hw_exception
Unexecuted instantiation: xenoprof.c:pv_inject_hw_exception
Unexecuted instantiation: wait.c:pv_inject_hw_exception
Unexecuted instantiation: vsprintf.c:pv_inject_hw_exception
Unexecuted instantiation: vm_event.c:pv_inject_hw_exception
Unexecuted instantiation: trace.c:pv_inject_hw_exception
Unexecuted instantiation: timer.c:pv_inject_hw_exception
Unexecuted instantiation: time.c:pv_inject_hw_exception
Unexecuted instantiation: tasklet.c:pv_inject_hw_exception
Unexecuted instantiation: sysctl.c:pv_inject_hw_exception
Unexecuted instantiation: symbols.c:pv_inject_hw_exception
Unexecuted instantiation: stop_machine.c:pv_inject_hw_exception
Unexecuted instantiation: spinlock.c:pv_inject_hw_exception
Unexecuted instantiation: softirq.c:pv_inject_hw_exception
Unexecuted instantiation: shutdown.c:pv_inject_hw_exception
Unexecuted instantiation: schedule.c:pv_inject_hw_exception
Unexecuted instantiation: sched_null.c:pv_inject_hw_exception
Unexecuted instantiation: sched_rt.c:pv_inject_hw_exception
Unexecuted instantiation: sched_credit2.c:pv_inject_hw_exception
Unexecuted instantiation: sched_credit.c:pv_inject_hw_exception
Unexecuted instantiation: sched_arinc653.c:pv_inject_hw_exception
Unexecuted instantiation: rcupdate.c:pv_inject_hw_exception
Unexecuted instantiation: rangeset.c:pv_inject_hw_exception
Unexecuted instantiation: page_alloc.c:pv_inject_hw_exception
Unexecuted instantiation: multicall.c:pv_inject_hw_exception
Unexecuted instantiation: monitor.c:pv_inject_hw_exception
Unexecuted instantiation: memory.c:pv_inject_hw_exception
Unexecuted instantiation: mem_access.c:pv_inject_hw_exception
Unexecuted instantiation: kimage.c:pv_inject_hw_exception
Unexecuted instantiation: kexec.c:pv_inject_hw_exception
Unexecuted instantiation: keyhandler.c:pv_inject_hw_exception
Unexecuted instantiation: kernel.c:pv_inject_hw_exception
Unexecuted instantiation: guestcopy.c:pv_inject_hw_exception
Unexecuted instantiation: grant_table.c:pv_inject_hw_exception
Unexecuted instantiation: event_fifo.c:pv_inject_hw_exception
Unexecuted instantiation: event_channel.c:pv_inject_hw_exception
Unexecuted instantiation: event_2l.c:pv_inject_hw_exception
Unexecuted instantiation: domain.c:pv_inject_hw_exception
Unexecuted instantiation: domctl.c:pv_inject_hw_exception
Unexecuted instantiation: cpupool.c:pv_inject_hw_exception
652
653
static inline void pv_inject_page_fault(int errcode, unsigned long cr2)
654
0
{
655
0
    const struct x86_event event = {
656
0
        .vector = TRAP_page_fault,
657
0
        .type = X86_EVENTTYPE_HW_EXCEPTION,
658
0
        .error_code = errcode,
659
0
        .cr2 = cr2,
660
0
    };
661
0
662
0
    pv_inject_event(&event);
663
0
}
Unexecuted instantiation: cpupool.c:pv_inject_page_fault
Unexecuted instantiation: cpu.c:pv_inject_page_fault
Unexecuted instantiation: domctl.c:pv_inject_page_fault
Unexecuted instantiation: domain.c:pv_inject_page_fault
Unexecuted instantiation: event_2l.c:pv_inject_page_fault
Unexecuted instantiation: event_channel.c:pv_inject_page_fault
Unexecuted instantiation: event_fifo.c:pv_inject_page_fault
Unexecuted instantiation: grant_table.c:pv_inject_page_fault
Unexecuted instantiation: guestcopy.c:pv_inject_page_fault
Unexecuted instantiation: kernel.c:pv_inject_page_fault
Unexecuted instantiation: keyhandler.c:pv_inject_page_fault
Unexecuted instantiation: kexec.c:pv_inject_page_fault
Unexecuted instantiation: kimage.c:pv_inject_page_fault
Unexecuted instantiation: mem_access.c:pv_inject_page_fault
Unexecuted instantiation: memory.c:pv_inject_page_fault
Unexecuted instantiation: monitor.c:pv_inject_page_fault
Unexecuted instantiation: multicall.c:pv_inject_page_fault
Unexecuted instantiation: page_alloc.c:pv_inject_page_fault
Unexecuted instantiation: rangeset.c:pv_inject_page_fault
Unexecuted instantiation: rcupdate.c:pv_inject_page_fault
Unexecuted instantiation: sched_arinc653.c:pv_inject_page_fault
Unexecuted instantiation: sched_credit.c:pv_inject_page_fault
Unexecuted instantiation: sched_credit2.c:pv_inject_page_fault
Unexecuted instantiation: sched_rt.c:pv_inject_page_fault
Unexecuted instantiation: sched_null.c:pv_inject_page_fault
Unexecuted instantiation: schedule.c:pv_inject_page_fault
Unexecuted instantiation: shutdown.c:pv_inject_page_fault
Unexecuted instantiation: softirq.c:pv_inject_page_fault
Unexecuted instantiation: spinlock.c:pv_inject_page_fault
Unexecuted instantiation: stop_machine.c:pv_inject_page_fault
Unexecuted instantiation: symbols.c:pv_inject_page_fault
Unexecuted instantiation: sysctl.c:pv_inject_page_fault
Unexecuted instantiation: tasklet.c:pv_inject_page_fault
Unexecuted instantiation: time.c:pv_inject_page_fault
Unexecuted instantiation: timer.c:pv_inject_page_fault
Unexecuted instantiation: trace.c:pv_inject_page_fault
Unexecuted instantiation: vm_event.c:pv_inject_page_fault
Unexecuted instantiation: vsprintf.c:pv_inject_page_fault
Unexecuted instantiation: wait.c:pv_inject_page_fault
Unexecuted instantiation: xenoprof.c:pv_inject_page_fault
Unexecuted instantiation: tmem.c:pv_inject_page_fault
Unexecuted instantiation: tmem_xen.c:pv_inject_page_fault
Unexecuted instantiation: tmem_control.c:pv_inject_page_fault
Unexecuted instantiation: llvm.c:pv_inject_page_fault
Unexecuted instantiation: libelf-loader.c:pv_inject_page_fault
Unexecuted instantiation: console.c:pv_inject_page_fault
Unexecuted instantiation: ns16550.c:pv_inject_page_fault
Unexecuted instantiation: cpufreq.c:pv_inject_page_fault
Unexecuted instantiation: cpufreq_ondemand.c:pv_inject_page_fault
Unexecuted instantiation: cpufreq_misc_governors.c:pv_inject_page_fault
Unexecuted instantiation: utility.c:pv_inject_page_fault
Unexecuted instantiation: vpci.c:pv_inject_page_fault
Unexecuted instantiation: header.c:pv_inject_page_fault
Unexecuted instantiation: msi.c:pv_inject_page_fault
Unexecuted instantiation: msix.c:pv_inject_page_fault
Unexecuted instantiation: iommu.c:pv_inject_page_fault
Unexecuted instantiation: io.c:pv_inject_page_fault
Unexecuted instantiation: pci.c:pv_inject_page_fault
Unexecuted instantiation: utils.c:pv_inject_page_fault
Unexecuted instantiation: qinval.c:pv_inject_page_fault
Unexecuted instantiation: intremap.c:pv_inject_page_fault
Unexecuted instantiation: quirks.c:pv_inject_page_fault
Unexecuted instantiation: vtd.c:pv_inject_page_fault
Unexecuted instantiation: ats.c:pv_inject_page_fault
Unexecuted instantiation: iommu_init.c:pv_inject_page_fault
Unexecuted instantiation: iommu_map.c:pv_inject_page_fault
Unexecuted instantiation: pci_amd_iommu.c:pv_inject_page_fault
Unexecuted instantiation: iommu_intr.c:pv_inject_page_fault
Unexecuted instantiation: iommu_cmd.c:pv_inject_page_fault
Unexecuted instantiation: iommu_guest.c:pv_inject_page_fault
Unexecuted instantiation: pmstat.c:pv_inject_page_fault
Unexecuted instantiation: xsm_core.c:pv_inject_page_fault
Unexecuted instantiation: apic.c:pv_inject_page_fault
Unexecuted instantiation: cpuid.c:pv_inject_page_fault
Unexecuted instantiation: compat.c:pv_inject_page_fault
Unexecuted instantiation: crash.c:pv_inject_page_fault
Unexecuted instantiation: debug.c:pv_inject_page_fault
Unexecuted instantiation: domain_page.c:pv_inject_page_fault
Unexecuted instantiation: flushtlb.c:pv_inject_page_fault
Unexecuted instantiation: hypercall.c:pv_inject_page_fault
Unexecuted instantiation: i387.c:pv_inject_page_fault
Unexecuted instantiation: i8259.c:pv_inject_page_fault
Unexecuted instantiation: io_apic.c:pv_inject_page_fault
Unexecuted instantiation: msr.c:pv_inject_page_fault
Unexecuted instantiation: ioport_emulate.c:pv_inject_page_fault
Unexecuted instantiation: irq.c:pv_inject_page_fault
Unexecuted instantiation: machine_kexec.c:pv_inject_page_fault
Unexecuted instantiation: microcode_amd.c:pv_inject_page_fault
Unexecuted instantiation: microcode_intel.c:pv_inject_page_fault
Unexecuted instantiation: microcode.c:pv_inject_page_fault
Unexecuted instantiation: mm.c:pv_inject_page_fault
Unexecuted instantiation: mpparse.c:pv_inject_page_fault
Unexecuted instantiation: nmi.c:pv_inject_page_fault
Unexecuted instantiation: numa.c:pv_inject_page_fault
Unexecuted instantiation: physdev.c:pv_inject_page_fault
Unexecuted instantiation: platform_hypercall.c:pv_inject_page_fault
Unexecuted instantiation: psr.c:pv_inject_page_fault
Unexecuted instantiation: setup.c:pv_inject_page_fault
Unexecuted instantiation: smp.c:pv_inject_page_fault
Unexecuted instantiation: smpboot.c:pv_inject_page_fault
Unexecuted instantiation: traps.c:pv_inject_page_fault
Unexecuted instantiation: usercopy.c:pv_inject_page_fault
Unexecuted instantiation: x86_emulate.c:pv_inject_page_fault
Unexecuted instantiation: tboot.c:pv_inject_page_fault
Unexecuted instantiation: xstate.c:pv_inject_page_fault
Unexecuted instantiation: power.c:pv_inject_page_fault
Unexecuted instantiation: suspend.c:pv_inject_page_fault
Unexecuted instantiation: cpu_idle.c:pv_inject_page_fault
Unexecuted instantiation: amd.c:pv_inject_page_fault
Unexecuted instantiation: common.c:pv_inject_page_fault
Unexecuted instantiation: intel.c:pv_inject_page_fault
Unexecuted instantiation: mwait-idle.c:pv_inject_page_fault
Unexecuted instantiation: vpmu.c:pv_inject_page_fault
Unexecuted instantiation: vpmu_amd.c:pv_inject_page_fault
Unexecuted instantiation: vpmu_intel.c:pv_inject_page_fault
Unexecuted instantiation: amd_nonfatal.c:pv_inject_page_fault
Unexecuted instantiation: mce_amd.c:pv_inject_page_fault
Unexecuted instantiation: mcaction.c:pv_inject_page_fault
Unexecuted instantiation: barrier.c:pv_inject_page_fault
Unexecuted instantiation: mctelem.c:pv_inject_page_fault
Unexecuted instantiation: mce.c:pv_inject_page_fault
Unexecuted instantiation: mce-apei.c:pv_inject_page_fault
Unexecuted instantiation: mce_intel.c:pv_inject_page_fault
Unexecuted instantiation: non-fatal.c:pv_inject_page_fault
Unexecuted instantiation: util.c:pv_inject_page_fault
Unexecuted instantiation: vmce.c:pv_inject_page_fault
Unexecuted instantiation: delivery.c:pv_inject_page_fault
Unexecuted instantiation: asid.c:pv_inject_page_fault
Unexecuted instantiation: dm.c:pv_inject_page_fault
Unexecuted instantiation: emulate.c:pv_inject_page_fault
Unexecuted instantiation: hpet.c:pv_inject_page_fault
Unexecuted instantiation: hvm.c:pv_inject_page_fault
Unexecuted instantiation: i8254.c:pv_inject_page_fault
Unexecuted instantiation: intercept.c:pv_inject_page_fault
Unexecuted instantiation: ioreq.c:pv_inject_page_fault
Unexecuted instantiation: mtrr.c:pv_inject_page_fault
Unexecuted instantiation: nestedhvm.c:pv_inject_page_fault
Unexecuted instantiation: pmtimer.c:pv_inject_page_fault
Unexecuted instantiation: rtc.c:pv_inject_page_fault
Unexecuted instantiation: save.c:pv_inject_page_fault
Unexecuted instantiation: stdvga.c:pv_inject_page_fault
Unexecuted instantiation: vioapic.c:pv_inject_page_fault
Unexecuted instantiation: viridian.c:pv_inject_page_fault
Unexecuted instantiation: vlapic.c:pv_inject_page_fault
Unexecuted instantiation: vmsi.c:pv_inject_page_fault
Unexecuted instantiation: vpic.c:pv_inject_page_fault
Unexecuted instantiation: vpt.c:pv_inject_page_fault
Unexecuted instantiation: intr.c:pv_inject_page_fault
Unexecuted instantiation: nestedsvm.c:pv_inject_page_fault
Unexecuted instantiation: svm.c:pv_inject_page_fault
Unexecuted instantiation: svmdebug.c:pv_inject_page_fault
Unexecuted instantiation: vmcb.c:pv_inject_page_fault
Unexecuted instantiation: realmode.c:pv_inject_page_fault
Unexecuted instantiation: vmcs.c:pv_inject_page_fault
Unexecuted instantiation: vmx.c:pv_inject_page_fault
Unexecuted instantiation: vvmx.c:pv_inject_page_fault
Unexecuted instantiation: paging.c:pv_inject_page_fault
Unexecuted instantiation: p2m.c:pv_inject_page_fault
Unexecuted instantiation: p2m-pt.c:pv_inject_page_fault
Unexecuted instantiation: p2m-ept.c:pv_inject_page_fault
Unexecuted instantiation: p2m-pod.c:pv_inject_page_fault
Unexecuted instantiation: altp2m.c:pv_inject_page_fault
Unexecuted instantiation: guest_walk.c:pv_inject_page_fault
Unexecuted instantiation: mem_paging.c:pv_inject_page_fault
Unexecuted instantiation: mem_sharing.c:pv_inject_page_fault
Unexecuted instantiation: multi.c:pv_inject_page_fault
Unexecuted instantiation: hap.c:pv_inject_page_fault
Unexecuted instantiation: nested_hap.c:pv_inject_page_fault
Unexecuted instantiation: nested_ept.c:pv_inject_page_fault
Unexecuted instantiation: nmi_int.c:pv_inject_page_fault
Unexecuted instantiation: op_model_ppro.c:pv_inject_page_fault
Unexecuted instantiation: op_model_athlon.c:pv_inject_page_fault
Unexecuted instantiation: backtrace.c:pv_inject_page_fault
Unexecuted instantiation: callback.c:pv_inject_page_fault
Unexecuted instantiation: descriptor-tables.c:pv_inject_page_fault
Unexecuted instantiation: emul-gate-op.c:pv_inject_page_fault
Unexecuted instantiation: emul-inv-op.c:pv_inject_page_fault
Unexecuted instantiation: emul-priv-op.c:pv_inject_page_fault
Unexecuted instantiation: iret.c:pv_inject_page_fault
Unexecuted instantiation: misc-hypercalls.c:pv_inject_page_fault
Unexecuted instantiation: ro-page-fault.c:pv_inject_page_fault
664
665
static inline void pv_inject_sw_interrupt(unsigned int vector)
666
0
{
667
0
    const struct x86_event event = {
668
0
        .vector = vector,
669
0
        .type = X86_EVENTTYPE_SW_INTERRUPT,
670
0
        .error_code = X86_EVENT_NO_EC,
671
0
    };
672
0
673
0
    pv_inject_event(&event);
674
0
}
Unexecuted instantiation: cpupool.c:pv_inject_sw_interrupt
Unexecuted instantiation: ro-page-fault.c:pv_inject_sw_interrupt
Unexecuted instantiation: misc-hypercalls.c:pv_inject_sw_interrupt
Unexecuted instantiation: iret.c:pv_inject_sw_interrupt
Unexecuted instantiation: emul-priv-op.c:pv_inject_sw_interrupt
Unexecuted instantiation: emul-inv-op.c:pv_inject_sw_interrupt
Unexecuted instantiation: emul-gate-op.c:pv_inject_sw_interrupt
Unexecuted instantiation: descriptor-tables.c:pv_inject_sw_interrupt
Unexecuted instantiation: callback.c:pv_inject_sw_interrupt
Unexecuted instantiation: backtrace.c:pv_inject_sw_interrupt
Unexecuted instantiation: op_model_athlon.c:pv_inject_sw_interrupt
Unexecuted instantiation: op_model_ppro.c:pv_inject_sw_interrupt
Unexecuted instantiation: nmi_int.c:pv_inject_sw_interrupt
Unexecuted instantiation: nested_ept.c:pv_inject_sw_interrupt
Unexecuted instantiation: nested_hap.c:pv_inject_sw_interrupt
Unexecuted instantiation: hap.c:pv_inject_sw_interrupt
Unexecuted instantiation: multi.c:pv_inject_sw_interrupt
Unexecuted instantiation: mem_sharing.c:pv_inject_sw_interrupt
Unexecuted instantiation: mem_paging.c:pv_inject_sw_interrupt
Unexecuted instantiation: guest_walk.c:pv_inject_sw_interrupt
Unexecuted instantiation: altp2m.c:pv_inject_sw_interrupt
Unexecuted instantiation: p2m-pod.c:pv_inject_sw_interrupt
Unexecuted instantiation: p2m-ept.c:pv_inject_sw_interrupt
Unexecuted instantiation: p2m-pt.c:pv_inject_sw_interrupt
Unexecuted instantiation: p2m.c:pv_inject_sw_interrupt
Unexecuted instantiation: paging.c:pv_inject_sw_interrupt
Unexecuted instantiation: vvmx.c:pv_inject_sw_interrupt
Unexecuted instantiation: vmx.c:pv_inject_sw_interrupt
Unexecuted instantiation: vmcs.c:pv_inject_sw_interrupt
Unexecuted instantiation: realmode.c:pv_inject_sw_interrupt
Unexecuted instantiation: vmcb.c:pv_inject_sw_interrupt
Unexecuted instantiation: svmdebug.c:pv_inject_sw_interrupt
Unexecuted instantiation: svm.c:pv_inject_sw_interrupt
Unexecuted instantiation: nestedsvm.c:pv_inject_sw_interrupt
Unexecuted instantiation: intr.c:pv_inject_sw_interrupt
Unexecuted instantiation: vpt.c:pv_inject_sw_interrupt
Unexecuted instantiation: vpic.c:pv_inject_sw_interrupt
Unexecuted instantiation: vmsi.c:pv_inject_sw_interrupt
Unexecuted instantiation: vlapic.c:pv_inject_sw_interrupt
Unexecuted instantiation: viridian.c:pv_inject_sw_interrupt
Unexecuted instantiation: vioapic.c:pv_inject_sw_interrupt
Unexecuted instantiation: stdvga.c:pv_inject_sw_interrupt
Unexecuted instantiation: save.c:pv_inject_sw_interrupt
Unexecuted instantiation: rtc.c:pv_inject_sw_interrupt
Unexecuted instantiation: pmtimer.c:pv_inject_sw_interrupt
Unexecuted instantiation: nestedhvm.c:pv_inject_sw_interrupt
Unexecuted instantiation: mtrr.c:pv_inject_sw_interrupt
Unexecuted instantiation: ioreq.c:pv_inject_sw_interrupt
Unexecuted instantiation: intercept.c:pv_inject_sw_interrupt
Unexecuted instantiation: i8254.c:pv_inject_sw_interrupt
Unexecuted instantiation: hvm.c:pv_inject_sw_interrupt
Unexecuted instantiation: hpet.c:pv_inject_sw_interrupt
Unexecuted instantiation: emulate.c:pv_inject_sw_interrupt
Unexecuted instantiation: dm.c:pv_inject_sw_interrupt
Unexecuted instantiation: asid.c:pv_inject_sw_interrupt
Unexecuted instantiation: delivery.c:pv_inject_sw_interrupt
Unexecuted instantiation: vmce.c:pv_inject_sw_interrupt
Unexecuted instantiation: util.c:pv_inject_sw_interrupt
Unexecuted instantiation: non-fatal.c:pv_inject_sw_interrupt
Unexecuted instantiation: mce_intel.c:pv_inject_sw_interrupt
Unexecuted instantiation: mce-apei.c:pv_inject_sw_interrupt
Unexecuted instantiation: mce.c:pv_inject_sw_interrupt
Unexecuted instantiation: mctelem.c:pv_inject_sw_interrupt
Unexecuted instantiation: barrier.c:pv_inject_sw_interrupt
Unexecuted instantiation: mcaction.c:pv_inject_sw_interrupt
Unexecuted instantiation: mce_amd.c:pv_inject_sw_interrupt
Unexecuted instantiation: amd_nonfatal.c:pv_inject_sw_interrupt
Unexecuted instantiation: vpmu_intel.c:pv_inject_sw_interrupt
Unexecuted instantiation: vpmu_amd.c:pv_inject_sw_interrupt
Unexecuted instantiation: vpmu.c:pv_inject_sw_interrupt
Unexecuted instantiation: mwait-idle.c:pv_inject_sw_interrupt
Unexecuted instantiation: intel.c:pv_inject_sw_interrupt
Unexecuted instantiation: common.c:pv_inject_sw_interrupt
Unexecuted instantiation: amd.c:pv_inject_sw_interrupt
Unexecuted instantiation: cpu_idle.c:pv_inject_sw_interrupt
Unexecuted instantiation: suspend.c:pv_inject_sw_interrupt
Unexecuted instantiation: power.c:pv_inject_sw_interrupt
Unexecuted instantiation: xstate.c:pv_inject_sw_interrupt
Unexecuted instantiation: tboot.c:pv_inject_sw_interrupt
Unexecuted instantiation: x86_emulate.c:pv_inject_sw_interrupt
Unexecuted instantiation: usercopy.c:pv_inject_sw_interrupt
Unexecuted instantiation: traps.c:pv_inject_sw_interrupt
Unexecuted instantiation: smpboot.c:pv_inject_sw_interrupt
Unexecuted instantiation: smp.c:pv_inject_sw_interrupt
Unexecuted instantiation: setup.c:pv_inject_sw_interrupt
Unexecuted instantiation: psr.c:pv_inject_sw_interrupt
Unexecuted instantiation: platform_hypercall.c:pv_inject_sw_interrupt
Unexecuted instantiation: physdev.c:pv_inject_sw_interrupt
Unexecuted instantiation: numa.c:pv_inject_sw_interrupt
Unexecuted instantiation: nmi.c:pv_inject_sw_interrupt
Unexecuted instantiation: mpparse.c:pv_inject_sw_interrupt
Unexecuted instantiation: mm.c:pv_inject_sw_interrupt
Unexecuted instantiation: microcode.c:pv_inject_sw_interrupt
Unexecuted instantiation: microcode_intel.c:pv_inject_sw_interrupt
Unexecuted instantiation: microcode_amd.c:pv_inject_sw_interrupt
Unexecuted instantiation: machine_kexec.c:pv_inject_sw_interrupt
Unexecuted instantiation: irq.c:pv_inject_sw_interrupt
Unexecuted instantiation: ioport_emulate.c:pv_inject_sw_interrupt
Unexecuted instantiation: msr.c:pv_inject_sw_interrupt
Unexecuted instantiation: io_apic.c:pv_inject_sw_interrupt
Unexecuted instantiation: i8259.c:pv_inject_sw_interrupt
Unexecuted instantiation: i387.c:pv_inject_sw_interrupt
Unexecuted instantiation: hypercall.c:pv_inject_sw_interrupt
Unexecuted instantiation: flushtlb.c:pv_inject_sw_interrupt
Unexecuted instantiation: domain_page.c:pv_inject_sw_interrupt
Unexecuted instantiation: debug.c:pv_inject_sw_interrupt
Unexecuted instantiation: crash.c:pv_inject_sw_interrupt
Unexecuted instantiation: compat.c:pv_inject_sw_interrupt
Unexecuted instantiation: cpuid.c:pv_inject_sw_interrupt
Unexecuted instantiation: apic.c:pv_inject_sw_interrupt
Unexecuted instantiation: xsm_core.c:pv_inject_sw_interrupt
Unexecuted instantiation: pmstat.c:pv_inject_sw_interrupt
Unexecuted instantiation: iommu_guest.c:pv_inject_sw_interrupt
Unexecuted instantiation: iommu_cmd.c:pv_inject_sw_interrupt
Unexecuted instantiation: iommu_intr.c:pv_inject_sw_interrupt
Unexecuted instantiation: pci_amd_iommu.c:pv_inject_sw_interrupt
Unexecuted instantiation: iommu_map.c:pv_inject_sw_interrupt
Unexecuted instantiation: iommu_init.c:pv_inject_sw_interrupt
Unexecuted instantiation: ats.c:pv_inject_sw_interrupt
Unexecuted instantiation: vtd.c:pv_inject_sw_interrupt
Unexecuted instantiation: quirks.c:pv_inject_sw_interrupt
Unexecuted instantiation: intremap.c:pv_inject_sw_interrupt
Unexecuted instantiation: qinval.c:pv_inject_sw_interrupt
Unexecuted instantiation: utils.c:pv_inject_sw_interrupt
Unexecuted instantiation: pci.c:pv_inject_sw_interrupt
Unexecuted instantiation: io.c:pv_inject_sw_interrupt
Unexecuted instantiation: iommu.c:pv_inject_sw_interrupt
Unexecuted instantiation: msix.c:pv_inject_sw_interrupt
Unexecuted instantiation: msi.c:pv_inject_sw_interrupt
Unexecuted instantiation: header.c:pv_inject_sw_interrupt
Unexecuted instantiation: vpci.c:pv_inject_sw_interrupt
Unexecuted instantiation: utility.c:pv_inject_sw_interrupt
Unexecuted instantiation: cpufreq_misc_governors.c:pv_inject_sw_interrupt
Unexecuted instantiation: cpufreq_ondemand.c:pv_inject_sw_interrupt
Unexecuted instantiation: cpufreq.c:pv_inject_sw_interrupt
Unexecuted instantiation: ns16550.c:pv_inject_sw_interrupt
Unexecuted instantiation: console.c:pv_inject_sw_interrupt
Unexecuted instantiation: libelf-loader.c:pv_inject_sw_interrupt
Unexecuted instantiation: llvm.c:pv_inject_sw_interrupt
Unexecuted instantiation: tmem_control.c:pv_inject_sw_interrupt
Unexecuted instantiation: tmem_xen.c:pv_inject_sw_interrupt
Unexecuted instantiation: tmem.c:pv_inject_sw_interrupt
Unexecuted instantiation: xenoprof.c:pv_inject_sw_interrupt
Unexecuted instantiation: wait.c:pv_inject_sw_interrupt
Unexecuted instantiation: vsprintf.c:pv_inject_sw_interrupt
Unexecuted instantiation: vm_event.c:pv_inject_sw_interrupt
Unexecuted instantiation: trace.c:pv_inject_sw_interrupt
Unexecuted instantiation: timer.c:pv_inject_sw_interrupt
Unexecuted instantiation: time.c:pv_inject_sw_interrupt
Unexecuted instantiation: tasklet.c:pv_inject_sw_interrupt
Unexecuted instantiation: sysctl.c:pv_inject_sw_interrupt
Unexecuted instantiation: symbols.c:pv_inject_sw_interrupt
Unexecuted instantiation: stop_machine.c:pv_inject_sw_interrupt
Unexecuted instantiation: spinlock.c:pv_inject_sw_interrupt
Unexecuted instantiation: softirq.c:pv_inject_sw_interrupt
Unexecuted instantiation: shutdown.c:pv_inject_sw_interrupt
Unexecuted instantiation: schedule.c:pv_inject_sw_interrupt
Unexecuted instantiation: sched_null.c:pv_inject_sw_interrupt
Unexecuted instantiation: sched_rt.c:pv_inject_sw_interrupt
Unexecuted instantiation: sched_credit2.c:pv_inject_sw_interrupt
Unexecuted instantiation: sched_credit.c:pv_inject_sw_interrupt
Unexecuted instantiation: sched_arinc653.c:pv_inject_sw_interrupt
Unexecuted instantiation: rcupdate.c:pv_inject_sw_interrupt
Unexecuted instantiation: rangeset.c:pv_inject_sw_interrupt
Unexecuted instantiation: page_alloc.c:pv_inject_sw_interrupt
Unexecuted instantiation: multicall.c:pv_inject_sw_interrupt
Unexecuted instantiation: monitor.c:pv_inject_sw_interrupt
Unexecuted instantiation: memory.c:pv_inject_sw_interrupt
Unexecuted instantiation: mem_access.c:pv_inject_sw_interrupt
Unexecuted instantiation: kimage.c:pv_inject_sw_interrupt
Unexecuted instantiation: kexec.c:pv_inject_sw_interrupt
Unexecuted instantiation: keyhandler.c:pv_inject_sw_interrupt
Unexecuted instantiation: kernel.c:pv_inject_sw_interrupt
Unexecuted instantiation: guestcopy.c:pv_inject_sw_interrupt
Unexecuted instantiation: grant_table.c:pv_inject_sw_interrupt
Unexecuted instantiation: event_fifo.c:pv_inject_sw_interrupt
Unexecuted instantiation: event_channel.c:pv_inject_sw_interrupt
Unexecuted instantiation: event_2l.c:pv_inject_sw_interrupt
Unexecuted instantiation: domain.c:pv_inject_sw_interrupt
Unexecuted instantiation: domctl.c:pv_inject_sw_interrupt
Unexecuted instantiation: cpu.c:pv_inject_sw_interrupt
675
676
#endif /* __ASM_DOMAIN_H__ */
677
678
/*
679
 * Local variables:
680
 * mode: C
681
 * c-file-style: "BSD"
682
 * c-basic-offset: 4
683
 * tab-width: 4
684
 * indent-tabs-mode: nil
685
 * End:
686
 */