Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/xen/domain_page.h
Line
Count
Source
1
/******************************************************************************
2
 * domain_page.h
3
 * 
4
 * Allow temporary mapping of domain page frames into Xen space.
5
 * 
6
 * Copyright (c) 2003-2006, Keir Fraser <keir@xensource.com>
7
 */
8
9
#ifndef __XEN_DOMAIN_PAGE_H__
10
#define __XEN_DOMAIN_PAGE_H__
11
12
#include <xen/mm.h>
13
14
/*
15
 * Clear a given page frame, or copy between two of them.
16
 */
17
void clear_domain_page(mfn_t mfn);
18
void copy_domain_page(mfn_t dst, const mfn_t src);
19
20
#ifdef CONFIG_DOMAIN_PAGE
21
22
/*
23
 * Map a given page frame, returning the mapped virtual address. The page is
24
 * then accessible within the current VCPU until a corresponding unmap call.
25
 */
26
void *map_domain_page(mfn_t mfn);
27
28
/*
29
 * Pass a VA within a page previously mapped in the context of the
30
 * currently-executing VCPU via a call to map_domain_page().
31
 */
32
void unmap_domain_page(const void *va);
33
34
/* 
35
 * Given a VA from map_domain_page(), return its underlying MFN.
36
 */
37
unsigned long domain_page_map_to_mfn(const void *va);
38
39
/*
40
 * Similar to the above calls, except the mapping is accessible in all
41
 * address spaces (not just within the VCPU that created the mapping). Global
42
 * mappings can also be unmapped from any context.
43
 */
