/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__ */ |