Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/irq.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef _ASM_HW_IRQ_H
2
#define _ASM_HW_IRQ_H
3
4
/* (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar */
5
6
#include <asm/atomic.h>
7
#include <asm/numa.h>
8
#include <xen/cpumask.h>
9
#include <xen/smp.h>
10
#include <asm/hvm/irq.h>
11
#include <irq_vectors.h>
12
#include <asm/percpu.h>
13
14
extern unsigned int nr_irqs_gsi;
15
extern unsigned int nr_irqs;
16
0
#define nr_static_irqs nr_irqs_gsi
17
18
795
#define IO_APIC_IRQ(irq)    (platform_legacy_irq(irq) ?    \
19
290
           (1 << (irq)) & io_apic_irqs : \
20
505
           (irq) < nr_irqs_gsi)
21
22
98
#define MSI_IRQ(irq)       ((irq) >= nr_irqs_gsi && (irq) < nr_irqs)
23
24
32
#define LEGACY_VECTOR(irq)          ((irq) + FIRST_LEGACY_VECTOR)
25
26
typedef struct {
27
    DECLARE_BITMAP(_bits,NR_VECTORS);
28
} vmask_t;
29
30
struct irq_desc;
31
32
struct arch_irq_desc {
33
        s16 vector;                  /* vector itself is only 8 bits, */
34
        s16 old_vector;              /* but we use -1 for unassigned  */
35
        cpumask_var_t cpu_mask;
36
        cpumask_var_t old_cpu_mask;
37
        cpumask_var_t pending_mask;
38
        unsigned move_cleanup_count;
39
        vmask_t *used_vectors;
40
        u8 move_in_progress : 1;
41
        s8 used;
42
};
43
44
/* For use with irq_desc.arch.used */
45
947
#define IRQ_UNUSED      (0)
46
121
#define IRQ_USED        (1)
47
#define IRQ_RESERVED    (-1)
48
49
484
#define IRQ_VECTOR_UNASSIGNED (-1)
50
51
typedef int vector_irq_t[NR_VECTORS];
52
DECLARE_PER_CPU(vector_irq_t, vector_irq);
53
54
extern bool opt_noirqbalance;
55
56
#define OPT_IRQ_VECTOR_MAP_DEFAULT 0 /* Do the default thing  */
57
16
#define OPT_IRQ_VECTOR_MAP_NONE    1 /* None */ 
58
59
#define OPT_IRQ_VECTOR_MAP_GLOBAL  2 /* One global vector map (no vector sharing) */ 
59
42
#define OPT_IRQ_VECTOR_MAP_PERDEV  3 /* Per-device vetor map (no vector sharing w/in a device) */
60
61
extern int opt_irq_vector_map;
62
63
/*
64
 * Per-cpu current frame pointer - the location of the last exception frame on
65
 * the stack
66
 */