44
void *map_domain_page_global(mfn_t mfn);
45
void unmap_domain_page_global(const void *va);
46
47
381k
#define __map_domain_page(pg)        map_domain_page(_mfn(__page_to_mfn(pg)))
48
49
static inline void *__map_domain_page_global(const struct page_info *pg)
50
24
{
51
24
    return map_domain_page_global(_mfn(__page_to_mfn(pg)));
52
24
}
Unexecuted instantiation: domctl.c:__map_domain_page_global
domain.c:__map_domain_page_global
Line
Count
Source
50
12
{
51
12
    return map_domain_page_global(_mfn(__page_to_mfn(pg)));
52
12
}
Unexecuted instantiation: event_channel.c:__map_domain_page_global
Unexecuted instantiation: event_fifo.c:__map_domain_page_global
Unexecuted instantiation: grant_table.c:__map_domain_page_global
Unexecuted instantiation: guestcopy.c:__map_domain_page_global
Unexecuted instantiation: kernel.c:__map_domain_page_global
Unexecuted instantiation: kexec.c:__map_domain_page_global
Unexecuted instantiation: kimage.c:__map_domain_page_global
Unexecuted instantiation: mem_access.c:__map_domain_page_global
Unexecuted instantiation: memory.c:__map_domain_page_global
Unexecuted instantiation: multicall.c:__map_domain_page_global
Unexecuted instantiation: page_alloc.c:__map_domain_page_global
Unexecuted instantiation: sched_arinc653.c:__map_domain_page_global
Unexecuted instantiation: sched_rt.c:__map_domain_page_global
Unexecuted instantiation: schedule.c:__map_domain_page_global
Unexecuted instantiation: spinlock.c:__map_domain_page_global
Unexecuted instantiation: symbols.c:__map_domain_page_global
Unexecuted instantiation: sysctl.c:__map_domain_page_global
Unexecuted instantiation: vm_event.c:__map_domain_page_global
Unexecuted instantiation: xenoprof.c:__map_domain_page_global
Unexecuted instantiation: tmem.c:__map_domain_page_global
Unexecuted instantiation: tmem_xen.c:__map_domain_page_global
Unexecuted instantiation: tmem_control.c:__map_domain_page_global
Unexecuted instantiation: llvm.c:__map_domain_page_global
Unexecuted instantiation: libelf-loader.c:__map_domain_page_global
Unexecuted instantiation: console.c:__map_domain_page_global
Unexecuted instantiation: cpufreq.c:__map_domain_page_global
Unexecuted instantiation: iommu.c:__map_domain_page_global
Unexecuted instantiation: io.c:__map_domain_page_global
Unexecuted instantiation: pci.c:__map_domain_page_global
Unexecuted instantiation: quirks.c:__map_domain_page_global
Unexecuted instantiation: vtd.c:__map_domain_page_global
Unexecuted instantiation: iommu_init.c:__map_domain_page_global
Unexecuted instantiation: iommu_map.c:__map_domain_page_global
Unexecuted instantiation: pci_amd_iommu.c:__map_domain_page_global
Unexecuted instantiation: iommu_intr.c:__map_domain_page_global
Unexecuted instantiation: iommu_cmd.c:__map_domain_page_global
Unexecuted instantiation: iommu_guest.c:__map_domain_page_global
Unexecuted instantiation: osl.c:__map_domain_page_global
Unexecuted instantiation: pmstat.c:__map_domain_page_global
Unexecuted instantiation: xsm_core.c:__map_domain_page_global
Unexecuted instantiation: cpuid.c:__map_domain_page_global
Unexecuted instantiation: compat.c:__map_domain_page_global
Unexecuted instantiation: crash.c:__map_domain_page_global
Unexecuted instantiation: debug.c:__map_domain_page_global
Unexecuted instantiation: domain_page.c:__map_domain_page_global
Unexecuted instantiation: extable.c:__map_domain_page_global
Unexecuted instantiation: hypercall.c:__map_domain_page_global
Unexecuted instantiation: i387.c:__map_domain_page_global
Unexecuted instantiation: msi.c:__map_domain_page_global
Unexecuted instantiation: machine_kexec.c:__map_domain_page_global
Unexecuted instantiation: microcode.c:__map_domain_page_global
Unexecuted instantiation: mm.c:__map_domain_page_global
Unexecuted instantiation: physdev.c:__map_domain_page_global
Unexecuted instantiation: platform_hypercall.c:__map_domain_page_global
Unexecuted instantiation: setup.c:__map_domain_page_global
Unexecuted instantiation: smp.c:__map_domain_page_global
Unexecuted instantiation: smpboot.c:__map_domain_page_global
Unexecuted instantiation: time.c:__map_domain_page_global
Unexecuted instantiation: traps.c:__map_domain_page_global
Unexecuted instantiation: x86_emulate.c:__map_domain_page_global
Unexecuted instantiation: tboot.c:__map_domain_page_global
Unexecuted instantiation: xstate.c:__map_domain_page_global
Unexecuted instantiation: suspend.c:__map_domain_page_global
Unexecuted instantiation: cpu_idle.c:__map_domain_page_global
Unexecuted instantiation: amd.c:__map_domain_page_global
Unexecuted instantiation: intel.c:__map_domain_page_global
Unexecuted instantiation: vpmu.c:__map_domain_page_global
Unexecuted instantiation: vpmu_intel.c:__map_domain_page_global
Unexecuted instantiation: mce.c:__map_domain_page_global
Unexecuted instantiation: mce_intel.c:__map_domain_page_global
Unexecuted instantiation: vmce.c:__map_domain_page_global
Unexecuted instantiation: dm.c:__map_domain_page_global
Unexecuted instantiation: emulate.c:__map_domain_page_global
Unexecuted instantiation: hpet.c:__map_domain_page_global
Unexecuted instantiation: hvm.c:__map_domain_page_global
Unexecuted instantiation: i8254.c:__map_domain_page_global
Unexecuted instantiation: intercept.c:__map_domain_page_global
Unexecuted instantiation: ioreq.c:__map_domain_page_global
Unexecuted instantiation: irq.c:__map_domain_page_global
Unexecuted instantiation: monitor.c:__map_domain_page_global
Unexecuted instantiation: mtrr.c:__map_domain_page_global
Unexecuted instantiation: nestedhvm.c:__map_domain_page_global
Unexecuted instantiation: pmtimer.c:__map_domain_page_global
Unexecuted instantiation: rtc.c:__map_domain_page_global
Unexecuted instantiation: save.c:__map_domain_page_global
Unexecuted instantiation: stdvga.c:__map_domain_page_global
Unexecuted instantiation: vioapic.c:__map_domain_page_global
Unexecuted instantiation: viridian.c:__map_domain_page_global
vlapic.c:__map_domain_page_global
Line
Count
Source
50
12
{
51
12
    return map_domain_page_global(_mfn(__page_to_mfn(pg)));
52
12
}
Unexecuted instantiation: vmsi.c:__map_domain_page_global
Unexecuted instantiation: vpic.c:__map_domain_page_global
Unexecuted instantiation: vpt.c:__map_domain_page_global
Unexecuted instantiation: intr.c:__map_domain_page_global
Unexecuted instantiation: nestedsvm.c:__map_domain_page_global
Unexecuted instantiation: svm.c:__map_domain_page_global
Unexecuted instantiation: vmcb.c:__map_domain_page_global
Unexecuted instantiation: realmode.c:__map_domain_page_global
Unexecuted instantiation: vmcs.c:__map_domain_page_global
Unexecuted instantiation: vmx.c:__map_domain_page_global
Unexecuted instantiation: vvmx.c:__map_domain_page_global
Unexecuted instantiation: paging.c:__map_domain_page_global
Unexecuted instantiation: p2m.c:__map_domain_page_global
Unexecuted instantiation: p2m-pt.c:__map_domain_page_global
Unexecuted instantiation: p2m-ept.c:__map_domain_page_global
Unexecuted instantiation: p2m-pod.c:__map_domain_page_global
Unexecuted instantiation: altp2m.c:__map_domain_page_global
Unexecuted instantiation: guest_walk.c:__map_domain_page_global
Unexecuted instantiation: mem_paging.c:__map_domain_page_global
Unexecuted instantiation: mem_sharing.c:__map_domain_page_global
Unexecuted instantiation: common.c:__map_domain_page_global
Unexecuted instantiation: multi.c:__map_domain_page_global
Unexecuted instantiation: hap.c:__map_domain_page_global
Unexecuted instantiation: nested_hap.c:__map_domain_page_global
Unexecuted instantiation: nested_ept.c:__map_domain_page_global
Unexecuted instantiation: op_model_athlon.c:__map_domain_page_global
Unexecuted instantiation: backtrace.c:__map_domain_page_global
Unexecuted instantiation: callback.c:__map_domain_page_global
Unexecuted instantiation: descriptor-tables.c:__map_domain_page_global
Unexecuted instantiation: emul-gate-op.c:__map_domain_page_global
Unexecuted instantiation: emul-inv-op.c:__map_domain_page_global
Unexecuted instantiation: emul-priv-op.c:__map_domain_page_global
Unexecuted instantiation: iret.c:__map_domain_page_global
Unexecuted instantiation: misc-hypercalls.c:__map_domain_page_global
Unexecuted instantiation: ro-page-fault.c:__map_domain_page_global
53
54
#else /* !CONFIG_DOMAIN_PAGE */
55
56
#define map_domain_page(mfn)                __mfn_to_virt(mfn_x(mfn))
57
#define __map_domain_page(pg)               page_to_virt(pg)
58
#define unmap_domain_page(va)               ((void)(va))
59
#define domain_page_map_to_mfn(va)          virt_to_mfn((unsigned long)(va))
60
61
static inline void *map_domain_page_global(mfn_t mfn)
62
{
63
    return mfn_to_virt(mfn_x(mfn));
64
}
65
66
static inline void *__map_domain_page_global(const struct page_info *pg)
67
{
68
    return page_to_virt(pg);
69
}
70
71
static inline void unmap_domain_page_global(const void *va) {};
72
73
#endif /* !CONFIG_DOMAIN_PAGE */
74
75
#endif /* __XEN_DOMAIN_PAGE_H__ */