Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/iommu.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * This program is free software; you can redistribute it and/or modify it
3
 * under the terms and conditions of the GNU General Public License,
4
 * version 2, as published by the Free Software Foundation.
5
 *
6
 * This program is distributed in the hope it will be useful, but WITHOUT
7
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
8
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
9
 * more details.
10
 *
11
 * You should have received a copy of the GNU General Public License along with
12
 * this program; If not, see <http://www.gnu.org/licenses/>.
13
*/
14
#ifndef __ARCH_X86_IOMMU_H__
15
#define __ARCH_X86_IOMMU_H__
16
17
#include <xen/errno.h>
18
#include <xen/list.h>
19
#include <xen/spinlock.h>
20
#include <asm/processor.h>
21
#include <asm/hvm/vmx/vmcs.h>
22
23
#define DEFAULT_DOMAIN_ADDRESS_WIDTH 48
24
1
#define MAX_IOMMUS 32
25
26
struct g2m_ioport {
27
    struct list_head list;
28
    unsigned int gport;
29
    unsigned int mport;
30
    unsigned int np;
31
};
32
33
struct arch_iommu
34
{
35
    u64 pgd_maddr;                 /* io page directory machine address */
36
    spinlock_t mapping_lock;            /* io page table lock */
37
    int agaw;     /* adjusted guest address width, 0 is level 2 30-bit */
38
    u64 iommu_bitmap;              /* bitmap of iommu(s) that the domain uses */
39
    struct list_head mapped_rmrrs;
40
41
    /* amd iommu support */
42
    int paging_mode;
43
    struct page_info *root_table;
44
    struct guest_iommu *g_iommu;
45
};
46
47
extern const struct iommu_ops intel_iommu_ops;
48
extern const struct iommu_ops amd_iommu_ops;
49
int intel_vtd_setup(void);
50
int amd_iov_detect(void);
51
52
static inline const struct iommu_ops *iommu_get_ops(void)
53
442
{
54
442
    switch ( boot_cpu_data.x86_vendor )
55
442
    {
56
442
    case X86_VENDOR_INTEL:
57
442
        return &intel_iommu_ops;
58
0
    case X86_VENDOR_AMD:
59
0
        return &amd_iommu_ops;
60
442
    }
61
442
62
0
    BUG();
63
0
64
0
    return NULL;
65
442
}
Unexecuted instantiation: cpu.c:iommu_get_ops
Unexecuted instantiation: acpi_mmcfg.c:iommu_get_ops
Unexecuted instantiation: ro-page-fault.c:iommu_get_ops
Unexecuted instantiation: misc-hypercalls.c:iommu_get_ops
Unexecuted instantiation: iret.c:iommu_get_ops
Unexecuted instantiation: emul-priv-op.c:iommu_get_ops
Unexecuted instantiation: emul-inv-op.c:iommu_get_ops
Unexecuted instantiation: emul-gate-op.c:iommu_get_ops
Unexecuted instantiation: descriptor-tables.c:iommu_get_ops
Unexecuted instantiation: callback.c:iommu_get_ops
Unexecuted instantiation: backtrace.c:iommu_get_ops
Unexecuted instantiation: op_model_athlon.c:iommu_get_ops
Unexecuted instantiation: op_model_ppro.c:iommu_get_ops
Unexecuted instantiation: op_model_p4.c:iommu_get_ops
Unexecuted instantiation: nmi_int.c:iommu_get_ops
Unexecuted instantiation: nested_ept.c:iommu_get_ops
Unexecuted instantiation: nested_hap.c:iommu_get_ops
Unexecuted instantiation: hap.c:iommu_get_ops
Unexecuted instantiation: multi.c:iommu_get_ops
Unexecuted instantiation: mem_sharing.c:iommu_get_ops
Unexecuted instantiation: mem_paging.c:iommu_get_ops
Unexecuted instantiation: guest_walk.c:iommu_get_ops
Unexecuted instantiation: altp2m.c:iommu_get_ops
Unexecuted instantiation: p2m-pod.c:iommu_get_ops
Unexecuted instantiation: p2m-ept.c:iommu_get_ops
Unexecuted instantiation: p2m-pt.c:iommu_get_ops
Unexecuted instantiation: p2m.c:iommu_get_ops
Unexecuted instantiation: paging.c:iommu_get_ops
Unexecuted instantiation: vvmx.c:iommu_get_ops
Unexecuted instantiation: vmx.c:iommu_get_ops
Unexecuted instantiation: vmcs.c:iommu_get_ops
Unexecuted instantiation: realmode.c:iommu_get_ops
Unexecuted instantiation: vmcb.c:iommu_get_ops
Unexecuted instantiation: svmdebug.c:iommu_get_ops
Unexecuted instantiation: svm.c:iommu_get_ops
Unexecuted instantiation: nestedsvm.c:iommu_get_ops
Unexecuted instantiation: intr.c:iommu_get_ops
Unexecuted instantiation: vpt.c:iommu_get_ops
Unexecuted instantiation: vpic.c:iommu_get_ops
Unexecuted instantiation: vmsi.c:iommu_get_ops
Unexecuted instantiation: vlapic.c:iommu_get_ops
Unexecuted instantiation: viridian.c:iommu_get_ops
Unexecuted instantiation: vioapic.c:iommu_get_ops
Unexecuted instantiation: stdvga.c:iommu_get_ops
Unexecuted instantiation: save.c:iommu_get_ops
Unexecuted instantiation: rtc.c:iommu_get_ops
Unexecuted instantiation: pmtimer.c:iommu_get_ops
Unexecuted instantiation: nestedhvm.c:iommu_get_ops
Unexecuted instantiation: mtrr.c:iommu_get_ops
Unexecuted instantiation: ioreq.c:iommu_get_ops
Unexecuted instantiation: intercept.c:iommu_get_ops
Unexecuted instantiation: i8254.c:iommu_get_ops
Unexecuted instantiation: hvm.c:iommu_get_ops
Unexecuted instantiation: emulate.c:iommu_get_ops
Unexecuted instantiation: dm.c:iommu_get_ops
Unexecuted instantiation: asid.c:iommu_get_ops
Unexecuted instantiation: probe.c:iommu_get_ops
Unexecuted instantiation: delivery.c:iommu_get_ops
Unexecuted instantiation: default.c:iommu_get_ops
Unexecuted instantiation: x2apic.c:iommu_get_ops
Unexecuted instantiation: bigsmp.c:iommu_get_ops
Unexecuted instantiation: vmce.c:iommu_get_ops
Unexecuted instantiation: util.c:iommu_get_ops
Unexecuted instantiation: non-fatal.c:iommu_get_ops
Unexecuted instantiation: mce_intel.c:iommu_get_ops
Unexecuted instantiation: mce-apei.c:iommu_get_ops
Unexecuted instantiation: mce.c:iommu_get_ops
Unexecuted instantiation: mctelem.c:iommu_get_ops
Unexecuted instantiation: barrier.c:iommu_get_ops
Unexecuted instantiation: mcaction.c:iommu_get_ops
Unexecuted instantiation: mce_amd.c:iommu_get_ops
Unexecuted instantiation: amd_nonfatal.c:iommu_get_ops
Unexecuted instantiation: vpmu_intel.c:iommu_get_ops
Unexecuted instantiation: vpmu_amd.c:iommu_get_ops
Unexecuted instantiation: vpmu.c:iommu_get_ops
Unexecuted instantiation: mwait-idle.c:iommu_get_ops
Unexecuted instantiation: intel.c:iommu_get_ops
Unexecuted instantiation: common.c:iommu_get_ops
Unexecuted instantiation: amd.c:iommu_get_ops
Unexecuted instantiation: cpu_idle.c:iommu_get_ops
Unexecuted instantiation: suspend.c:iommu_get_ops
Unexecuted instantiation: power.c:iommu_get_ops
Unexecuted instantiation: lib.c:iommu_get_ops
Unexecuted instantiation: xstate.c:iommu_get_ops
Unexecuted instantiation: hpet.c:iommu_get_ops
Unexecuted instantiation: tboot.c:iommu_get_ops
Unexecuted instantiation: x86_emulate.c:iommu_get_ops
Unexecuted instantiation: usercopy.c:iommu_get_ops
Unexecuted instantiation: traps.c:iommu_get_ops
Unexecuted instantiation: smpboot.c:iommu_get_ops
Unexecuted instantiation: smp.c:iommu_get_ops
Unexecuted instantiation: setup.c:iommu_get_ops
Unexecuted instantiation: psr.c:iommu_get_ops
Unexecuted instantiation: platform_hypercall.c:iommu_get_ops
Unexecuted instantiation: physdev.c:iommu_get_ops
Unexecuted instantiation: numa.c:iommu_get_ops
Unexecuted instantiation: nmi.c:iommu_get_ops
Unexecuted instantiation: mpparse.c:iommu_get_ops
Unexecuted instantiation: mm.c:iommu_get_ops
Unexecuted instantiation: microcode.c:iommu_get_ops
Unexecuted instantiation: microcode_intel.c:iommu_get_ops
Unexecuted instantiation: microcode_amd.c:iommu_get_ops
Unexecuted instantiation: machine_kexec.c:iommu_get_ops
Unexecuted instantiation: irq.c:iommu_get_ops
Unexecuted instantiation: ioport_emulate.c:iommu_get_ops
Unexecuted instantiation: msr.c:iommu_get_ops
Unexecuted instantiation: io_apic.c:iommu_get_ops
Unexecuted instantiation: i8259.c:iommu_get_ops
Unexecuted instantiation: i387.c:iommu_get_ops
Unexecuted instantiation: hypercall.c:iommu_get_ops
Unexecuted instantiation: flushtlb.c:iommu_get_ops
Unexecuted instantiation: domain_page.c:iommu_get_ops
Unexecuted instantiation: debug.c:iommu_get_ops
Unexecuted instantiation: crash.c:iommu_get_ops
Unexecuted instantiation: compat.c:iommu_get_ops
Unexecuted instantiation: cpuid.c:iommu_get_ops
Unexecuted instantiation: apic.c:iommu_get_ops
Unexecuted instantiation: xsm_core.c:iommu_get_ops
Unexecuted instantiation: apei-io.c:iommu_get_ops
Unexecuted instantiation: erst.c:iommu_get_ops
Unexecuted instantiation: pmstat.c:iommu_get_ops
Unexecuted instantiation: iommu_guest.c:iommu_get_ops
Unexecuted instantiation: iommu_cmd.c:iommu_get_ops
Unexecuted instantiation: iommu_intr.c:iommu_get_ops
Unexecuted instantiation: pci_amd_iommu.c:iommu_get_ops
Unexecuted instantiation: iommu_map.c:iommu_get_ops
Unexecuted instantiation: iommu_init.c:iommu_get_ops
Unexecuted instantiation: ats.c:iommu_get_ops
Unexecuted instantiation: vtd.c:iommu_get_ops
Unexecuted instantiation: quirks.c:iommu_get_ops
Unexecuted instantiation: intremap.c:iommu_get_ops
Unexecuted instantiation: qinval.c:iommu_get_ops
Unexecuted instantiation: utils.c:iommu_get_ops
Unexecuted instantiation: dmar.c:iommu_get_ops
pci.c:iommu_get_ops
Line
Count
Source
53
126
{
54
126
    switch ( boot_cpu_data.x86_vendor )
55
126
    {
56
126
    case X86_VENDOR_INTEL:
57
126
        return &intel_iommu_ops;
58
0
    case X86_VENDOR_AMD:
59
0
        return &amd_iommu_ops;
60
126
    }
61
126
62
0
    BUG();
63
0
64
0
    return NULL;
65
126
}
Unexecuted instantiation: io.c:iommu_get_ops
iommu.c:iommu_get_ops
Line
Count
Source
53
316
{
54
316
    switch ( boot_cpu_data.x86_vendor )
55
316
    {
56
316
    case X86_VENDOR_INTEL:
57
316
        return &intel_iommu_ops;
58
0
    case X86_VENDOR_AMD:
59
0
        return &amd_iommu_ops;
60
316
    }
61
316
62
0
    BUG();
63
0
64
0
    return NULL;
65
316
}
Unexecuted instantiation: msix.c:iommu_get_ops
Unexecuted instantiation: msi.c:iommu_get_ops
Unexecuted instantiation: header.c:iommu_get_ops
Unexecuted instantiation: vpci.c:iommu_get_ops
Unexecuted instantiation: utility.c:iommu_get_ops
Unexecuted instantiation: cpufreq_misc_governors.c:iommu_get_ops
Unexecuted instantiation: cpufreq_ondemand.c:iommu_get_ops
Unexecuted instantiation: cpufreq.c:iommu_get_ops
Unexecuted instantiation: ehci-dbgp.c:iommu_get_ops
Unexecuted instantiation: ns16550.c:iommu_get_ops
Unexecuted instantiation: console.c:iommu_get_ops
Unexecuted instantiation: libelf-loader.c:iommu_get_ops
Unexecuted instantiation: llvm.c:iommu_get_ops
Unexecuted instantiation: tmem_control.c:iommu_get_ops
Unexecuted instantiation: tmem_xen.c:iommu_get_ops
Unexecuted instantiation: tmem.c:iommu_get_ops
Unexecuted instantiation: xenoprof.c:iommu_get_ops
Unexecuted instantiation: wait.c:iommu_get_ops
Unexecuted instantiation: vsprintf.c:iommu_get_ops
Unexecuted instantiation: vm_event.c:iommu_get_ops
Unexecuted instantiation: trace.c:iommu_get_ops
Unexecuted instantiation: timer.c:iommu_get_ops
Unexecuted instantiation: time.c:iommu_get_ops
Unexecuted instantiation: tasklet.c:iommu_get_ops
Unexecuted instantiation: sysctl.c:iommu_get_ops
Unexecuted instantiation: symbols.c:iommu_get_ops
Unexecuted instantiation: stop_machine.c:iommu_get_ops
Unexecuted instantiation: spinlock.c:iommu_get_ops
Unexecuted instantiation: softirq.c:iommu_get_ops
Unexecuted instantiation: shutdown.c:iommu_get_ops
Unexecuted instantiation: schedule.c:iommu_get_ops
Unexecuted instantiation: sched_null.c:iommu_get_ops
Unexecuted instantiation: sched_rt.c:iommu_get_ops
Unexecuted instantiation: sched_credit2.c:iommu_get_ops
Unexecuted instantiation: sched_credit.c:iommu_get_ops
Unexecuted instantiation: sched_arinc653.c:iommu_get_ops
Unexecuted instantiation: rcupdate.c:iommu_get_ops
Unexecuted instantiation: rangeset.c:iommu_get_ops
Unexecuted instantiation: page_alloc.c:iommu_get_ops
Unexecuted instantiation: multicall.c:iommu_get_ops
Unexecuted instantiation: monitor.c:iommu_get_ops
Unexecuted instantiation: memory.c:iommu_get_ops
Unexecuted instantiation: mem_access.c:iommu_get_ops
Unexecuted instantiation: kimage.c:iommu_get_ops
Unexecuted instantiation: kexec.c:iommu_get_ops
Unexecuted instantiation: keyhandler.c:iommu_get_ops
Unexecuted instantiation: kernel.c:iommu_get_ops
Unexecuted instantiation: guestcopy.c:iommu_get_ops
Unexecuted instantiation: grant_table.c:iommu_get_ops
Unexecuted instantiation: event_fifo.c:iommu_get_ops
Unexecuted instantiation: event_channel.c:iommu_get_ops
Unexecuted instantiation: event_2l.c:iommu_get_ops
Unexecuted instantiation: domain.c:iommu_get_ops
Unexecuted instantiation: domctl.c:iommu_get_ops
Unexecuted instantiation: cpupool.c:iommu_get_ops
Unexecuted instantiation: mmconfig_64.c:iommu_get_ops
66
67
static inline int iommu_hardware_setup(void)
68
1
{
69
1
    switch ( boot_cpu_data.x86_vendor )
70
1
    {
71
1
    case X86_VENDOR_INTEL:
72
1
        return intel_vtd_setup();
73
0
    case X86_VENDOR_AMD:
74
0
        return amd_iov_detect();
75
1
    }
76
1
77
0
    return -ENODEV;
78
1
}
Unexecuted instantiation: mmconfig_64.c:iommu_hardware_setup
Unexecuted instantiation: acpi_mmcfg.c:iommu_hardware_setup
Unexecuted instantiation: ro-page-fault.c:iommu_hardware_setup
Unexecuted instantiation: misc-hypercalls.c:iommu_hardware_setup
Unexecuted instantiation: iret.c:iommu_hardware_setup
Unexecuted instantiation: emul-priv-op.c:iommu_hardware_setup
Unexecuted instantiation: emul-inv-op.c:iommu_hardware_setup
Unexecuted instantiation: emul-gate-op.c:iommu_hardware_setup
Unexecuted instantiation: descriptor-tables.c:iommu_hardware_setup
Unexecuted instantiation: callback.c:iommu_hardware_setup
Unexecuted instantiation: backtrace.c:iommu_hardware_setup
Unexecuted instantiation: op_model_athlon.c:iommu_hardware_setup
Unexecuted instantiation: op_model_ppro.c:iommu_hardware_setup
Unexecuted instantiation: op_model_p4.c:iommu_hardware_setup
Unexecuted instantiation: nmi_int.c:iommu_hardware_setup
Unexecuted instantiation: nested_ept.c:iommu_hardware_setup
Unexecuted instantiation: nested_hap.c:iommu_hardware_setup
Unexecuted instantiation: hap.c:iommu_hardware_setup
Unexecuted instantiation: multi.c:iommu_hardware_setup
Unexecuted instantiation: mem_sharing.c:iommu_hardware_setup
Unexecuted instantiation: mem_paging.c:iommu_hardware_setup
Unexecuted instantiation: guest_walk.c:iommu_hardware_setup
Unexecuted instantiation: altp2m.c:iommu_hardware_setup
Unexecuted instantiation: p2m-pod.c:iommu_hardware_setup
Unexecuted instantiation: p2m-ept.c:iommu_hardware_setup
Unexecuted instantiation: p2m-pt.c:iommu_hardware_setup
Unexecuted instantiation: p2m.c:iommu_hardware_setup
Unexecuted instantiation: paging.c:iommu_hardware_setup
Unexecuted instantiation: vvmx.c:iommu_hardware_setup
Unexecuted instantiation: vmx.c:iommu_hardware_setup
Unexecuted instantiation: vmcs.c:iommu_hardware_setup
Unexecuted instantiation: realmode.c:iommu_hardware_setup
Unexecuted instantiation: vmcb.c:iommu_hardware_setup
Unexecuted instantiation: svmdebug.c:iommu_hardware_setup
Unexecuted instantiation: svm.c:iommu_hardware_setup
Unexecuted instantiation: nestedsvm.c:iommu_hardware_setup
Unexecuted instantiation: intr.c:iommu_hardware_setup
Unexecuted instantiation: vpt.c:iommu_hardware_setup
Unexecuted instantiation: vpic.c:iommu_hardware_setup
Unexecuted instantiation: vmsi.c:iommu_hardware_setup
Unexecuted instantiation: vlapic.c:iommu_hardware_setup
Unexecuted instantiation: viridian.c:iommu_hardware_setup
Unexecuted instantiation: vioapic.c:iommu_hardware_setup
Unexecuted instantiation: stdvga.c:iommu_hardware_setup
Unexecuted instantiation: save.c:iommu_hardware_setup
Unexecuted instantiation: rtc.c:iommu_hardware_setup
Unexecuted instantiation: pmtimer.c:iommu_hardware_setup
Unexecuted instantiation: nestedhvm.c:iommu_hardware_setup
Unexecuted instantiation: mtrr.c:iommu_hardware_setup
Unexecuted instantiation: ioreq.c:iommu_hardware_setup
Unexecuted instantiation: intercept.c:iommu_hardware_setup
Unexecuted instantiation: i8254.c:iommu_hardware_setup
Unexecuted instantiation: hvm.c:iommu_hardware_setup
Unexecuted instantiation: emulate.c:iommu_hardware_setup
Unexecuted instantiation: dm.c:iommu_hardware_setup
Unexecuted instantiation: asid.c:iommu_hardware_setup
Unexecuted instantiation: probe.c:iommu_hardware_setup
Unexecuted instantiation: delivery.c:iommu_hardware_setup
Unexecuted instantiation: default.c:iommu_hardware_setup
Unexecuted instantiation: x2apic.c:iommu_hardware_setup
Unexecuted instantiation: bigsmp.c:iommu_hardware_setup
Unexecuted instantiation: vmce.c:iommu_hardware_setup
Unexecuted instantiation: util.c:iommu_hardware_setup
Unexecuted instantiation: non-fatal.c:iommu_hardware_setup
Unexecuted instantiation: mce_intel.c:iommu_hardware_setup
Unexecuted instantiation: mce-apei.c:iommu_hardware_setup
Unexecuted instantiation: mce.c:iommu_hardware_setup
Unexecuted instantiation: mctelem.c:iommu_hardware_setup
Unexecuted instantiation: barrier.c:iommu_hardware_setup
Unexecuted instantiation: mcaction.c:iommu_hardware_setup
Unexecuted instantiation: mce_amd.c:iommu_hardware_setup
Unexecuted instantiation: amd_nonfatal.c:iommu_hardware_setup
Unexecuted instantiation: vpmu_intel.c:iommu_hardware_setup
Unexecuted instantiation: vpmu_amd.c:iommu_hardware_setup
Unexecuted instantiation: vpmu.c:iommu_hardware_setup
Unexecuted instantiation: mwait-idle.c:iommu_hardware_setup
Unexecuted instantiation: intel.c:iommu_hardware_setup
Unexecuted instantiation: common.c:iommu_hardware_setup
Unexecuted instantiation: amd.c:iommu_hardware_setup
Unexecuted instantiation: cpu_idle.c:iommu_hardware_setup
Unexecuted instantiation: suspend.c:iommu_hardware_setup
Unexecuted instantiation: power.c:iommu_hardware_setup
Unexecuted instantiation: lib.c:iommu_hardware_setup
Unexecuted instantiation: xstate.c:iommu_hardware_setup
Unexecuted instantiation: hpet.c:iommu_hardware_setup
Unexecuted instantiation: tboot.c:iommu_hardware_setup
Unexecuted instantiation: x86_emulate.c:iommu_hardware_setup
Unexecuted instantiation: usercopy.c:iommu_hardware_setup
Unexecuted instantiation: traps.c:iommu_hardware_setup
Unexecuted instantiation: smpboot.c:iommu_hardware_setup
Unexecuted instantiation: smp.c:iommu_hardware_setup
Unexecuted instantiation: setup.c:iommu_hardware_setup
Unexecuted instantiation: psr.c:iommu_hardware_setup
Unexecuted instantiation: platform_hypercall.c:iommu_hardware_setup
Unexecuted instantiation: physdev.c:iommu_hardware_setup
Unexecuted instantiation: numa.c:iommu_hardware_setup
Unexecuted instantiation: nmi.c:iommu_hardware_setup
Unexecuted instantiation: mpparse.c:iommu_hardware_setup
Unexecuted instantiation: mm.c:iommu_hardware_setup
Unexecuted instantiation: microcode.c:iommu_hardware_setup
Unexecuted instantiation: microcode_intel.c:iommu_hardware_setup
Unexecuted instantiation: microcode_amd.c:iommu_hardware_setup
Unexecuted instantiation: machine_kexec.c:iommu_hardware_setup
Unexecuted instantiation: irq.c:iommu_hardware_setup
Unexecuted instantiation: ioport_emulate.c:iommu_hardware_setup
Unexecuted instantiation: msr.c:iommu_hardware_setup
Unexecuted instantiation: io_apic.c:iommu_hardware_setup
Unexecuted instantiation: i8259.c:iommu_hardware_setup
Unexecuted instantiation: i387.c:iommu_hardware_setup
Unexecuted instantiation: hypercall.c:iommu_hardware_setup
Unexecuted instantiation: flushtlb.c:iommu_hardware_setup
Unexecuted instantiation: domain_page.c:iommu_hardware_setup
Unexecuted instantiation: debug.c:iommu_hardware_setup
Unexecuted instantiation: crash.c:iommu_hardware_setup
Unexecuted instantiation: compat.c:iommu_hardware_setup
Unexecuted instantiation: cpuid.c:iommu_hardware_setup
Unexecuted instantiation: apic.c:iommu_hardware_setup
Unexecuted instantiation: xsm_core.c:iommu_hardware_setup
Unexecuted instantiation: apei-io.c:iommu_hardware_setup
Unexecuted instantiation: erst.c:iommu_hardware_setup
Unexecuted instantiation: pmstat.c:iommu_hardware_setup
Unexecuted instantiation: iommu_guest.c:iommu_hardware_setup
Unexecuted instantiation: iommu_cmd.c:iommu_hardware_setup
Unexecuted instantiation: iommu_intr.c:iommu_hardware_setup
Unexecuted instantiation: pci_amd_iommu.c:iommu_hardware_setup
Unexecuted instantiation: iommu_map.c:iommu_hardware_setup
Unexecuted instantiation: iommu_init.c:iommu_hardware_setup
Unexecuted instantiation: ats.c:iommu_hardware_setup
Unexecuted instantiation: vtd.c:iommu_hardware_setup
Unexecuted instantiation: quirks.c:iommu_hardware_setup
Unexecuted instantiation: intremap.c:iommu_hardware_setup
Unexecuted instantiation: qinval.c:iommu_hardware_setup
Unexecuted instantiation: utils.c:iommu_hardware_setup
Unexecuted instantiation: dmar.c:iommu_hardware_setup
Unexecuted instantiation: pci.c:iommu_hardware_setup
Unexecuted instantiation: io.c:iommu_hardware_setup
iommu.c:iommu_hardware_setup
Line
Count
Source
68
1
{
69
1
    switch ( boot_cpu_data.x86_vendor )
70
1
    {
71
1
    case X86_VENDOR_INTEL:
72
1
        return intel_vtd_setup();
73
0
    case X86_VENDOR_AMD:
74
0
        return amd_iov_detect();
75
1
    }
76
1
77
0
    return -ENODEV;
78
1
}
Unexecuted instantiation: msix.c:iommu_hardware_setup
Unexecuted instantiation: msi.c:iommu_hardware_setup
Unexecuted instantiation: header.c:iommu_hardware_setup
Unexecuted instantiation: vpci.c:iommu_hardware_setup
Unexecuted instantiation: utility.c:iommu_hardware_setup
Unexecuted instantiation: cpufreq_misc_governors.c:iommu_hardware_setup
Unexecuted instantiation: cpufreq_ondemand.c:iommu_hardware_setup
Unexecuted instantiation: cpufreq.c:iommu_hardware_setup
Unexecuted instantiation: ehci-dbgp.c:iommu_hardware_setup
Unexecuted instantiation: ns16550.c:iommu_hardware_setup
Unexecuted instantiation: console.c:iommu_hardware_setup
Unexecuted instantiation: libelf-loader.c:iommu_hardware_setup
Unexecuted instantiation: llvm.c:iommu_hardware_setup
Unexecuted instantiation: tmem_control.c:iommu_hardware_setup
Unexecuted instantiation: tmem_xen.c:iommu_hardware_setup
Unexecuted instantiation: tmem.c:iommu_hardware_setup
Unexecuted instantiation: xenoprof.c:iommu_hardware_setup
Unexecuted instantiation: wait.c:iommu_hardware_setup
Unexecuted instantiation: vsprintf.c:iommu_hardware_setup
Unexecuted instantiation: vm_event.c:iommu_hardware_setup
Unexecuted instantiation: trace.c:iommu_hardware_setup
Unexecuted instantiation: timer.c:iommu_hardware_setup
Unexecuted instantiation: time.c:iommu_hardware_setup
Unexecuted instantiation: tasklet.c:iommu_hardware_setup
Unexecuted instantiation: sysctl.c:iommu_hardware_setup
Unexecuted instantiation: symbols.c:iommu_hardware_setup
Unexecuted instantiation: stop_machine.c:iommu_hardware_setup
Unexecuted instantiation: spinlock.c:iommu_hardware_setup
Unexecuted instantiation: softirq.c:iommu_hardware_setup
Unexecuted instantiation: shutdown.c:iommu_hardware_setup
Unexecuted instantiation: schedule.c:iommu_hardware_setup
Unexecuted instantiation: sched_null.c:iommu_hardware_setup
Unexecuted instantiation: sched_rt.c:iommu_hardware_setup
Unexecuted instantiation: sched_credit2.c:iommu_hardware_setup
Unexecuted instantiation: sched_credit.c:iommu_hardware_setup
Unexecuted instantiation: sched_arinc653.c:iommu_hardware_setup
Unexecuted instantiation: rcupdate.c:iommu_hardware_setup
Unexecuted instantiation: rangeset.c:iommu_hardware_setup
Unexecuted instantiation: page_alloc.c:iommu_hardware_setup
Unexecuted instantiation: multicall.c:iommu_hardware_setup
Unexecuted instantiation: monitor.c:iommu_hardware_setup
Unexecuted instantiation: memory.c:iommu_hardware_setup
Unexecuted instantiation: mem_access.c:iommu_hardware_setup
Unexecuted instantiation: kimage.c:iommu_hardware_setup
Unexecuted instantiation: kexec.c:iommu_hardware_setup
Unexecuted instantiation: keyhandler.c:iommu_hardware_setup
Unexecuted instantiation: kernel.c:iommu_hardware_setup
Unexecuted instantiation: guestcopy.c:iommu_hardware_setup
Unexecuted instantiation: grant_table.c:iommu_hardware_setup
Unexecuted instantiation: event_fifo.c:iommu_hardware_setup
Unexecuted instantiation: event_channel.c:iommu_hardware_setup
Unexecuted instantiation: event_2l.c:iommu_hardware_setup
Unexecuted instantiation: domain.c:iommu_hardware_setup
Unexecuted instantiation: domctl.c:iommu_hardware_setup
Unexecuted instantiation: cpupool.c:iommu_hardware_setup
Unexecuted instantiation: cpu.c:iommu_hardware_setup
79
80
/* Does this domain have a P2M table we can use as its IOMMU pagetable? */
81
4.85M
#define iommu_use_hap_pt(d) (hap_enabled(d) && iommu_hap_pt_share)
82
83
void iommu_update_ire_from_apic(unsigned int apic, unsigned int reg, unsigned int value);
84
unsigned int iommu_read_apic_from_ire(unsigned int apic, unsigned int reg);
85
int iommu_setup_hpet_msi(struct msi_desc *);
86
87
/* While VT-d specific, this must get declared in a generic header. */
88
int adjust_vtd_irq_affinities(void);
89
int __must_check iommu_pte_flush(struct domain *d, u64 gfn, u64 *pte,
90
                                 int order, int present);
91
bool_t iommu_supports_eim(void);
92
int iommu_enable_x2apic_IR(void);
93
void iommu_disable_x2apic_IR(void);
94
95
extern bool untrusted_msi;
96
97
int pi_update_irte(const struct pi_desc *pi_desc, const struct pirq *pirq,
98
                   const uint8_t gvec);
99
100
#endif /* !__ARCH_X86_IOMMU_H__ */
101
/*
102
 * Local variables:
103
 * mode: C
104
 * c-file-style: "BSD"
105
 * c-basic-offset: 4
106
 * indent-tabs-mode: nil
107
 * End:
108
 */