67
DECLARE_PER_CPU(struct cpu_user_regs *, __irq_regs);
68
69
static inline struct cpu_user_regs *get_irq_regs(void)
70
4.14k
{
71
4.14k
  return __get_cpu_var(__irq_regs);
72
4.14k
}
Unexecuted instantiation: mpparse.c:get_irq_regs
Unexecuted instantiation: mmconfig-shared.c:get_irq_regs
Unexecuted instantiation: mmconfig_64.c:get_irq_regs
Unexecuted instantiation: mmconf-fam10h.c:get_irq_regs
Unexecuted instantiation: acpi_mmcfg.c:get_irq_regs
Unexecuted instantiation: ro-page-fault.c:get_irq_regs
Unexecuted instantiation: misc-hypercalls.c:get_irq_regs
Unexecuted instantiation: iret.c:get_irq_regs
Unexecuted instantiation: emul-priv-op.c:get_irq_regs
Unexecuted instantiation: emul-inv-op.c:get_irq_regs
Unexecuted instantiation: emul-gate-op.c:get_irq_regs
Unexecuted instantiation: descriptor-tables.c:get_irq_regs
Unexecuted instantiation: callback.c:get_irq_regs
Unexecuted instantiation: backtrace.c:get_irq_regs
Unexecuted instantiation: op_model_athlon.c:get_irq_regs
Unexecuted instantiation: op_model_ppro.c:get_irq_regs
Unexecuted instantiation: op_model_p4.c:get_irq_regs
Unexecuted instantiation: nmi_int.c:get_irq_regs
Unexecuted instantiation: nested_ept.c:get_irq_regs
Unexecuted instantiation: nested_hap.c:get_irq_regs
Unexecuted instantiation: hap.c:get_irq_regs
Unexecuted instantiation: multi.c:get_irq_regs
Unexecuted instantiation: mem_sharing.c:get_irq_regs
Unexecuted instantiation: mem_paging.c:get_irq_regs
Unexecuted instantiation: guest_walk.c:get_irq_regs
Unexecuted instantiation: altp2m.c:get_irq_regs
Unexecuted instantiation: p2m-pod.c:get_irq_regs
Unexecuted instantiation: p2m-ept.c:get_irq_regs
Unexecuted instantiation: p2m-pt.c:get_irq_regs
Unexecuted instantiation: p2m.c:get_irq_regs
Unexecuted instantiation: paging.c:get_irq_regs
Unexecuted instantiation: vvmx.c:get_irq_regs
Unexecuted instantiation: vmx.c:get_irq_regs
Unexecuted instantiation: vmcs.c:get_irq_regs
Unexecuted instantiation: realmode.c:get_irq_regs
Unexecuted instantiation: vmcb.c:get_irq_regs
Unexecuted instantiation: svmdebug.c:get_irq_regs
Unexecuted instantiation: svm.c:get_irq_regs
Unexecuted instantiation: nestedsvm.c:get_irq_regs
Unexecuted instantiation: intr.c:get_irq_regs
Unexecuted instantiation: vpt.c:get_irq_regs
Unexecuted instantiation: vpic.c:get_irq_regs
Unexecuted instantiation: vmsi.c:get_irq_regs
Unexecuted instantiation: vlapic.c:get_irq_regs
Unexecuted instantiation: viridian.c:get_irq_regs
Unexecuted instantiation: vioapic.c:get_irq_regs
Unexecuted instantiation: stdvga.c:get_irq_regs
Unexecuted instantiation: save.c:get_irq_regs
Unexecuted instantiation: rtc.c:get_irq_regs
Unexecuted instantiation: pmtimer.c:get_irq_regs
Unexecuted instantiation: nestedhvm.c:get_irq_regs
Unexecuted instantiation: mtrr.c:get_irq_regs
Unexecuted instantiation: ioreq.c:get_irq_regs
Unexecuted instantiation: intercept.c:get_irq_regs
Unexecuted instantiation: i8254.c:get_irq_regs
Unexecuted instantiation: hvm.c:get_irq_regs
Unexecuted instantiation: emulate.c:get_irq_regs
Unexecuted instantiation: dm.c:get_irq_regs
Unexecuted instantiation: asid.c:get_irq_regs
Unexecuted instantiation: probe.c:get_irq_regs
Unexecuted instantiation: delivery.c:get_irq_regs
Unexecuted instantiation: default.c:get_irq_regs
Unexecuted instantiation: x2apic.c:get_irq_regs
Unexecuted instantiation: bigsmp.c:get_irq_regs
Unexecuted instantiation: vmce.c:get_irq_regs
Unexecuted instantiation: util.c:get_irq_regs
Unexecuted instantiation: non-fatal.c:get_irq_regs
Unexecuted instantiation: mce_intel.c:get_irq_regs
Unexecuted instantiation: mce-apei.c:get_irq_regs
Unexecuted instantiation: mce.c:get_irq_regs
Unexecuted instantiation: mctelem.c:get_irq_regs
Unexecuted instantiation: barrier.c:get_irq_regs
Unexecuted instantiation: mcaction.c:get_irq_regs
Unexecuted instantiation: mce_amd.c:get_irq_regs
Unexecuted instantiation: amd_nonfatal.c:get_irq_regs
Unexecuted instantiation: vpmu_intel.c:get_irq_regs
Unexecuted instantiation: vpmu_amd.c:get_irq_regs
Unexecuted instantiation: vpmu.c:get_irq_regs
Unexecuted instantiation: mwait-idle.c:get_irq_regs
Unexecuted instantiation: intel.c:get_irq_regs
Unexecuted instantiation: common.c:get_irq_regs
Unexecuted instantiation: amd.c:get_irq_regs
Unexecuted instantiation: cpuidle_menu.c:get_irq_regs
Unexecuted instantiation: cpu_idle.c:get_irq_regs
Unexecuted instantiation: suspend.c:get_irq_regs
Unexecuted instantiation: power.c:get_irq_regs
Unexecuted instantiation: lib.c:get_irq_regs
Unexecuted instantiation: xstate.c:get_irq_regs
Unexecuted instantiation: hpet.c:get_irq_regs
Unexecuted instantiation: tboot.c:get_irq_regs
Unexecuted instantiation: x86_emulate.c:get_irq_regs
Unexecuted instantiation: usercopy.c:get_irq_regs
Unexecuted instantiation: traps.c:get_irq_regs
Unexecuted instantiation: smpboot.c:get_irq_regs
Unexecuted instantiation: smp.c:get_irq_regs
Unexecuted instantiation: setup.c:get_irq_regs
Unexecuted instantiation: psr.c:get_irq_regs
Unexecuted instantiation: platform_hypercall.c:get_irq_regs
Unexecuted instantiation: physdev.c:get_irq_regs
Unexecuted instantiation: numa.c:get_irq_regs
Unexecuted instantiation: nmi.c:get_irq_regs
Unexecuted instantiation: mm.c:get_irq_regs
Unexecuted instantiation: microcode.c:get_irq_regs
Unexecuted instantiation: microcode_intel.c:get_irq_regs
Unexecuted instantiation: microcode_amd.c:get_irq_regs
Unexecuted instantiation: machine_kexec.c:get_irq_regs
Unexecuted instantiation: ioport_emulate.c:get_irq_regs
Unexecuted instantiation: msr.c:get_irq_regs
Unexecuted instantiation: io_apic.c:get_irq_regs
Unexecuted instantiation: i8259.c:get_irq_regs
Unexecuted instantiation: i387.c:get_irq_regs
Unexecuted instantiation: hypercall.c:get_irq_regs
Unexecuted instantiation: flushtlb.c:get_irq_regs
Unexecuted instantiation: domain_page.c:get_irq_regs
Unexecuted instantiation: debug.c:get_irq_regs
Unexecuted instantiation: crash.c:get_irq_regs
Unexecuted instantiation: compat.c:get_irq_regs
Unexecuted instantiation: cpuid.c:get_irq_regs
Unexecuted instantiation: apic.c:get_irq_regs
Unexecuted instantiation: xsm_core.c:get_irq_regs
Unexecuted instantiation: vga.c:get_irq_regs
Unexecuted instantiation: apei-io.c:get_irq_regs
Unexecuted instantiation: erst.c:get_irq_regs
Unexecuted instantiation: reboot.c:get_irq_regs
Unexecuted instantiation: pmstat.c:get_irq_regs
Unexecuted instantiation: iommu_guest.c:get_irq_regs
Unexecuted instantiation: iommu_cmd.c:get_irq_regs
Unexecuted instantiation: iommu_intr.c:get_irq_regs
Unexecuted instantiation: pci_amd_iommu.c:get_irq_regs
Unexecuted instantiation: iommu_map.c:get_irq_regs
Unexecuted instantiation: iommu_init.c:get_irq_regs
Unexecuted instantiation: ats.c:get_irq_regs
Unexecuted instantiation: vtd.c:get_irq_regs
Unexecuted instantiation: quirks.c:get_irq_regs
Unexecuted instantiation: intremap.c:get_irq_regs
Unexecuted instantiation: qinval.c:get_irq_regs
Unexecuted instantiation: utils.c:get_irq_regs
Unexecuted instantiation: dmar.c:get_irq_regs
Unexecuted instantiation: io.c:get_irq_regs
Unexecuted instantiation: iommu.c:get_irq_regs
Unexecuted instantiation: msix.c:get_irq_regs
Unexecuted instantiation: msi.c:get_irq_regs
Unexecuted instantiation: header.c:get_irq_regs
Unexecuted instantiation: vpci.c:get_irq_regs
Unexecuted instantiation: pci.c:get_irq_regs
Unexecuted instantiation: utility.c:get_irq_regs
Unexecuted instantiation: cpufreq_misc_governors.c:get_irq_regs
Unexecuted instantiation: cpufreq_ondemand.c:get_irq_regs
Unexecuted instantiation: cpufreq.c:get_irq_regs
Unexecuted instantiation: ehci-dbgp.c:get_irq_regs
Unexecuted instantiation: ns16550.c:get_irq_regs
Unexecuted instantiation: console.c:get_irq_regs
Unexecuted instantiation: libelf-loader.c:get_irq_regs
Unexecuted instantiation: llvm.c:get_irq_regs
Unexecuted instantiation: tmem_control.c:get_irq_regs
Unexecuted instantiation: tmem_xen.c:get_irq_regs
Unexecuted instantiation: tmem.c:get_irq_regs
Unexecuted instantiation: xmalloc_tlsf.c:get_irq_regs
Unexecuted instantiation: xenoprof.c:get_irq_regs
Unexecuted instantiation: wait.c:get_irq_regs
Unexecuted instantiation: vsprintf.c:get_irq_regs
Unexecuted instantiation: vm_event.c:get_irq_regs
Unexecuted instantiation: trace.c:get_irq_regs
Unexecuted instantiation: timer.c:get_irq_regs
Unexecuted instantiation: time.c:get_irq_regs
Unexecuted instantiation: tasklet.c:get_irq_regs
Unexecuted instantiation: sysctl.c:get_irq_regs
Unexecuted instantiation: symbols.c:get_irq_regs
Unexecuted instantiation: stop_machine.c:get_irq_regs
Unexecuted instantiation: spinlock.c:get_irq_regs
Unexecuted instantiation: softirq.c:get_irq_regs
Unexecuted instantiation: shutdown.c:get_irq_regs
Unexecuted instantiation: schedule.c:get_irq_regs
Unexecuted instantiation: sched_null.c:get_irq_regs
Unexecuted instantiation: sched_rt.c:get_irq_regs
Unexecuted instantiation: sched_credit2.c:get_irq_regs
Unexecuted instantiation: sched_credit.c:get_irq_regs
Unexecuted instantiation: sched_arinc653.c:get_irq_regs
Unexecuted instantiation: rwlock.c:get_irq_regs
Unexecuted instantiation: rcupdate.c:get_irq_regs
Unexecuted instantiation: rangeset.c:get_irq_regs
Unexecuted instantiation: preempt.c:get_irq_regs
Unexecuted instantiation: page_alloc.c:get_irq_regs
Unexecuted instantiation: multicall.c:get_irq_regs
Unexecuted instantiation: monitor.c:get_irq_regs
Unexecuted instantiation: memory.c:get_irq_regs
Unexecuted instantiation: mem_access.c:get_irq_regs
Unexecuted instantiation: kimage.c:get_irq_regs
Unexecuted instantiation: kexec.c:get_irq_regs
Unexecuted instantiation: keyhandler.c:get_irq_regs
Unexecuted instantiation: kernel.c:get_irq_regs
irq.c:get_irq_regs
Line
Count
Source
70
4.14k
{
71
4.14k
  return __get_cpu_var(__irq_regs);
72
4.14k
}
Unexecuted instantiation: guestcopy.c:get_irq_regs
Unexecuted instantiation: grant_table.c:get_irq_regs
Unexecuted instantiation: event_fifo.c:get_irq_regs
Unexecuted instantiation: event_channel.c:get_irq_regs
Unexecuted instantiation: event_2l.c:get_irq_regs
Unexecuted instantiation: domain.c:get_irq_regs
Unexecuted instantiation: domctl.c:get_irq_regs
Unexecuted instantiation: cpupool.c:get_irq_regs
Unexecuted instantiation: cpu.c:get_irq_regs
73
74
static inline struct cpu_user_regs *set_irq_regs(struct cpu_user_regs *new_regs)
75
3.84M
{
76
3.84M
  struct cpu_user_regs *old_regs, **pp_regs = &__get_cpu_var(__irq_regs);
77
3.84M
78
3.84M
  old_regs = *pp_regs;
79
3.84M
  *pp_regs = new_regs;
80
3.84M
  return old_regs;
81
3.84M
}
Unexecuted instantiation: mmconfig-shared.c:set_irq_regs
Unexecuted instantiation: cpu.c:set_irq_regs
Unexecuted instantiation: mmconfig_64.c:set_irq_regs
Unexecuted instantiation: mmconf-fam10h.c:set_irq_regs
Unexecuted instantiation: acpi_mmcfg.c:set_irq_regs
Unexecuted instantiation: ro-page-fault.c:set_irq_regs
Unexecuted instantiation: misc-hypercalls.c:set_irq_regs
Unexecuted instantiation: iret.c:set_irq_regs
Unexecuted instantiation: emul-priv-op.c:set_irq_regs
Unexecuted instantiation: emul-inv-op.c:set_irq_regs
Unexecuted instantiation: emul-gate-op.c:set_irq_regs
Unexecuted instantiation: descriptor-tables.c:set_irq_regs
Unexecuted instantiation: callback.c:set_irq_regs
Unexecuted instantiation: backtrace.c:set_irq_regs
Unexecuted instantiation: op_model_athlon.c:set_irq_regs
Unexecuted instantiation: op_model_ppro.c:set_irq_regs
Unexecuted instantiation: op_model_p4.c:set_irq_regs
Unexecuted instantiation: nmi_int.c:set_irq_regs
Unexecuted instantiation: nested_ept.c:set_irq_regs
Unexecuted instantiation: nested_hap.c:set_irq_regs
Unexecuted instantiation: hap.c:set_irq_regs
Unexecuted instantiation: multi.c:set_irq_regs
Unexecuted instantiation: mem_sharing.c:set_irq_regs
Unexecuted instantiation: mem_paging.c:set_irq_regs
Unexecuted instantiation: guest_walk.c:set_irq_regs
Unexecuted instantiation: altp2m.c:set_irq_regs
Unexecuted instantiation: p2m-pod.c:set_irq_regs
Unexecuted instantiation: p2m-ept.c:set_irq_regs
Unexecuted instantiation: p2m-pt.c:set_irq_regs
Unexecuted instantiation: p2m.c:set_irq_regs
Unexecuted instantiation: paging.c:set_irq_regs
Unexecuted instantiation: vvmx.c:set_irq_regs
Unexecuted instantiation: vmx.c:set_irq_regs
Unexecuted instantiation: vmcs.c:set_irq_regs
Unexecuted instantiation: realmode.c:set_irq_regs
Unexecuted instantiation: vmcb.c:set_irq_regs
Unexecuted instantiation: svmdebug.c:set_irq_regs
Unexecuted instantiation: svm.c:set_irq_regs
Unexecuted instantiation: nestedsvm.c:set_irq_regs
Unexecuted instantiation: intr.c:set_irq_regs
Unexecuted instantiation: vpt.c:set_irq_regs
Unexecuted instantiation: vpic.c:set_irq_regs
Unexecuted instantiation: vmsi.c:set_irq_regs
Unexecuted instantiation: vlapic.c:set_irq_regs
Unexecuted instantiation: viridian.c:set_irq_regs
Unexecuted instantiation: vioapic.c:set_irq_regs
Unexecuted instantiation: stdvga.c:set_irq_regs
Unexecuted instantiation: save.c:set_irq_regs
Unexecuted instantiation: rtc.c:set_irq_regs
Unexecuted instantiation: pmtimer.c:set_irq_regs
Unexecuted instantiation: nestedhvm.c:set_irq_regs
Unexecuted instantiation: mtrr.c:set_irq_regs
Unexecuted instantiation: ioreq.c:set_irq_regs
Unexecuted instantiation: intercept.c:set_irq_regs
Unexecuted instantiation: i8254.c:set_irq_regs
Unexecuted instantiation: hvm.c:set_irq_regs
Unexecuted instantiation: emulate.c:set_irq_regs
Unexecuted instantiation: dm.c:set_irq_regs
Unexecuted instantiation: asid.c:set_irq_regs
Unexecuted instantiation: probe.c:set_irq_regs
Unexecuted instantiation: delivery.c:set_irq_regs
Unexecuted instantiation: default.c:set_irq_regs
Unexecuted instantiation: x2apic.c:set_irq_regs
Unexecuted instantiation: bigsmp.c:set_irq_regs
Unexecuted instantiation: vmce.c:set_irq_regs
Unexecuted instantiation: util.c:set_irq_regs
Unexecuted instantiation: non-fatal.c:set_irq_regs
Unexecuted instantiation: mce_intel.c:set_irq_regs
Unexecuted instantiation: mce-apei.c:set_irq_regs
Unexecuted instantiation: mce.c:set_irq_regs
Unexecuted instantiation: mctelem.c:set_irq_regs
Unexecuted instantiation: barrier.c:set_irq_regs
Unexecuted instantiation: mcaction.c:set_irq_regs
Unexecuted instantiation: mce_amd.c:set_irq_regs
Unexecuted instantiation: amd_nonfatal.c:set_irq_regs
Unexecuted instantiation: vpmu_intel.c:set_irq_regs
Unexecuted instantiation: vpmu_amd.c:set_irq_regs
Unexecuted instantiation: vpmu.c:set_irq_regs
Unexecuted instantiation: mwait-idle.c:set_irq_regs
Unexecuted instantiation: intel.c:set_irq_regs
Unexecuted instantiation: common.c:set_irq_regs
Unexecuted instantiation: amd.c:set_irq_regs
Unexecuted instantiation: cpuidle_menu.c:set_irq_regs
Unexecuted instantiation: cpu_idle.c:set_irq_regs
Unexecuted instantiation: suspend.c:set_irq_regs
Unexecuted instantiation: power.c:set_irq_regs
Unexecuted instantiation: lib.c:set_irq_regs
Unexecuted instantiation: xstate.c:set_irq_regs
Unexecuted instantiation: hpet.c:set_irq_regs
Unexecuted instantiation: tboot.c:set_irq_regs
Unexecuted instantiation: x86_emulate.c:set_irq_regs
Unexecuted instantiation: usercopy.c:set_irq_regs
Unexecuted instantiation: traps.c:set_irq_regs
Unexecuted instantiation: smpboot.c:set_irq_regs
Unexecuted instantiation: smp.c:set_irq_regs
Unexecuted instantiation: setup.c:set_irq_regs
Unexecuted instantiation: psr.c:set_irq_regs
Unexecuted instantiation: platform_hypercall.c:set_irq_regs
Unexecuted instantiation: physdev.c:set_irq_regs
Unexecuted instantiation: numa.c:set_irq_regs
Unexecuted instantiation: nmi.c:set_irq_regs
Unexecuted instantiation: mpparse.c:set_irq_regs
Unexecuted instantiation: mm.c:set_irq_regs
Unexecuted instantiation: microcode.c:set_irq_regs
Unexecuted instantiation: microcode_intel.c:set_irq_regs
Unexecuted instantiation: microcode_amd.c:set_irq_regs
Unexecuted instantiation: machine_kexec.c:set_irq_regs
Unexecuted instantiation: ioport_emulate.c:set_irq_regs
Unexecuted instantiation: msr.c:set_irq_regs
Unexecuted instantiation: io_apic.c:set_irq_regs
Unexecuted instantiation: i8259.c:set_irq_regs
Unexecuted instantiation: i387.c:set_irq_regs
Unexecuted instantiation: hypercall.c:set_irq_regs
Unexecuted instantiation: flushtlb.c:set_irq_regs
Unexecuted instantiation: domain_page.c:set_irq_regs
Unexecuted instantiation: debug.c:set_irq_regs
Unexecuted instantiation: crash.c:set_irq_regs
Unexecuted instantiation: compat.c:set_irq_regs
Unexecuted instantiation: cpuid.c:set_irq_regs
Unexecuted instantiation: apic.c:set_irq_regs
Unexecuted instantiation: xsm_core.c:set_irq_regs
Unexecuted instantiation: vga.c:set_irq_regs
Unexecuted instantiation: apei-io.c:set_irq_regs
Unexecuted instantiation: erst.c:set_irq_regs
Unexecuted instantiation: reboot.c:set_irq_regs
Unexecuted instantiation: pmstat.c:set_irq_regs
Unexecuted instantiation: iommu_guest.c:set_irq_regs
Unexecuted instantiation: iommu_cmd.c:set_irq_regs
Unexecuted instantiation: iommu_intr.c:set_irq_regs
Unexecuted instantiation: pci_amd_iommu.c:set_irq_regs
Unexecuted instantiation: iommu_map.c:set_irq_regs
Unexecuted instantiation: iommu_init.c:set_irq_regs
Unexecuted instantiation: ats.c:set_irq_regs
Unexecuted instantiation: vtd.c:set_irq_regs
Unexecuted instantiation: quirks.c:set_irq_regs
Unexecuted instantiation: intremap.c:set_irq_regs
Unexecuted instantiation: qinval.c:set_irq_regs
Unexecuted instantiation: utils.c:set_irq_regs
Unexecuted instantiation: dmar.c:set_irq_regs
Unexecuted instantiation: io.c:set_irq_regs
Unexecuted instantiation: iommu.c:set_irq_regs
Unexecuted instantiation: msix.c:set_irq_regs
Unexecuted instantiation: msi.c:set_irq_regs
Unexecuted instantiation: header.c:set_irq_regs
Unexecuted instantiation: vpci.c:set_irq_regs
Unexecuted instantiation: pci.c:set_irq_regs
Unexecuted instantiation: utility.c:set_irq_regs
Unexecuted instantiation: cpufreq_misc_governors.c:set_irq_regs
Unexecuted instantiation: cpufreq_ondemand.c:set_irq_regs
Unexecuted instantiation: cpufreq.c:set_irq_regs
Unexecuted instantiation: ehci-dbgp.c:set_irq_regs
Unexecuted instantiation: ns16550.c:set_irq_regs
Unexecuted instantiation: console.c:set_irq_regs
Unexecuted instantiation: libelf-loader.c:set_irq_regs
Unexecuted instantiation: llvm.c:set_irq_regs
Unexecuted instantiation: tmem_control.c:set_irq_regs
Unexecuted instantiation: tmem_xen.c:set_irq_regs
Unexecuted instantiation: tmem.c:set_irq_regs
Unexecuted instantiation: xmalloc_tlsf.c:set_irq_regs
Unexecuted instantiation: xenoprof.c:set_irq_regs
Unexecuted instantiation: wait.c:set_irq_regs
Unexecuted instantiation: vsprintf.c:set_irq_regs
Unexecuted instantiation: vm_event.c:set_irq_regs
Unexecuted instantiation: trace.c:set_irq_regs
Unexecuted instantiation: timer.c:set_irq_regs
Unexecuted instantiation: time.c:set_irq_regs
Unexecuted instantiation: tasklet.c:set_irq_regs
Unexecuted instantiation: sysctl.c:set_irq_regs
Unexecuted instantiation: symbols.c:set_irq_regs
Unexecuted instantiation: stop_machine.c:set_irq_regs
Unexecuted instantiation: spinlock.c:set_irq_regs
Unexecuted instantiation: softirq.c:set_irq_regs
Unexecuted instantiation: shutdown.c:set_irq_regs
Unexecuted instantiation: schedule.c:set_irq_regs
Unexecuted instantiation: sched_null.c:set_irq_regs
Unexecuted instantiation: sched_rt.c:set_irq_regs
Unexecuted instantiation: sched_credit2.c:set_irq_regs
Unexecuted instantiation: sched_credit.c:set_irq_regs
Unexecuted instantiation: sched_arinc653.c:set_irq_regs
Unexecuted instantiation: rwlock.c:set_irq_regs
Unexecuted instantiation: rcupdate.c:set_irq_regs
Unexecuted instantiation: rangeset.c:set_irq_regs
Unexecuted instantiation: preempt.c:set_irq_regs
Unexecuted instantiation: page_alloc.c:set_irq_regs
Unexecuted instantiation: multicall.c:set_irq_regs
Unexecuted instantiation: monitor.c:set_irq_regs
Unexecuted instantiation: memory.c:set_irq_regs
Unexecuted instantiation: mem_access.c:set_irq_regs
Unexecuted instantiation: kimage.c:set_irq_regs
Unexecuted instantiation: kexec.c:set_irq_regs
Unexecuted instantiation: keyhandler.c:set_irq_regs
Unexecuted instantiation: kernel.c:set_irq_regs
irq.c:set_irq_regs
Line
Count
Source
75
3.84M
{
76
3.84M
  struct cpu_user_regs *old_regs, **pp_regs = &__get_cpu_var(__irq_regs);
77
3.84M
78
3.84M
  old_regs = *pp_regs;
79
3.84M
  *pp_regs = new_regs;
80
3.84M
  return old_regs;
81
3.84M
}
Unexecuted instantiation: guestcopy.c:set_irq_regs
Unexecuted instantiation: grant_table.c:set_irq_regs
Unexecuted instantiation: event_fifo.c:set_irq_regs
Unexecuted instantiation: event_channel.c:set_irq_regs
Unexecuted instantiation: event_2l.c:set_irq_regs
Unexecuted instantiation: domain.c:set_irq_regs
Unexecuted instantiation: domctl.c:set_irq_regs
Unexecuted instantiation: cpupool.c:set_irq_regs
82
83
84
892
#define platform_legacy_irq(irq)  ((irq) < 16)
85
86
void event_check_interrupt(struct cpu_user_regs *regs);
87
void invalidate_interrupt(struct cpu_user_regs *regs);
88
void call_function_interrupt(struct cpu_user_regs *regs);
89
void apic_timer_interrupt(struct cpu_user_regs *regs);
90
void error_interrupt(struct cpu_user_regs *regs);
91
void pmu_apic_interrupt(struct cpu_user_regs *regs);
92
void spurious_interrupt(struct cpu_user_regs *regs);
93
void irq_move_cleanup_interrupt(struct cpu_user_regs *regs);
94
95
uint8_t alloc_hipriority_vector(void);
96
97
void set_direct_apic_vector(
98
    uint8_t vector, void (*handler)(struct cpu_user_regs *));
