/root/src/xen/xen/include/asm/mem_access.h
Line | Count | Source (jump to first uncovered line) |
1 | | /****************************************************************************** |
2 | | * include/asm-x86/mem_access.h |
3 | | * |
4 | | * Memory access support. |
5 | | * |
6 | | * Copyright (c) 2011 GridCentric Inc. (Andres Lagar-Cavilla) |
7 | | * Copyright (c) 2007 Advanced Micro Devices (Wei Huang) |
8 | | * Parts of this code are Copyright (c) 2006-2007 by XenSource Inc. |
9 | | * Parts of this code are Copyright (c) 2006 by Michael A Fetterman |
10 | | * Parts based on earlier work by Michael A Fetterman, Ian Pratt et al. |
11 | | * |
12 | | * This program is free software; you can redistribute it and/or modify |
13 | | * it under the terms of the GNU General Public License as published by |
14 | | * the Free Software Foundation; either version 2 of the License, or |
15 | | * (at your option) any later version. |
16 | | * |
17 | | * This program is distributed in the hope that it will be useful, |
18 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
20 | | * GNU General Public License for more details. |
21 | | * |
22 | | * You should have received a copy of the GNU General Public License |
23 | | * along with this program; If not, see <http://www.gnu.org/licenses/>. |
24 | | */ |
25 | | |
26 | | #ifndef __ASM_X86_MEM_ACCESS_H__ |
27 | | #define __ASM_X86_MEM_ACCESS_H__ |
28 | | |
29 | | /* |
30 | | * Setup vm_event request based on the access (gla is -1ull if not available). |
31 | | * Handles the rw2rx conversion. Boolean return value indicates if event type |
32 | | * is syncronous (aka. requires vCPU pause). If the req_ptr has been populated, |
33 | | * then the caller should use monitor_traps to send the event on the MONITOR |
34 | | * ring. Once having released get_gfn* locks caller must also xfree the |
35 | | * request. |
36 | | */ |
37 | | bool p2m_mem_access_check(paddr_t gpa, unsigned long gla, |
38 | | struct npfec npfec, |
39 | | vm_event_request_t **req_ptr); |
40 | | |
41 | | /* Check for emulation and mark vcpu for skipping one instruction |
42 | | * upon rescheduling if required. */ |
43 | | bool p2m_mem_access_emulate_check(struct vcpu *v, |
44 | | const vm_event_response_t *rsp); |
45 | | |
46 | | /* Sanity check for mem_access hardware support */ |
47 | | static inline bool p2m_mem_access_sanity_check(struct domain *d) |
48 | 0 | { |
49 | 0 | return is_hvm_domain(d) && cpu_has_vmx && hap_enabled(d); |
50 | 0 | } Unexecuted instantiation: domctl.c:p2m_mem_access_sanity_check Unexecuted instantiation: domain.c:p2m_mem_access_sanity_check Unexecuted instantiation: event_channel.c:p2m_mem_access_sanity_check Unexecuted instantiation: event_fifo.c:p2m_mem_access_sanity_check Unexecuted instantiation: grant_table.c:p2m_mem_access_sanity_check Unexecuted instantiation: guestcopy.c:p2m_mem_access_sanity_check Unexecuted instantiation: kernel.c:p2m_mem_access_sanity_check Unexecuted instantiation: kexec.c:p2m_mem_access_sanity_check Unexecuted instantiation: kimage.c:p2m_mem_access_sanity_check Unexecuted instantiation: mem_access.c:p2m_mem_access_sanity_check Unexecuted instantiation: memory.c:p2m_mem_access_sanity_check Unexecuted instantiation: multicall.c:p2m_mem_access_sanity_check Unexecuted instantiation: page_alloc.c:p2m_mem_access_sanity_check Unexecuted instantiation: sched_arinc653.c:p2m_mem_access_sanity_check Unexecuted instantiation: sched_rt.c:p2m_mem_access_sanity_check Unexecuted instantiation: schedule.c:p2m_mem_access_sanity_check Unexecuted instantiation: spinlock.c:p2m_mem_access_sanity_check Unexecuted instantiation: symbols.c:p2m_mem_access_sanity_check Unexecuted instantiation: sysctl.c:p2m_mem_access_sanity_check Unexecuted instantiation: vm_event.c:p2m_mem_access_sanity_check Unexecuted instantiation: xenoprof.c:p2m_mem_access_sanity_check Unexecuted instantiation: tmem.c:p2m_mem_access_sanity_check Unexecuted instantiation: tmem_xen.c:p2m_mem_access_sanity_check Unexecuted instantiation: tmem_control.c:p2m_mem_access_sanity_check Unexecuted instantiation: llvm.c:p2m_mem_access_sanity_check Unexecuted instantiation: libelf-loader.c:p2m_mem_access_sanity_check Unexecuted instantiation: console.c:p2m_mem_access_sanity_check Unexecuted instantiation: cpufreq.c:p2m_mem_access_sanity_check Unexecuted instantiation: iommu.c:p2m_mem_access_sanity_check Unexecuted instantiation: io.c:p2m_mem_access_sanity_check Unexecuted instantiation: pci.c:p2m_mem_access_sanity_check Unexecuted instantiation: iommu_map.c:p2m_mem_access_sanity_check Unexecuted instantiation: pci_amd_iommu.c:p2m_mem_access_sanity_check Unexecuted instantiation: iommu_guest.c:p2m_mem_access_sanity_check Unexecuted instantiation: pmstat.c:p2m_mem_access_sanity_check Unexecuted instantiation: compat.c:p2m_mem_access_sanity_check Unexecuted instantiation: crash.c:p2m_mem_access_sanity_check Unexecuted instantiation: debug.c:p2m_mem_access_sanity_check Unexecuted instantiation: i387.c:p2m_mem_access_sanity_check Unexecuted instantiation: msi.c:p2m_mem_access_sanity_check Unexecuted instantiation: machine_kexec.c:p2m_mem_access_sanity_check Unexecuted instantiation: microcode.c:p2m_mem_access_sanity_check Unexecuted instantiation: mm.c:p2m_mem_access_sanity_check Unexecuted instantiation: physdev.c:p2m_mem_access_sanity_check Unexecuted instantiation: platform_hypercall.c:p2m_mem_access_sanity_check Unexecuted instantiation: setup.c:p2m_mem_access_sanity_check Unexecuted instantiation: smp.c:p2m_mem_access_sanity_check Unexecuted instantiation: time.c:p2m_mem_access_sanity_check Unexecuted instantiation: traps.c:p2m_mem_access_sanity_check Unexecuted instantiation: xstate.c:p2m_mem_access_sanity_check Unexecuted instantiation: suspend.c:p2m_mem_access_sanity_check Unexecuted instantiation: cpu_idle.c:p2m_mem_access_sanity_check Unexecuted instantiation: amd.c:p2m_mem_access_sanity_check Unexecuted instantiation: intel.c:p2m_mem_access_sanity_check Unexecuted instantiation: vpmu.c:p2m_mem_access_sanity_check Unexecuted instantiation: vpmu_intel.c:p2m_mem_access_sanity_check Unexecuted instantiation: mce.c:p2m_mem_access_sanity_check Unexecuted instantiation: mce_intel.c:p2m_mem_access_sanity_check Unexecuted instantiation: vmce.c:p2m_mem_access_sanity_check Unexecuted instantiation: dm.c:p2m_mem_access_sanity_check Unexecuted instantiation: emulate.c:p2m_mem_access_sanity_check Unexecuted instantiation: hpet.c:p2m_mem_access_sanity_check Unexecuted instantiation: hvm.c:p2m_mem_access_sanity_check Unexecuted instantiation: hypercall.c:p2m_mem_access_sanity_check Unexecuted instantiation: i8254.c:p2m_mem_access_sanity_check Unexecuted instantiation: intercept.c:p2m_mem_access_sanity_check Unexecuted instantiation: ioreq.c:p2m_mem_access_sanity_check Unexecuted instantiation: irq.c:p2m_mem_access_sanity_check Unexecuted instantiation: mtrr.c:p2m_mem_access_sanity_check Unexecuted instantiation: nestedhvm.c:p2m_mem_access_sanity_check Unexecuted instantiation: pmtimer.c:p2m_mem_access_sanity_check Unexecuted instantiation: quirks.c:p2m_mem_access_sanity_check Unexecuted instantiation: rtc.c:p2m_mem_access_sanity_check Unexecuted instantiation: save.c:p2m_mem_access_sanity_check Unexecuted instantiation: stdvga.c:p2m_mem_access_sanity_check Unexecuted instantiation: vioapic.c:p2m_mem_access_sanity_check Unexecuted instantiation: viridian.c:p2m_mem_access_sanity_check Unexecuted instantiation: vlapic.c:p2m_mem_access_sanity_check Unexecuted instantiation: vmsi.c:p2m_mem_access_sanity_check Unexecuted instantiation: vpic.c:p2m_mem_access_sanity_check Unexecuted instantiation: vpt.c:p2m_mem_access_sanity_check Unexecuted instantiation: intr.c:p2m_mem_access_sanity_check Unexecuted instantiation: nestedsvm.c:p2m_mem_access_sanity_check Unexecuted instantiation: svm.c:p2m_mem_access_sanity_check Unexecuted instantiation: vmcb.c:p2m_mem_access_sanity_check Unexecuted instantiation: realmode.c:p2m_mem_access_sanity_check Unexecuted instantiation: vmcs.c:p2m_mem_access_sanity_check Unexecuted instantiation: vmx.c:p2m_mem_access_sanity_check Unexecuted instantiation: vvmx.c:p2m_mem_access_sanity_check Unexecuted instantiation: paging.c:p2m_mem_access_sanity_check Unexecuted instantiation: p2m.c:p2m_mem_access_sanity_check Unexecuted instantiation: p2m-pt.c:p2m_mem_access_sanity_check Unexecuted instantiation: p2m-ept.c:p2m_mem_access_sanity_check Unexecuted instantiation: p2m-pod.c:p2m_mem_access_sanity_check Unexecuted instantiation: altp2m.c:p2m_mem_access_sanity_check Unexecuted instantiation: guest_walk.c:p2m_mem_access_sanity_check Unexecuted instantiation: mem_paging.c:p2m_mem_access_sanity_check Unexecuted instantiation: mem_sharing.c:p2m_mem_access_sanity_check Unexecuted instantiation: common.c:p2m_mem_access_sanity_check Unexecuted instantiation: multi.c:p2m_mem_access_sanity_check Unexecuted instantiation: hap.c:p2m_mem_access_sanity_check Unexecuted instantiation: nested_hap.c:p2m_mem_access_sanity_check Unexecuted instantiation: nested_ept.c:p2m_mem_access_sanity_check Unexecuted instantiation: op_model_athlon.c:p2m_mem_access_sanity_check Unexecuted instantiation: backtrace.c:p2m_mem_access_sanity_check Unexecuted instantiation: callback.c:p2m_mem_access_sanity_check Unexecuted instantiation: descriptor-tables.c:p2m_mem_access_sanity_check Unexecuted instantiation: emul-gate-op.c:p2m_mem_access_sanity_check Unexecuted instantiation: emul-inv-op.c:p2m_mem_access_sanity_check Unexecuted instantiation: emul-priv-op.c:p2m_mem_access_sanity_check Unexecuted instantiation: iret.c:p2m_mem_access_sanity_check Unexecuted instantiation: ro-page-fault.c:p2m_mem_access_sanity_check |
51 | | |
52 | | #endif /*__ASM_X86_MEM_ACCESS_H__ */ |
53 | | |
54 | | /* |
55 | | * Local variables: |
56 | | * mode: C |
57 | | * c-file-style: "BSD" |
58 | | * c-basic-offset: 4 |
59 | | * indent-tabs-mode: nil |
60 | | * End: |
61 | | */ |