/root/src/xen/xen/include/asm/hvm/vlapic.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * hvm_vlapic.h: virtualize LAPIC definitions. |
3 | | * |
4 | | * Copyright (c) 2004, Intel Corporation. |
5 | | * Copyright (c) 2006 Keir Fraser, XenSource Inc. |
6 | | * |
7 | | * This program is free software; you can redistribute it and/or modify it |
8 | | * under the terms and conditions of the GNU General Public License, |
9 | | * version 2, as published by the Free Software Foundation. |
10 | | * |
11 | | * This program is distributed in the hope it will be useful, but WITHOUT |
12 | | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
13 | | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
14 | | * more details. |
15 | | * |
16 | | * You should have received a copy of the GNU General Public License along with |
17 | | * this program; If not, see <http://www.gnu.org/licenses/>. |
18 | | */ |
19 | | |
20 | | #ifndef __ASM_X86_HVM_VLAPIC_H__ |
21 | | #define __ASM_X86_HVM_VLAPIC_H__ |
22 | | |
23 | | #include <xen/tasklet.h> |
24 | | #include <asm/msr.h> |
25 | | #include <public/hvm/ioreq.h> |
26 | | #include <asm/hvm/vpt.h> |
27 | | |
28 | 15.6M | #define vcpu_vlapic(x) (&(x)->arch.hvm_vcpu.vlapic) |
29 | 7.10M | #define vlapic_vcpu(x) (container_of((x), struct vcpu, arch.hvm_vcpu.vlapic)) |
30 | 0 | #define const_vlapic_vcpu(x) (container_of((x), const struct vcpu, \ |
31 | 0 | arch.hvm_vcpu.vlapic)) |
32 | 309 | #define vlapic_domain(x) (vlapic_vcpu(x)->domain) |
33 | | |
34 | 101k | #define _VLAPIC_ID(vlapic, id) (vlapic_x2apic_mode(vlapic) \ |
35 | 100k | ? (id) : GET_xAPIC_ID(id)) |
36 | 50.7k | #define VLAPIC_ID(vlapic) _VLAPIC_ID(vlapic, vlapic_get_reg(vlapic, APIC_ID)) |
37 | | |
38 | | /* |
39 | | * APIC can be disabled in two ways: |
40 | | * 1. 'Hardware disable': via IA32_APIC_BASE_MSR[11] |
41 | | * CPU should behave as if it does not have an APIC. |
42 | | * 2. 'Software disable': via APIC_SPIV[8]. |
43 | | * APIC is visible but does not respond to interrupt messages. |
44 | | */ |
45 | 8.30M | #define VLAPIC_HW_DISABLED 0x1 |
46 | 85 | #define VLAPIC_SW_DISABLED 0x2 |
47 | 60 | #define vlapic_sw_disabled(vlapic) ((vlapic)->hw.disabled & VLAPIC_SW_DISABLED) |
48 | 8.30M | #define vlapic_hw_disabled(vlapic) ((vlapic)->hw.disabled & VLAPIC_HW_DISABLED) |
49 | 7.96M | #define vlapic_disabled(vlapic) ((vlapic)->hw.disabled) |
50 | 7.96M | #define vlapic_enabled(vlapic) (!vlapic_disabled(vlapic)) |
51 | | |
52 | | #define vlapic_base_address(vlapic) \ |
53 | 481k | ((vlapic)->hw.apic_base_msr & MSR_IA32_APICBASE_BASE) |
54 | | /* Only check EXTD bit as EXTD can't be set if it is disabled by hardware */ |
55 | | #define vlapic_x2apic_mode(vlapic) \ |
56 | 584k | ((vlapic)->hw.apic_base_msr & MSR_IA32_APICBASE_EXTD) |
57 | | #define vlapic_xapic_mode(vlapic) \ |
58 | | (!vlapic_hw_disabled(vlapic) && \ |
59 | | !((vlapic)->hw.apic_base_msr & MSR_IA32_APICBASE_EXTD)) |
60 | | |
61 | | /* |
62 | | * Generic APIC bitmap vector update & search routines. |
63 | | */ |
64 | | |
65 | | #define VEC_POS(v) ((v) % 32) |
66 | | #define REG_POS(v) (((v) / 32) * 0x10) |
67 | | #define vlapic_test_vector(vec, bitmap) \ |
68 | 0 | test_bit(VEC_POS(vec), (const uint32_t *)((bitmap) + REG_POS(vec))) |
69 | | #define vlapic_test_and_set_vector(vec, bitmap) \ |
70 | 0 | test_and_set_bit(VEC_POS(vec), (uint32_t *)((bitmap) + REG_POS(vec))) |
71 | | #define vlapic_test_and_clear_vector(vec, bitmap) \ |
72 | 296 | test_and_clear_bit(VEC_POS(vec), (uint32_t *)((bitmap) + REG_POS(vec))) |
73 | | #define vlapic_set_vector(vec, bitmap) \ |
74 | 4.35k | set_bit(VEC_POS(vec), (uint32_t *)((bitmap) + REG_POS(vec))) |
75 | | #define vlapic_clear_vector(vec, bitmap) \ |
76 | 0 | clear_bit(VEC_POS(vec), (uint32_t *)((bitmap) + REG_POS(vec))) |
77 | | |
78 | | struct vlapic { |
79 | | struct hvm_hw_lapic hw; |
80 | | struct hvm_hw_lapic_regs *regs; |
81 | | struct { |
82 | | bool_t hw, regs; |
83 | | uint32_t id, ldr; |
84 | | } loaded; |
85 | | spinlock_t esr_lock; |
86 | | struct periodic_time pt; |
87 | | s_time_t timer_last_update; |
88 | | struct page_info *regs_page; |
89 | | /* INIT-SIPI-SIPI work gets deferred to a tasklet. */ |
90 | | struct { |
91 | | uint32_t icr, dest; |
92 | | struct tasklet tasklet; |
93 | | } init_sipi; |
94 | | }; |
95 | | |
96 | | /* vlapic's frequence is 100 MHz */ |
97 | 12 | #define APIC_BUS_CYCLE_NS 10 |
98 | | |
99 | | static inline uint32_t vlapic_get_reg(const struct vlapic *vlapic, |
100 | | uint32_t reg) |
101 | 54.8k | { |
102 | 54.8k | return *((uint32_t *)(&vlapic->regs->data[reg])); |
103 | 54.8k | } Unexecuted instantiation: cpu.c:vlapic_get_reg Unexecuted instantiation: misc-hypercalls.c:vlapic_get_reg Unexecuted instantiation: iret.c:vlapic_get_reg Unexecuted instantiation: emul-priv-op.c:vlapic_get_reg Unexecuted instantiation: emul-inv-op.c:vlapic_get_reg Unexecuted instantiation: emul-gate-op.c:vlapic_get_reg Unexecuted instantiation: descriptor-tables.c:vlapic_get_reg Unexecuted instantiation: callback.c:vlapic_get_reg Unexecuted instantiation: backtrace.c:vlapic_get_reg Unexecuted instantiation: op_model_athlon.c:vlapic_get_reg Unexecuted instantiation: op_model_ppro.c:vlapic_get_reg Unexecuted instantiation: nmi_int.c:vlapic_get_reg Unexecuted instantiation: nested_ept.c:vlapic_get_reg Unexecuted instantiation: nested_hap.c:vlapic_get_reg Unexecuted instantiation: hap.c:vlapic_get_reg Unexecuted instantiation: multi.c:vlapic_get_reg Unexecuted instantiation: mem_sharing.c:vlapic_get_reg Unexecuted instantiation: mem_paging.c:vlapic_get_reg Unexecuted instantiation: guest_walk.c:vlapic_get_reg Unexecuted instantiation: altp2m.c:vlapic_get_reg Unexecuted instantiation: p2m-pod.c:vlapic_get_reg Unexecuted instantiation: p2m-ept.c:vlapic_get_reg Unexecuted instantiation: p2m-pt.c:vlapic_get_reg Unexecuted instantiation: p2m.c:vlapic_get_reg Unexecuted instantiation: paging.c:vlapic_get_reg Unexecuted instantiation: vvmx.c:vlapic_get_reg Unexecuted instantiation: vmx.c:vlapic_get_reg Unexecuted instantiation: vmcs.c:vlapic_get_reg Unexecuted instantiation: realmode.c:vlapic_get_reg Unexecuted instantiation: vmcb.c:vlapic_get_reg Unexecuted instantiation: svmdebug.c:vlapic_get_reg Unexecuted instantiation: svm.c:vlapic_get_reg Unexecuted instantiation: nestedsvm.c:vlapic_get_reg Unexecuted instantiation: intr.c:vlapic_get_reg Unexecuted instantiation: vpt.c:vlapic_get_reg Unexecuted instantiation: vpic.c:vlapic_get_reg Unexecuted instantiation: vmsi.c:vlapic_get_reg Line | Count | Source | 101 | 50.8k | { | 102 | 50.8k | return *((uint32_t *)(&vlapic->regs->data[reg])); | 103 | 50.8k | } |
Unexecuted instantiation: viridian.c:vlapic_get_reg Unexecuted instantiation: vioapic.c:vlapic_get_reg Unexecuted instantiation: stdvga.c:vlapic_get_reg Unexecuted instantiation: save.c:vlapic_get_reg Unexecuted instantiation: rtc.c:vlapic_get_reg Unexecuted instantiation: pmtimer.c:vlapic_get_reg Unexecuted instantiation: nestedhvm.c:vlapic_get_reg Unexecuted instantiation: mtrr.c:vlapic_get_reg Unexecuted instantiation: ioreq.c:vlapic_get_reg Unexecuted instantiation: intercept.c:vlapic_get_reg Unexecuted instantiation: i8254.c:vlapic_get_reg Line | Count | Source | 101 | 4.07k | { | 102 | 4.07k | return *((uint32_t *)(&vlapic->regs->data[reg])); | 103 | 4.07k | } |
Unexecuted instantiation: hpet.c:vlapic_get_reg Unexecuted instantiation: emulate.c:vlapic_get_reg Unexecuted instantiation: dm.c:vlapic_get_reg Unexecuted instantiation: asid.c:vlapic_get_reg Unexecuted instantiation: delivery.c:vlapic_get_reg Unexecuted instantiation: vmce.c:vlapic_get_reg Unexecuted instantiation: util.c:vlapic_get_reg Unexecuted instantiation: non-fatal.c:vlapic_get_reg Unexecuted instantiation: mce_intel.c:vlapic_get_reg Unexecuted instantiation: mce-apei.c:vlapic_get_reg Unexecuted instantiation: mce.c:vlapic_get_reg Unexecuted instantiation: mctelem.c:vlapic_get_reg Unexecuted instantiation: barrier.c:vlapic_get_reg Unexecuted instantiation: mcaction.c:vlapic_get_reg Unexecuted instantiation: mce_amd.c:vlapic_get_reg Unexecuted instantiation: amd_nonfatal.c:vlapic_get_reg Unexecuted instantiation: vpmu_intel.c:vlapic_get_reg Unexecuted instantiation: vpmu_amd.c:vlapic_get_reg Unexecuted instantiation: vpmu.c:vlapic_get_reg Unexecuted instantiation: mwait-idle.c:vlapic_get_reg Unexecuted instantiation: intel.c:vlapic_get_reg Unexecuted instantiation: common.c:vlapic_get_reg Unexecuted instantiation: amd.c:vlapic_get_reg Unexecuted instantiation: cpu_idle.c:vlapic_get_reg Unexecuted instantiation: suspend.c:vlapic_get_reg Unexecuted instantiation: power.c:vlapic_get_reg Unexecuted instantiation: xstate.c:vlapic_get_reg Unexecuted instantiation: tboot.c:vlapic_get_reg Unexecuted instantiation: x86_emulate.c:vlapic_get_reg Unexecuted instantiation: usercopy.c:vlapic_get_reg Unexecuted instantiation: traps.c:vlapic_get_reg Unexecuted instantiation: smpboot.c:vlapic_get_reg Unexecuted instantiation: smp.c:vlapic_get_reg Unexecuted instantiation: setup.c:vlapic_get_reg Unexecuted instantiation: psr.c:vlapic_get_reg Unexecuted instantiation: platform_hypercall.c:vlapic_get_reg Unexecuted instantiation: physdev.c:vlapic_get_reg Unexecuted instantiation: numa.c:vlapic_get_reg Unexecuted instantiation: nmi.c:vlapic_get_reg Unexecuted instantiation: mpparse.c:vlapic_get_reg Unexecuted instantiation: mm.c:vlapic_get_reg Unexecuted instantiation: microcode.c:vlapic_get_reg Unexecuted instantiation: microcode_intel.c:vlapic_get_reg Unexecuted instantiation: microcode_amd.c:vlapic_get_reg Unexecuted instantiation: machine_kexec.c:vlapic_get_reg Unexecuted instantiation: irq.c:vlapic_get_reg Unexecuted instantiation: ioport_emulate.c:vlapic_get_reg Unexecuted instantiation: msr.c:vlapic_get_reg Unexecuted instantiation: io_apic.c:vlapic_get_reg Unexecuted instantiation: i8259.c:vlapic_get_reg Unexecuted instantiation: i387.c:vlapic_get_reg Unexecuted instantiation: hypercall.c:vlapic_get_reg Unexecuted instantiation: flushtlb.c:vlapic_get_reg Unexecuted instantiation: domain_page.c:vlapic_get_reg Unexecuted instantiation: debug.c:vlapic_get_reg Unexecuted instantiation: crash.c:vlapic_get_reg Unexecuted instantiation: compat.c:vlapic_get_reg Unexecuted instantiation: cpuid.c:vlapic_get_reg Unexecuted instantiation: apic.c:vlapic_get_reg Unexecuted instantiation: xsm_core.c:vlapic_get_reg Unexecuted instantiation: pmstat.c:vlapic_get_reg Unexecuted instantiation: iommu_guest.c:vlapic_get_reg Unexecuted instantiation: iommu_cmd.c:vlapic_get_reg Unexecuted instantiation: iommu_intr.c:vlapic_get_reg Unexecuted instantiation: pci_amd_iommu.c:vlapic_get_reg Unexecuted instantiation: iommu_map.c:vlapic_get_reg Unexecuted instantiation: iommu_init.c:vlapic_get_reg Unexecuted instantiation: ats.c:vlapic_get_reg Unexecuted instantiation: vtd.c:vlapic_get_reg Unexecuted instantiation: quirks.c:vlapic_get_reg Unexecuted instantiation: intremap.c:vlapic_get_reg Unexecuted instantiation: qinval.c:vlapic_get_reg Unexecuted instantiation: utils.c:vlapic_get_reg Unexecuted instantiation: pci.c:vlapic_get_reg Unexecuted instantiation: io.c:vlapic_get_reg Unexecuted instantiation: iommu.c:vlapic_get_reg Unexecuted instantiation: msix.c:vlapic_get_reg Unexecuted instantiation: msi.c:vlapic_get_reg Unexecuted instantiation: header.c:vlapic_get_reg Unexecuted instantiation: vpci.c:vlapic_get_reg Unexecuted instantiation: utility.c:vlapic_get_reg Unexecuted instantiation: cpufreq_misc_governors.c:vlapic_get_reg Unexecuted instantiation: cpufreq_ondemand.c:vlapic_get_reg Unexecuted instantiation: cpufreq.c:vlapic_get_reg Unexecuted instantiation: ns16550.c:vlapic_get_reg Unexecuted instantiation: console.c:vlapic_get_reg Unexecuted instantiation: libelf-loader.c:vlapic_get_reg Unexecuted instantiation: llvm.c:vlapic_get_reg Unexecuted instantiation: tmem_control.c:vlapic_get_reg Unexecuted instantiation: tmem_xen.c:vlapic_get_reg Unexecuted instantiation: tmem.c:vlapic_get_reg Unexecuted instantiation: xenoprof.c:vlapic_get_reg Unexecuted instantiation: wait.c:vlapic_get_reg Unexecuted instantiation: vsprintf.c:vlapic_get_reg Unexecuted instantiation: vm_event.c:vlapic_get_reg Unexecuted instantiation: trace.c:vlapic_get_reg Unexecuted instantiation: timer.c:vlapic_get_reg Unexecuted instantiation: time.c:vlapic_get_reg Unexecuted instantiation: tasklet.c:vlapic_get_reg Unexecuted instantiation: sysctl.c:vlapic_get_reg Unexecuted instantiation: symbols.c:vlapic_get_reg Unexecuted instantiation: stop_machine.c:vlapic_get_reg Unexecuted instantiation: spinlock.c:vlapic_get_reg Unexecuted instantiation: softirq.c:vlapic_get_reg Unexecuted instantiation: shutdown.c:vlapic_get_reg Unexecuted instantiation: schedule.c:vlapic_get_reg Unexecuted instantiation: sched_null.c:vlapic_get_reg Unexecuted instantiation: sched_rt.c:vlapic_get_reg Unexecuted instantiation: sched_credit2.c:vlapic_get_reg Unexecuted instantiation: sched_credit.c:vlapic_get_reg Unexecuted instantiation: sched_arinc653.c:vlapic_get_reg Unexecuted instantiation: rcupdate.c:vlapic_get_reg Unexecuted instantiation: rangeset.c:vlapic_get_reg Unexecuted instantiation: page_alloc.c:vlapic_get_reg Unexecuted instantiation: multicall.c:vlapic_get_reg Unexecuted instantiation: monitor.c:vlapic_get_reg Unexecuted instantiation: memory.c:vlapic_get_reg Unexecuted instantiation: mem_access.c:vlapic_get_reg Unexecuted instantiation: kimage.c:vlapic_get_reg Unexecuted instantiation: kexec.c:vlapic_get_reg Unexecuted instantiation: keyhandler.c:vlapic_get_reg Unexecuted instantiation: kernel.c:vlapic_get_reg Unexecuted instantiation: guestcopy.c:vlapic_get_reg Unexecuted instantiation: grant_table.c:vlapic_get_reg Unexecuted instantiation: event_fifo.c:vlapic_get_reg Unexecuted instantiation: event_channel.c:vlapic_get_reg Unexecuted instantiation: event_2l.c:vlapic_get_reg Unexecuted instantiation: domain.c:vlapic_get_reg Unexecuted instantiation: domctl.c:vlapic_get_reg Unexecuted instantiation: cpupool.c:vlapic_get_reg Unexecuted instantiation: ro-page-fault.c:vlapic_get_reg |
104 | | |
105 | | static inline void vlapic_set_reg( |
106 | | struct vlapic *vlapic, uint32_t reg, uint32_t val) |
107 | 672 | { |
108 | 672 | *((uint32_t *)(&vlapic->regs->data[reg])) = val; |
109 | 672 | } Unexecuted instantiation: ro-page-fault.c:vlapic_set_reg Unexecuted instantiation: misc-hypercalls.c:vlapic_set_reg Unexecuted instantiation: iret.c:vlapic_set_reg Unexecuted instantiation: emul-priv-op.c:vlapic_set_reg Unexecuted instantiation: emul-inv-op.c:vlapic_set_reg Unexecuted instantiation: emul-gate-op.c:vlapic_set_reg Unexecuted instantiation: descriptor-tables.c:vlapic_set_reg Unexecuted instantiation: callback.c:vlapic_set_reg Unexecuted instantiation: backtrace.c:vlapic_set_reg Unexecuted instantiation: op_model_athlon.c:vlapic_set_reg Unexecuted instantiation: op_model_ppro.c:vlapic_set_reg Unexecuted instantiation: nmi_int.c:vlapic_set_reg Unexecuted instantiation: nested_ept.c:vlapic_set_reg Unexecuted instantiation: nested_hap.c:vlapic_set_reg Unexecuted instantiation: hap.c:vlapic_set_reg Unexecuted instantiation: multi.c:vlapic_set_reg Unexecuted instantiation: mem_sharing.c:vlapic_set_reg Unexecuted instantiation: mem_paging.c:vlapic_set_reg Unexecuted instantiation: guest_walk.c:vlapic_set_reg Unexecuted instantiation: altp2m.c:vlapic_set_reg Unexecuted instantiation: p2m-pod.c:vlapic_set_reg Unexecuted instantiation: p2m-ept.c:vlapic_set_reg Unexecuted instantiation: p2m-pt.c:vlapic_set_reg Unexecuted instantiation: p2m.c:vlapic_set_reg Unexecuted instantiation: paging.c:vlapic_set_reg Unexecuted instantiation: vvmx.c:vlapic_set_reg Unexecuted instantiation: vmx.c:vlapic_set_reg Unexecuted instantiation: vmcs.c:vlapic_set_reg Unexecuted instantiation: realmode.c:vlapic_set_reg Unexecuted instantiation: vmcb.c:vlapic_set_reg Unexecuted instantiation: svmdebug.c:vlapic_set_reg Unexecuted instantiation: svm.c:vlapic_set_reg Unexecuted instantiation: nestedsvm.c:vlapic_set_reg Unexecuted instantiation: intr.c:vlapic_set_reg Unexecuted instantiation: vpt.c:vlapic_set_reg Unexecuted instantiation: vpic.c:vlapic_set_reg Unexecuted instantiation: vmsi.c:vlapic_set_reg Line | Count | Source | 107 | 672 | { | 108 | 672 | *((uint32_t *)(&vlapic->regs->data[reg])) = val; | 109 | 672 | } |
Unexecuted instantiation: viridian.c:vlapic_set_reg Unexecuted instantiation: vioapic.c:vlapic_set_reg Unexecuted instantiation: stdvga.c:vlapic_set_reg Unexecuted instantiation: save.c:vlapic_set_reg Unexecuted instantiation: rtc.c:vlapic_set_reg Unexecuted instantiation: pmtimer.c:vlapic_set_reg Unexecuted instantiation: nestedhvm.c:vlapic_set_reg Unexecuted instantiation: mtrr.c:vlapic_set_reg Unexecuted instantiation: ioreq.c:vlapic_set_reg Unexecuted instantiation: intercept.c:vlapic_set_reg Unexecuted instantiation: i8254.c:vlapic_set_reg Unexecuted instantiation: hvm.c:vlapic_set_reg Unexecuted instantiation: hpet.c:vlapic_set_reg Unexecuted instantiation: emulate.c:vlapic_set_reg Unexecuted instantiation: dm.c:vlapic_set_reg Unexecuted instantiation: asid.c:vlapic_set_reg Unexecuted instantiation: delivery.c:vlapic_set_reg Unexecuted instantiation: vmce.c:vlapic_set_reg Unexecuted instantiation: util.c:vlapic_set_reg Unexecuted instantiation: non-fatal.c:vlapic_set_reg Unexecuted instantiation: mce_intel.c:vlapic_set_reg Unexecuted instantiation: mce-apei.c:vlapic_set_reg Unexecuted instantiation: mce.c:vlapic_set_reg Unexecuted instantiation: mctelem.c:vlapic_set_reg Unexecuted instantiation: barrier.c:vlapic_set_reg Unexecuted instantiation: mcaction.c:vlapic_set_reg Unexecuted instantiation: mce_amd.c:vlapic_set_reg Unexecuted instantiation: amd_nonfatal.c:vlapic_set_reg Unexecuted instantiation: vpmu_intel.c:vlapic_set_reg Unexecuted instantiation: vpmu_amd.c:vlapic_set_reg Unexecuted instantiation: vpmu.c:vlapic_set_reg Unexecuted instantiation: mwait-idle.c:vlapic_set_reg Unexecuted instantiation: intel.c:vlapic_set_reg Unexecuted instantiation: common.c:vlapic_set_reg Unexecuted instantiation: amd.c:vlapic_set_reg Unexecuted instantiation: cpu_idle.c:vlapic_set_reg Unexecuted instantiation: suspend.c:vlapic_set_reg Unexecuted instantiation: power.c:vlapic_set_reg Unexecuted instantiation: xstate.c:vlapic_set_reg Unexecuted instantiation: tboot.c:vlapic_set_reg Unexecuted instantiation: x86_emulate.c:vlapic_set_reg Unexecuted instantiation: usercopy.c:vlapic_set_reg Unexecuted instantiation: traps.c:vlapic_set_reg Unexecuted instantiation: smpboot.c:vlapic_set_reg Unexecuted instantiation: smp.c:vlapic_set_reg Unexecuted instantiation: setup.c:vlapic_set_reg Unexecuted instantiation: psr.c:vlapic_set_reg Unexecuted instantiation: platform_hypercall.c:vlapic_set_reg Unexecuted instantiation: physdev.c:vlapic_set_reg Unexecuted instantiation: numa.c:vlapic_set_reg Unexecuted instantiation: nmi.c:vlapic_set_reg Unexecuted instantiation: mpparse.c:vlapic_set_reg Unexecuted instantiation: mm.c:vlapic_set_reg Unexecuted instantiation: microcode.c:vlapic_set_reg Unexecuted instantiation: microcode_intel.c:vlapic_set_reg Unexecuted instantiation: microcode_amd.c:vlapic_set_reg Unexecuted instantiation: machine_kexec.c:vlapic_set_reg Unexecuted instantiation: irq.c:vlapic_set_reg Unexecuted instantiation: ioport_emulate.c:vlapic_set_reg Unexecuted instantiation: msr.c:vlapic_set_reg Unexecuted instantiation: io_apic.c:vlapic_set_reg Unexecuted instantiation: i8259.c:vlapic_set_reg Unexecuted instantiation: i387.c:vlapic_set_reg Unexecuted instantiation: hypercall.c:vlapic_set_reg Unexecuted instantiation: flushtlb.c:vlapic_set_reg Unexecuted instantiation: domain_page.c:vlapic_set_reg Unexecuted instantiation: debug.c:vlapic_set_reg Unexecuted instantiation: crash.c:vlapic_set_reg Unexecuted instantiation: compat.c:vlapic_set_reg Unexecuted instantiation: cpuid.c:vlapic_set_reg Unexecuted instantiation: apic.c:vlapic_set_reg Unexecuted instantiation: xsm_core.c:vlapic_set_reg Unexecuted instantiation: pmstat.c:vlapic_set_reg Unexecuted instantiation: iommu_guest.c:vlapic_set_reg Unexecuted instantiation: iommu_cmd.c:vlapic_set_reg Unexecuted instantiation: iommu_intr.c:vlapic_set_reg Unexecuted instantiation: pci_amd_iommu.c:vlapic_set_reg Unexecuted instantiation: iommu_map.c:vlapic_set_reg Unexecuted instantiation: iommu_init.c:vlapic_set_reg Unexecuted instantiation: ats.c:vlapic_set_reg Unexecuted instantiation: vtd.c:vlapic_set_reg Unexecuted instantiation: quirks.c:vlapic_set_reg Unexecuted instantiation: intremap.c:vlapic_set_reg Unexecuted instantiation: qinval.c:vlapic_set_reg Unexecuted instantiation: utils.c:vlapic_set_reg Unexecuted instantiation: pci.c:vlapic_set_reg Unexecuted instantiation: io.c:vlapic_set_reg Unexecuted instantiation: iommu.c:vlapic_set_reg Unexecuted instantiation: msix.c:vlapic_set_reg Unexecuted instantiation: msi.c:vlapic_set_reg Unexecuted instantiation: header.c:vlapic_set_reg Unexecuted instantiation: vpci.c:vlapic_set_reg Unexecuted instantiation: utility.c:vlapic_set_reg Unexecuted instantiation: cpufreq_misc_governors.c:vlapic_set_reg Unexecuted instantiation: cpufreq_ondemand.c:vlapic_set_reg Unexecuted instantiation: cpufreq.c:vlapic_set_reg Unexecuted instantiation: ns16550.c:vlapic_set_reg Unexecuted instantiation: console.c:vlapic_set_reg Unexecuted instantiation: libelf-loader.c:vlapic_set_reg Unexecuted instantiation: llvm.c:vlapic_set_reg Unexecuted instantiation: tmem_control.c:vlapic_set_reg Unexecuted instantiation: tmem_xen.c:vlapic_set_reg Unexecuted instantiation: tmem.c:vlapic_set_reg Unexecuted instantiation: xenoprof.c:vlapic_set_reg Unexecuted instantiation: wait.c:vlapic_set_reg Unexecuted instantiation: vsprintf.c:vlapic_set_reg Unexecuted instantiation: vm_event.c:vlapic_set_reg Unexecuted instantiation: trace.c:vlapic_set_reg Unexecuted instantiation: timer.c:vlapic_set_reg Unexecuted instantiation: time.c:vlapic_set_reg Unexecuted instantiation: tasklet.c:vlapic_set_reg Unexecuted instantiation: sysctl.c:vlapic_set_reg Unexecuted instantiation: symbols.c:vlapic_set_reg Unexecuted instantiation: stop_machine.c:vlapic_set_reg Unexecuted instantiation: spinlock.c:vlapic_set_reg Unexecuted instantiation: softirq.c:vlapic_set_reg Unexecuted instantiation: shutdown.c:vlapic_set_reg Unexecuted instantiation: schedule.c:vlapic_set_reg Unexecuted instantiation: sched_null.c:vlapic_set_reg Unexecuted instantiation: sched_rt.c:vlapic_set_reg Unexecuted instantiation: sched_credit2.c:vlapic_set_reg Unexecuted instantiation: sched_credit.c:vlapic_set_reg Unexecuted instantiation: sched_arinc653.c:vlapic_set_reg Unexecuted instantiation: rcupdate.c:vlapic_set_reg Unexecuted instantiation: rangeset.c:vlapic_set_reg Unexecuted instantiation: page_alloc.c:vlapic_set_reg Unexecuted instantiation: multicall.c:vlapic_set_reg Unexecuted instantiation: monitor.c:vlapic_set_reg Unexecuted instantiation: memory.c:vlapic_set_reg Unexecuted instantiation: mem_access.c:vlapic_set_reg Unexecuted instantiation: kimage.c:vlapic_set_reg Unexecuted instantiation: kexec.c:vlapic_set_reg Unexecuted instantiation: keyhandler.c:vlapic_set_reg Unexecuted instantiation: kernel.c:vlapic_set_reg Unexecuted instantiation: guestcopy.c:vlapic_set_reg Unexecuted instantiation: grant_table.c:vlapic_set_reg Unexecuted instantiation: event_fifo.c:vlapic_set_reg Unexecuted instantiation: event_channel.c:vlapic_set_reg Unexecuted instantiation: event_2l.c:vlapic_set_reg Unexecuted instantiation: domain.c:vlapic_set_reg Unexecuted instantiation: domctl.c:vlapic_set_reg Unexecuted instantiation: cpupool.c:vlapic_set_reg Unexecuted instantiation: cpu.c:vlapic_set_reg |
110 | | |
111 | | bool_t is_vlapic_lvtpc_enabled(struct vlapic *vlapic); |
112 | | |
113 | | void vlapic_set_irq(struct vlapic *vlapic, uint8_t vec, uint8_t trig); |
114 | | |
115 | | int vlapic_has_pending_irq(struct vcpu *v); |
116 | | int vlapic_ack_pending_irq(struct vcpu *v, int vector, bool_t force_ack); |
117 | | |
118 | | int vlapic_init(struct vcpu *v); |
119 | | void vlapic_destroy(struct vcpu *v); |
120 | | |
121 | | void vlapic_reset(struct vlapic *vlapic); |
122 | | |
123 | | bool_t vlapic_msr_set(struct vlapic *vlapic, uint64_t value); |
124 | | void vlapic_tdt_msr_set(struct vlapic *vlapic, uint64_t value); |
125 | | uint64_t vlapic_tdt_msr_get(struct vlapic *vlapic); |
126 | | |
127 | | int vlapic_accept_pic_intr(struct vcpu *v); |
128 | | uint32_t vlapic_set_ppr(struct vlapic *vlapic); |
129 | | |
130 | | void vlapic_adjust_i8259_target(struct domain *d); |
131 | | |
132 | | void vlapic_EOI_set(struct vlapic *vlapic); |
133 | | void vlapic_handle_EOI(struct vlapic *vlapic, u8 vector); |
134 | | |
135 | | void vlapic_ipi(struct vlapic *vlapic, uint32_t icr_low, uint32_t icr_high); |
136 | | |
137 | | int vlapic_apicv_write(struct vcpu *v, unsigned int offset); |
138 | | |
139 | | struct vlapic *vlapic_lowest_prio( |
140 | | struct domain *d, const struct vlapic *source, |
141 | | int short_hand, uint32_t dest, bool_t dest_mode); |
142 | | |
143 | | bool_t vlapic_match_dest( |
144 | | const struct vlapic *target, const struct vlapic *source, |
145 | | int short_hand, uint32_t dest, bool_t dest_mode); |
146 | | |
147 | | #endif /* __ASM_X86_HVM_VLAPIC_H__ */ |