99
void alloc_direct_apic_vector(
100
    uint8_t *vector, void (*handler)(struct cpu_user_regs *));
101
102
void do_IRQ(struct cpu_user_regs *regs);
103
104
void disable_8259A_irq(struct irq_desc *);
105
void enable_8259A_irq(struct irq_desc *);
106
int i8259A_irq_pending(unsigned int irq);
107
void mask_8259A(void);
108
void unmask_8259A(void);
109
void init_8259A(int aeoi);
110
void make_8259A_irq(unsigned int irq);
111
bool bogus_8259A_irq(unsigned int irq);
112
int i8259A_suspend(void);
113
int i8259A_resume(void);
114
115
void setup_IO_APIC(void);
116
void disable_IO_APIC(void);
117
void setup_ioapic_dest(void);
118
vmask_t *io_apic_get_used_vector_map(unsigned int irq);
119
120
extern unsigned int io_apic_irqs;
121
122
DECLARE_PER_CPU(unsigned int, irq_count);
123
124
struct pirq;
125
struct arch_pirq {
126
    int irq;
127
    union {
128
        struct hvm_pirq {
129
            int emuirq;
130
            struct hvm_pirq_dpci dpci;
131
        } hvm;
132
    };
133
};
134
135
5.37k
#define pirq_dpci(pirq) ((pirq) ? &(pirq)->arch.hvm.dpci : NULL)
136
4.28k
#define dpci_pirq(pd) container_of(pd, struct pirq, arch.hvm.dpci)
137
138
int pirq_shared(struct domain *d , int irq);
139
140
int map_domain_pirq(struct domain *d, int pirq, int irq, int type,
141
                           void *data);
142
int unmap_domain_pirq(struct domain *d, int pirq);
143
int get_free_pirq(struct domain *d, int type);
144
int get_free_pirqs(struct domain *, unsigned int nr);
145
void free_domain_pirqs(struct domain *d);
146
int map_domain_emuirq_pirq(struct domain *d, int pirq, int irq);
147
int unmap_domain_pirq_emuirq(struct domain *d, int pirq);
148
bool hvm_domain_use_pirq(const struct domain *, const struct pirq *);
149
150
/* Reset irq affinities to match the given CPU mask. */
151
void fixup_irqs(const cpumask_t *mask, bool verbose);
152
void fixup_eoi(void);
153
154
int  init_irq_data(void);
155
156
void clear_irq_vector(int irq);
157
158
int irq_to_vector(int irq);
159
int create_irq(nodeid_t node);
160
void destroy_irq(unsigned int irq);
161
int assign_irq_vector(int irq, const cpumask_t *);
162
163
extern void irq_complete_move(struct irq_desc *);
164
165
extern struct irq_desc *irq_desc;
166
167
void lock_vector_lock(void);
168
void unlock_vector_lock(void);
169
170
void setup_vector_irq(unsigned int cpu);
171
172
void move_native_irq(struct irq_desc *);
173
void move_masked_irq(struct irq_desc *);
174
175
int bind_irq_vector(int irq, int vector, const cpumask_t *);
176
177
void irq_set_affinity(struct irq_desc *, const cpumask_t *mask);
178
179
int init_domain_irq_mapping(struct domain *);
180
void cleanup_domain_irq_mapping(struct domain *);
181
182
102
#define domain_pirq_to_irq(d, pirq) pirq_field(d, pirq, arch.irq, 0)
183
3.94k
#define domain_irq_to_pirq(d, irq) ({                           \
184
3.94k
    void *__ret = radix_tree_lookup(&(d)->arch.irq_pirq, irq);  \
185
3.84k
    __ret ? radix_tree_ptr_to_int(__ret) : 0;                   \
186
3.94k
})
187
0
#define PIRQ_ALLOCATED -1
188
0
#define domain_pirq_to_emuirq(d, pirq) pirq_field(d, pirq,              \
189
0
    arch.hvm.emuirq, IRQ_UNBOUND)
190
0
#define domain_emuirq_to_pirq(d, emuirq) ({                             \
191
0
    void *__ret = radix_tree_lookup(&(d)->arch.hvm_domain.emuirq_pirq,  \
192
0
                                    emuirq);                            \
193
0
    __ret ? radix_tree_ptr_to_int(__ret) : IRQ_UNBOUND;                 \
194
0
})
195
8.63k
#define IRQ_UNBOUND -1
196
0
#define IRQ_PT -2
197
0
#define IRQ_MSI_EMU -3
198
199
bool cpu_has_pending_apic_eoi(void);
200
201
536
static inline void arch_move_irqs(struct vcpu *v) { }
Unexecuted instantiation: mmconfig_64.c:arch_move_irqs
Unexecuted instantiation: cpupool.c:arch_move_irqs
Unexecuted instantiation: domctl.c:arch_move_irqs
Unexecuted instantiation: domain.c:arch_move_irqs
Unexecuted instantiation: event_2l.c:arch_move_irqs
Unexecuted instantiation: event_channel.c:arch_move_irqs
Unexecuted instantiation: event_fifo.c:arch_move_irqs
Unexecuted instantiation: grant_table.c:arch_move_irqs
Unexecuted instantiation: guestcopy.c:arch_move_irqs
Unexecuted instantiation: irq.c:arch_move_irqs
Unexecuted instantiation: kernel.c:arch_move_irqs
Unexecuted instantiation: keyhandler.c:arch_move_irqs
Unexecuted instantiation: kexec.c:arch_move_irqs
Unexecuted instantiation: kimage.c:arch_move_irqs
Unexecuted instantiation: mem_access.c:arch_move_irqs
Unexecuted instantiation: memory.c:arch_move_irqs
Unexecuted instantiation: monitor.c:arch_move_irqs
Unexecuted instantiation: multicall.c:arch_move_irqs
Unexecuted instantiation: page_alloc.c:arch_move_irqs
Unexecuted instantiation: preempt.c:arch_move_irqs
Unexecuted instantiation: rangeset.c:arch_move_irqs
Unexecuted instantiation: rcupdate.c:arch_move_irqs
Unexecuted instantiation: rwlock.c:arch_move_irqs
Unexecuted instantiation: sched_arinc653.c:arch_move_irqs
Unexecuted instantiation: sched_credit.c:arch_move_irqs
Unexecuted instantiation: sched_credit2.c:arch_move_irqs
Unexecuted instantiation: sched_rt.c:arch_move_irqs
Unexecuted instantiation: sched_null.c:arch_move_irqs
schedule.c:arch_move_irqs
Line
Count
Source
201
536
static inline void arch_move_irqs(struct vcpu *v) { }
Unexecuted instantiation: shutdown.c:arch_move_irqs
Unexecuted instantiation: softirq.c:arch_move_irqs
Unexecuted instantiation: spinlock.c:arch_move_irqs
Unexecuted instantiation: stop_machine.c:arch_move_irqs
Unexecuted instantiation: symbols.c:arch_move_irqs
Unexecuted instantiation: sysctl.c:arch_move_irqs
Unexecuted instantiation: tasklet.c:arch_move_irqs
Unexecuted instantiation: time.c:arch_move_irqs
Unexecuted instantiation: timer.c:arch_move_irqs
Unexecuted instantiation: trace.c:arch_move_irqs
Unexecuted instantiation: vm_event.c:arch_move_irqs
Unexecuted instantiation: vsprintf.c:arch_move_irqs
Unexecuted instantiation: wait.c:arch_move_irqs
Unexecuted instantiation: xenoprof.c:arch_move_irqs
Unexecuted instantiation: xmalloc_tlsf.c:arch_move_irqs
Unexecuted instantiation: tmem.c:arch_move_irqs
Unexecuted instantiation: tmem_xen.c:arch_move_irqs
Unexecuted instantiation: tmem_control.c:arch_move_irqs
Unexecuted instantiation: llvm.c:arch_move_irqs
Unexecuted instantiation: libelf-loader.c:arch_move_irqs
Unexecuted instantiation: console.c:arch_move_irqs
Unexecuted instantiation: ns16550.c:arch_move_irqs
Unexecuted instantiation: ehci-dbgp.c:arch_move_irqs
Unexecuted instantiation: cpufreq.c:arch_move_irqs
Unexecuted instantiation: cpufreq_ondemand.c:arch_move_irqs
Unexecuted instantiation: cpufreq_misc_governors.c:arch_move_irqs
Unexecuted instantiation: utility.c:arch_move_irqs
Unexecuted instantiation: pci.c:arch_move_irqs
Unexecuted instantiation: vpci.c:arch_move_irqs
Unexecuted instantiation: header.c:arch_move_irqs
Unexecuted instantiation: msi.c:arch_move_irqs
Unexecuted instantiation: msix.c:arch_move_irqs
Unexecuted instantiation: iommu.c:arch_move_irqs
Unexecuted instantiation: io.c:arch_move_irqs
Unexecuted instantiation: dmar.c:arch_move_irqs
Unexecuted instantiation: utils.c:arch_move_irqs
Unexecuted instantiation: qinval.c:arch_move_irqs
Unexecuted instantiation: intremap.c:arch_move_irqs
Unexecuted instantiation: quirks.c:arch_move_irqs
Unexecuted instantiation: vtd.c:arch_move_irqs
Unexecuted instantiation: ats.c:arch_move_irqs
Unexecuted instantiation: iommu_init.c:arch_move_irqs
Unexecuted instantiation: iommu_map.c:arch_move_irqs
Unexecuted instantiation: pci_amd_iommu.c:arch_move_irqs
Unexecuted instantiation: iommu_intr.c:arch_move_irqs
Unexecuted instantiation: iommu_cmd.c:arch_move_irqs
Unexecuted instantiation: iommu_guest.c:arch_move_irqs
Unexecuted instantiation: pmstat.c:arch_move_irqs
Unexecuted instantiation: reboot.c:arch_move_irqs
Unexecuted instantiation: erst.c:arch_move_irqs
Unexecuted instantiation: apei-io.c:arch_move_irqs
Unexecuted instantiation: vga.c:arch_move_irqs
Unexecuted instantiation: xsm_core.c:arch_move_irqs
Unexecuted instantiation: apic.c:arch_move_irqs
Unexecuted instantiation: cpuid.c:arch_move_irqs
Unexecuted instantiation: compat.c:arch_move_irqs
Unexecuted instantiation: crash.c:arch_move_irqs
Unexecuted instantiation: debug.c:arch_move_irqs
Unexecuted instantiation: domain_page.c:arch_move_irqs
Unexecuted instantiation: flushtlb.c:arch_move_irqs
Unexecuted instantiation: hypercall.c:arch_move_irqs
Unexecuted instantiation: i387.c:arch_move_irqs
Unexecuted instantiation: i8259.c:arch_move_irqs
Unexecuted instantiation: io_apic.c:arch_move_irqs
Unexecuted instantiation: msr.c:arch_move_irqs
Unexecuted instantiation: ioport_emulate.c:arch_move_irqs
Unexecuted instantiation: machine_kexec.c:arch_move_irqs
Unexecuted instantiation: microcode_amd.c:arch_move_irqs
Unexecuted instantiation: microcode_intel.c:arch_move_irqs
Unexecuted instantiation: microcode.c:arch_move_irqs
Unexecuted instantiation: mm.c:arch_move_irqs
Unexecuted instantiation: mpparse.c:arch_move_irqs
Unexecuted instantiation: mmconfig-shared.c:arch_move_irqs
Unexecuted instantiation: nmi.c:arch_move_irqs
Unexecuted instantiation: numa.c:arch_move_irqs
Unexecuted instantiation: physdev.c:arch_move_irqs
Unexecuted instantiation: platform_hypercall.c:arch_move_irqs
Unexecuted instantiation: psr.c:arch_move_irqs
Unexecuted instantiation: setup.c:arch_move_irqs
Unexecuted instantiation: smp.c:arch_move_irqs
Unexecuted instantiation: smpboot.c:arch_move_irqs
Unexecuted instantiation: traps.c:arch_move_irqs
Unexecuted instantiation: usercopy.c:arch_move_irqs
Unexecuted instantiation: x86_emulate.c:arch_move_irqs
Unexecuted instantiation: tboot.c:arch_move_irqs
Unexecuted instantiation: hpet.c:arch_move_irqs
Unexecuted instantiation: xstate.c:arch_move_irqs
Unexecuted instantiation: lib.c:arch_move_irqs
Unexecuted instantiation: power.c:arch_move_irqs
Unexecuted instantiation: suspend.c:arch_move_irqs
Unexecuted instantiation: cpu_idle.c:arch_move_irqs
Unexecuted instantiation: cpuidle_menu.c:arch_move_irqs
Unexecuted instantiation: amd.c:arch_move_irqs
Unexecuted instantiation: common.c:arch_move_irqs
Unexecuted instantiation: intel.c:arch_move_irqs
Unexecuted instantiation: mwait-idle.c:arch_move_irqs
Unexecuted instantiation: vpmu.c:arch_move_irqs
Unexecuted instantiation: vpmu_amd.c:arch_move_irqs
Unexecuted instantiation: vpmu_intel.c:arch_move_irqs
Unexecuted instantiation: amd_nonfatal.c:arch_move_irqs
Unexecuted instantiation: mce_amd.c:arch_move_irqs
Unexecuted instantiation: mcaction.c:arch_move_irqs
Unexecuted instantiation: barrier.c:arch_move_irqs
Unexecuted instantiation: mctelem.c:arch_move_irqs
Unexecuted instantiation: mce.c:arch_move_irqs
Unexecuted instantiation: mce-apei.c:arch_move_irqs
Unexecuted instantiation: mce_intel.c:arch_move_irqs
Unexecuted instantiation: non-fatal.c:arch_move_irqs
Unexecuted instantiation: util.c:arch_move_irqs
Unexecuted instantiation: vmce.c:arch_move_irqs
Unexecuted instantiation: bigsmp.c:arch_move_irqs
Unexecuted instantiation: x2apic.c:arch_move_irqs
Unexecuted instantiation: default.c:arch_move_irqs
Unexecuted instantiation: delivery.c:arch_move_irqs
Unexecuted instantiation: probe.c:arch_move_irqs
Unexecuted instantiation: asid.c:arch_move_irqs
Unexecuted instantiation: dm.c:arch_move_irqs
Unexecuted instantiation: emulate.c:arch_move_irqs
Unexecuted instantiation: hvm.c:arch_move_irqs
Unexecuted instantiation: i8254.c:arch_move_irqs
Unexecuted instantiation: intercept.c:arch_move_irqs
Unexecuted instantiation: ioreq.c:arch_move_irqs
Unexecuted instantiation: mtrr.c:arch_move_irqs
Unexecuted instantiation: nestedhvm.c:arch_move_irqs
Unexecuted instantiation: pmtimer.c:arch_move_irqs
Unexecuted instantiation: rtc.c:arch_move_irqs
Unexecuted instantiation: save.c:arch_move_irqs
Unexecuted instantiation: stdvga.c:arch_move_irqs
Unexecuted instantiation: vioapic.c:arch_move_irqs
Unexecuted instantiation: viridian.c:arch_move_irqs
Unexecuted instantiation: vlapic.c:arch_move_irqs
Unexecuted instantiation: vmsi.c:arch_move_irqs
Unexecuted instantiation: vpic.c:arch_move_irqs
Unexecuted instantiation: vpt.c:arch_move_irqs
Unexecuted instantiation: intr.c:arch_move_irqs
Unexecuted instantiation: nestedsvm.c:arch_move_irqs
Unexecuted instantiation: svm.c:arch_move_irqs
Unexecuted instantiation: svmdebug.c:arch_move_irqs
Unexecuted instantiation: vmcb.c:arch_move_irqs
Unexecuted instantiation: realmode.c:arch_move_irqs
Unexecuted instantiation: vmcs.c:arch_move_irqs
Unexecuted instantiation: vmx.c:arch_move_irqs
Unexecuted instantiation: vvmx.c:arch_move_irqs
Unexecuted instantiation: paging.c:arch_move_irqs
Unexecuted instantiation: p2m.c:arch_move_irqs
Unexecuted instantiation: p2m-pt.c:arch_move_irqs
Unexecuted instantiation: p2m-ept.c:arch_move_irqs
Unexecuted instantiation: p2m-pod.c:arch_move_irqs
Unexecuted instantiation: altp2m.c:arch_move_irqs
Unexecuted instantiation: guest_walk.c:arch_move_irqs
Unexecuted instantiation: mem_paging.c:arch_move_irqs
Unexecuted instantiation: mem_sharing.c:arch_move_irqs
Unexecuted instantiation: multi.c:arch_move_irqs
Unexecuted instantiation: hap.c:arch_move_irqs
Unexecuted instantiation: nested_hap.c:arch_move_irqs
Unexecuted instantiation: nested_ept.c:arch_move_irqs
Unexecuted instantiation: nmi_int.c:arch_move_irqs
Unexecuted instantiation: op_model_p4.c:arch_move_irqs
Unexecuted instantiation: op_model_ppro.c:arch_move_irqs
Unexecuted instantiation: op_model_athlon.c:arch_move_irqs
Unexecuted instantiation: backtrace.c:arch_move_irqs
Unexecuted instantiation: callback.c:arch_move_irqs
Unexecuted instantiation: descriptor-tables.c:arch_move_irqs
Unexecuted instantiation: emul-gate-op.c:arch_move_irqs
Unexecuted instantiation: emul-inv-op.c:arch_move_irqs
Unexecuted instantiation: emul-priv-op.c:arch_move_irqs
Unexecuted instantiation: iret.c:arch_move_irqs
Unexecuted instantiation: misc-hypercalls.c:arch_move_irqs
Unexecuted instantiation: ro-page-fault.c:arch_move_irqs
Unexecuted instantiation: acpi_mmcfg.c:arch_move_irqs
Unexecuted instantiation: mmconf-fam10h.c:arch_move_irqs
Unexecuted instantiation: cpu.c:arch_move_irqs
202
203
struct msi_info;
204
int allocate_and_map_gsi_pirq(struct domain *d, int index, int *pirq_p);
205
int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
206
                              int type, struct msi_info *msi);
207
208
#endif /* _ASM_HW_IRQ_H */