/root/src/xen/xen/include/asm/apic.h
Line | Count | Source (jump to first uncovered line) |
1 | | #ifndef __ASM_APIC_H |
2 | | #define __ASM_APIC_H |
3 | | |
4 | | #include <asm/apicdef.h> |
5 | | #include <asm/fixmap.h> |
6 | | #include <asm/msr.h> |
7 | | |
8 | 186 | #define Dprintk(x...) do {} while (0) |
9 | | |
10 | | /* |
11 | | * Debugging macros |
12 | | */ |
13 | 1 | #define APIC_QUIET 0 |
14 | 0 | #define APIC_VERBOSE 1 |
15 | 0 | #define APIC_DEBUG 2 |
16 | | |
17 | 0 | #define SET_APIC_LOGICAL_ID(x) (((x)<<24)) |
18 | | |
19 | | #define IO_APIC_REDIR_VECTOR_MASK 0x000FF |
20 | | #define IO_APIC_REDIR_DEST_LOGICAL 0x00800 |
21 | | #define IO_APIC_REDIR_DEST_PHYSICAL 0x00000 |
22 | | |
23 | | /* Possible APIC states */ |
24 | | enum apic_mode { |
25 | | APIC_MODE_INVALID, /* Not set yet */ |
26 | | APIC_MODE_DISABLED, /* If uniprocessor, or MP in uniprocessor mode */ |
27 | | APIC_MODE_XAPIC, /* xAPIC mode - default upon chipset reset */ |
28 | | APIC_MODE_X2APIC /* x2APIC mode - common for large MP machines */ |
29 | | }; |
30 | | |
31 | | extern u8 apic_verbosity; |
32 | | extern bool x2apic_enabled; |
33 | | extern bool directed_eoi_enabled; |
34 | | |
35 | | void check_x2apic_preenabled(void); |
36 | | void x2apic_bsp_setup(void); |
37 | | void x2apic_ap_setup(void); |
38 | | const struct genapic *apic_x2apic_probe(void); |
39 | | |
40 | | /* |
41 | | * Define the default level of output to be very little |
42 | | * This can be turned up by using apic=verbose for more |
43 | | * information and apic=debug for _lots_ of information. |
44 | | * apic_verbosity is defined in apic.c |
45 | | */ |
46 | 79 | #define apic_printk(v, s, a...) do { \ |
47 | 79 | if ((v) <= apic_verbosity) \ |
48 | 0 | printk(s, ##a); \ |
49 | 79 | } while (0) |
50 | | |
51 | | |
52 | | /* |
53 | | * Basic functions accessing APICs. |
54 | | */ |
55 | | |
56 | | static __inline void apic_mem_write(unsigned long reg, u32 v) |
57 | 0 | { |
58 | 0 | *((volatile u32 *)(APIC_BASE+reg)) = v; |
59 | 0 | } Unexecuted instantiation: iommu.c:apic_mem_write Unexecuted instantiation: intremap.c:apic_mem_write Unexecuted instantiation: quirks.c:apic_mem_write Unexecuted instantiation: iommu_init.c:apic_mem_write Unexecuted instantiation: apic.c:apic_mem_write Unexecuted instantiation: crash.c:apic_mem_write Unexecuted instantiation: i8259.c:apic_mem_write Unexecuted instantiation: io_apic.c:apic_mem_write Unexecuted instantiation: msi.c:apic_mem_write Unexecuted instantiation: irq.c:apic_mem_write Unexecuted instantiation: mpparse.c:apic_mem_write Unexecuted instantiation: nmi.c:apic_mem_write Unexecuted instantiation: setup.c:apic_mem_write Unexecuted instantiation: shutdown.c:apic_mem_write Unexecuted instantiation: smp.c:apic_mem_write Unexecuted instantiation: smpboot.c:apic_mem_write Unexecuted instantiation: traps.c:apic_mem_write Unexecuted instantiation: hpet.c:apic_mem_write Unexecuted instantiation: lib.c:apic_mem_write Unexecuted instantiation: power.c:apic_mem_write Unexecuted instantiation: cpu_idle.c:apic_mem_write Unexecuted instantiation: amd.c:apic_mem_write Unexecuted instantiation: common.c:apic_mem_write Unexecuted instantiation: intel.c:apic_mem_write Unexecuted instantiation: vpmu.c:apic_mem_write Unexecuted instantiation: vpmu_amd.c:apic_mem_write Unexecuted instantiation: vpmu_intel.c:apic_mem_write Unexecuted instantiation: mce.c:apic_mem_write Unexecuted instantiation: mce_intel.c:apic_mem_write Unexecuted instantiation: x2apic.c:apic_mem_write Unexecuted instantiation: delivery.c:apic_mem_write Unexecuted instantiation: probe.c:apic_mem_write Unexecuted instantiation: hvm.c:apic_mem_write Unexecuted instantiation: io.c:apic_mem_write Unexecuted instantiation: viridian.c:apic_mem_write Unexecuted instantiation: vlapic.c:apic_mem_write Unexecuted instantiation: vpt.c:apic_mem_write Unexecuted instantiation: svm.c:apic_mem_write Unexecuted instantiation: vmcs.c:apic_mem_write Unexecuted instantiation: vmx.c:apic_mem_write Unexecuted instantiation: nmi_int.c:apic_mem_write Unexecuted instantiation: op_model_p4.c:apic_mem_write Unexecuted instantiation: op_model_ppro.c:apic_mem_write Unexecuted instantiation: op_model_athlon.c:apic_mem_write Unexecuted instantiation: emul-gate-op.c:apic_mem_write Unexecuted instantiation: emul-inv-op.c:apic_mem_write Unexecuted instantiation: emul-priv-op.c:apic_mem_write Unexecuted instantiation: acpi_mmcfg.c:apic_mem_write |
60 | | |
61 | | static __inline void apic_mem_write_atomic(unsigned long reg, u32 v) |
62 | 0 | { |
63 | 0 | (void)xchg((volatile u32 *)(APIC_BASE+reg), v); |
64 | 0 | } Unexecuted instantiation: vpmu.c:apic_mem_write_atomic Unexecuted instantiation: iommu.c:apic_mem_write_atomic Unexecuted instantiation: intremap.c:apic_mem_write_atomic Unexecuted instantiation: quirks.c:apic_mem_write_atomic Unexecuted instantiation: iommu_init.c:apic_mem_write_atomic Unexecuted instantiation: apic.c:apic_mem_write_atomic Unexecuted instantiation: crash.c:apic_mem_write_atomic Unexecuted instantiation: i8259.c:apic_mem_write_atomic Unexecuted instantiation: io_apic.c:apic_mem_write_atomic Unexecuted instantiation: msi.c:apic_mem_write_atomic Unexecuted instantiation: irq.c:apic_mem_write_atomic Unexecuted instantiation: mpparse.c:apic_mem_write_atomic Unexecuted instantiation: nmi.c:apic_mem_write_atomic Unexecuted instantiation: setup.c:apic_mem_write_atomic Unexecuted instantiation: shutdown.c:apic_mem_write_atomic Unexecuted instantiation: smp.c:apic_mem_write_atomic Unexecuted instantiation: smpboot.c:apic_mem_write_atomic Unexecuted instantiation: traps.c:apic_mem_write_atomic Unexecuted instantiation: hpet.c:apic_mem_write_atomic Unexecuted instantiation: lib.c:apic_mem_write_atomic Unexecuted instantiation: power.c:apic_mem_write_atomic Unexecuted instantiation: cpu_idle.c:apic_mem_write_atomic Unexecuted instantiation: amd.c:apic_mem_write_atomic Unexecuted instantiation: common.c:apic_mem_write_atomic Unexecuted instantiation: intel.c:apic_mem_write_atomic Unexecuted instantiation: vpmu_amd.c:apic_mem_write_atomic Unexecuted instantiation: vpmu_intel.c:apic_mem_write_atomic Unexecuted instantiation: mce.c:apic_mem_write_atomic Unexecuted instantiation: mce_intel.c:apic_mem_write_atomic Unexecuted instantiation: x2apic.c:apic_mem_write_atomic Unexecuted instantiation: delivery.c:apic_mem_write_atomic Unexecuted instantiation: probe.c:apic_mem_write_atomic Unexecuted instantiation: hvm.c:apic_mem_write_atomic Unexecuted instantiation: io.c:apic_mem_write_atomic Unexecuted instantiation: viridian.c:apic_mem_write_atomic Unexecuted instantiation: vlapic.c:apic_mem_write_atomic Unexecuted instantiation: vpt.c:apic_mem_write_atomic Unexecuted instantiation: svm.c:apic_mem_write_atomic Unexecuted instantiation: vmcs.c:apic_mem_write_atomic Unexecuted instantiation: vmx.c:apic_mem_write_atomic Unexecuted instantiation: nmi_int.c:apic_mem_write_atomic Unexecuted instantiation: op_model_p4.c:apic_mem_write_atomic Unexecuted instantiation: op_model_ppro.c:apic_mem_write_atomic Unexecuted instantiation: op_model_athlon.c:apic_mem_write_atomic Unexecuted instantiation: emul-gate-op.c:apic_mem_write_atomic Unexecuted instantiation: emul-inv-op.c:apic_mem_write_atomic Unexecuted instantiation: emul-priv-op.c:apic_mem_write_atomic Unexecuted instantiation: acpi_mmcfg.c:apic_mem_write_atomic |
65 | | |
66 | | static __inline u32 apic_mem_read(unsigned long reg) |
67 | 15 | { |
68 | 15 | return *((volatile u32 *)(APIC_BASE+reg)); |
69 | 15 | } Unexecuted instantiation: iommu.c:apic_mem_read Unexecuted instantiation: emul-priv-op.c:apic_mem_read Unexecuted instantiation: emul-inv-op.c:apic_mem_read Unexecuted instantiation: emul-gate-op.c:apic_mem_read Unexecuted instantiation: op_model_athlon.c:apic_mem_read Unexecuted instantiation: op_model_ppro.c:apic_mem_read Unexecuted instantiation: op_model_p4.c:apic_mem_read Unexecuted instantiation: nmi_int.c:apic_mem_read Unexecuted instantiation: vmx.c:apic_mem_read Unexecuted instantiation: vmcs.c:apic_mem_read Unexecuted instantiation: svm.c:apic_mem_read Unexecuted instantiation: vpt.c:apic_mem_read Unexecuted instantiation: vlapic.c:apic_mem_read Unexecuted instantiation: viridian.c:apic_mem_read Unexecuted instantiation: io.c:apic_mem_read Unexecuted instantiation: hvm.c:apic_mem_read Unexecuted instantiation: probe.c:apic_mem_read Unexecuted instantiation: delivery.c:apic_mem_read Line | Count | Source | 67 | 1 | { | 68 | 1 | return *((volatile u32 *)(APIC_BASE+reg)); | 69 | 1 | } |
Unexecuted instantiation: mce_intel.c:apic_mem_read Unexecuted instantiation: mce.c:apic_mem_read Unexecuted instantiation: vpmu_intel.c:apic_mem_read Unexecuted instantiation: vpmu_amd.c:apic_mem_read Unexecuted instantiation: vpmu.c:apic_mem_read Unexecuted instantiation: intel.c:apic_mem_read Unexecuted instantiation: common.c:apic_mem_read Unexecuted instantiation: amd.c:apic_mem_read Unexecuted instantiation: cpu_idle.c:apic_mem_read Unexecuted instantiation: power.c:apic_mem_read Unexecuted instantiation: lib.c:apic_mem_read Unexecuted instantiation: hpet.c:apic_mem_read Unexecuted instantiation: traps.c:apic_mem_read Unexecuted instantiation: smpboot.c:apic_mem_read Unexecuted instantiation: smp.c:apic_mem_read Unexecuted instantiation: shutdown.c:apic_mem_read Unexecuted instantiation: setup.c:apic_mem_read Unexecuted instantiation: nmi.c:apic_mem_read Line | Count | Source | 67 | 13 | { | 68 | 13 | return *((volatile u32 *)(APIC_BASE+reg)); | 69 | 13 | } |
Unexecuted instantiation: irq.c:apic_mem_read Unexecuted instantiation: msi.c:apic_mem_read Unexecuted instantiation: io_apic.c:apic_mem_read Unexecuted instantiation: i8259.c:apic_mem_read Unexecuted instantiation: crash.c:apic_mem_read Line | Count | Source | 67 | 1 | { | 68 | 1 | return *((volatile u32 *)(APIC_BASE+reg)); | 69 | 1 | } |
Unexecuted instantiation: iommu_init.c:apic_mem_read Unexecuted instantiation: quirks.c:apic_mem_read Unexecuted instantiation: intremap.c:apic_mem_read Unexecuted instantiation: acpi_mmcfg.c:apic_mem_read |
70 | | |
71 | | /* NOTE: in x2APIC mode, we should use apic_icr_write()/apic_icr_read() to |
72 | | * access the 64-bit ICR register. |
73 | | */ |
74 | | |
75 | | static __inline void apic_wrmsr(unsigned long reg, uint64_t msr_content) |
76 | 2.28M | { |
77 | 2.29M | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || |
78 | 2.30M | reg == APIC_LVR) |
79 | 0 | return; |
80 | 2.28M | |
81 | 2.28M | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); |
82 | 2.28M | } Unexecuted instantiation: acpi_mmcfg.c:apic_wrmsr Unexecuted instantiation: iommu.c:apic_wrmsr Unexecuted instantiation: intremap.c:apic_wrmsr Unexecuted instantiation: quirks.c:apic_wrmsr Unexecuted instantiation: iommu_init.c:apic_wrmsr Line | Count | Source | 76 | 25.9k | { | 77 | 26.0k | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 26.0k | reg == APIC_LVR) | 79 | 0 | return; | 80 | 25.9k | | 81 | 25.9k | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 25.9k | } |
Unexecuted instantiation: crash.c:apic_wrmsr Unexecuted instantiation: i8259.c:apic_wrmsr Line | Count | Source | 76 | 9.36k | { | 77 | 9.36k | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 9.36k | reg == APIC_LVR) | 79 | 0 | return; | 80 | 9.36k | | 81 | 9.36k | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 9.36k | } |
Line | Count | Source | 76 | 3.84k | { | 77 | 3.84k | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 3.84k | reg == APIC_LVR) | 79 | 0 | return; | 80 | 3.84k | | 81 | 3.84k | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 3.84k | } |
Line | Count | Source | 76 | 1 | { | 77 | 1 | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 1 | reg == APIC_LVR) | 79 | 0 | return; | 80 | 1 | | 81 | 1 | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 1 | } |
Unexecuted instantiation: mpparse.c:apic_wrmsr Unexecuted instantiation: nmi.c:apic_wrmsr Unexecuted instantiation: setup.c:apic_wrmsr Unexecuted instantiation: shutdown.c:apic_wrmsr Line | Count | Source | 76 | 1.99M | { | 77 | 2.00M | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 2.01M | reg == APIC_LVR) | 79 | 0 | return; | 80 | 1.99M | | 81 | 1.99M | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 1.99M | } |
Line | Count | Source | 76 | 88 | { | 77 | 88 | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 88 | reg == APIC_LVR) | 79 | 0 | return; | 80 | 88 | | 81 | 88 | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 88 | } |
Unexecuted instantiation: traps.c:apic_wrmsr Unexecuted instantiation: hpet.c:apic_wrmsr Unexecuted instantiation: lib.c:apic_wrmsr Unexecuted instantiation: power.c:apic_wrmsr Unexecuted instantiation: cpu_idle.c:apic_wrmsr Unexecuted instantiation: amd.c:apic_wrmsr Unexecuted instantiation: common.c:apic_wrmsr Unexecuted instantiation: intel.c:apic_wrmsr Unexecuted instantiation: vpmu.c:apic_wrmsr Unexecuted instantiation: vpmu_amd.c:apic_wrmsr Unexecuted instantiation: vpmu_intel.c:apic_wrmsr Unexecuted instantiation: mce.c:apic_wrmsr Line | Count | Source | 76 | 48 | { | 77 | 48 | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 48 | reg == APIC_LVR) | 79 | 0 | return; | 80 | 48 | | 81 | 48 | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 48 | } |
Line | Count | Source | 76 | 254k | { | 77 | 254k | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 254k | reg == APIC_LVR) | 79 | 0 | return; | 80 | 254k | | 81 | 254k | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 254k | } |
Unexecuted instantiation: delivery.c:apic_wrmsr Unexecuted instantiation: probe.c:apic_wrmsr Unexecuted instantiation: hvm.c:apic_wrmsr Unexecuted instantiation: io.c:apic_wrmsr Unexecuted instantiation: viridian.c:apic_wrmsr Unexecuted instantiation: vlapic.c:apic_wrmsr Unexecuted instantiation: vpt.c:apic_wrmsr Unexecuted instantiation: svm.c:apic_wrmsr Unexecuted instantiation: vmcs.c:apic_wrmsr Line | Count | Source | 76 | 70 | { | 77 | 70 | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | 78 | 70 | reg == APIC_LVR) | 79 | 0 | return; | 80 | 70 | | 81 | 70 | wrmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 82 | 70 | } |
Unexecuted instantiation: nmi_int.c:apic_wrmsr Unexecuted instantiation: op_model_p4.c:apic_wrmsr Unexecuted instantiation: op_model_ppro.c:apic_wrmsr Unexecuted instantiation: op_model_athlon.c:apic_wrmsr Unexecuted instantiation: emul-gate-op.c:apic_wrmsr Unexecuted instantiation: emul-inv-op.c:apic_wrmsr Unexecuted instantiation: emul-priv-op.c:apic_wrmsr |
83 | | |
84 | | static __inline uint64_t apic_rdmsr(unsigned long reg) |
85 | 643 | { |
86 | 643 | uint64_t msr_content; |
87 | 643 | |
88 | 643 | if (reg == APIC_DFR) |
89 | 0 | return -1u; |
90 | 643 | |
91 | 643 | rdmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); |
92 | 643 | return msr_content; |
93 | 643 | } Unexecuted instantiation: intremap.c:apic_rdmsr Unexecuted instantiation: emul-priv-op.c:apic_rdmsr Unexecuted instantiation: emul-inv-op.c:apic_rdmsr Unexecuted instantiation: emul-gate-op.c:apic_rdmsr Unexecuted instantiation: op_model_athlon.c:apic_rdmsr Unexecuted instantiation: op_model_ppro.c:apic_rdmsr Unexecuted instantiation: op_model_p4.c:apic_rdmsr Unexecuted instantiation: nmi_int.c:apic_rdmsr Unexecuted instantiation: vmx.c:apic_rdmsr Unexecuted instantiation: vmcs.c:apic_rdmsr Unexecuted instantiation: svm.c:apic_rdmsr Unexecuted instantiation: vpt.c:apic_rdmsr Unexecuted instantiation: vlapic.c:apic_rdmsr Unexecuted instantiation: viridian.c:apic_rdmsr Unexecuted instantiation: io.c:apic_rdmsr Unexecuted instantiation: hvm.c:apic_rdmsr Unexecuted instantiation: probe.c:apic_rdmsr Unexecuted instantiation: delivery.c:apic_rdmsr Line | Count | Source | 85 | 12 | { | 86 | 12 | uint64_t msr_content; | 87 | 12 | | 88 | 12 | if (reg == APIC_DFR) | 89 | 0 | return -1u; | 90 | 12 | | 91 | 12 | rdmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 92 | 12 | return msr_content; | 93 | 12 | } |
Line | Count | Source | 85 | 25 | { | 86 | 25 | uint64_t msr_content; | 87 | 25 | | 88 | 25 | if (reg == APIC_DFR) | 89 | 0 | return -1u; | 90 | 25 | | 91 | 25 | rdmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 92 | 25 | return msr_content; | 93 | 25 | } |
Unexecuted instantiation: mce.c:apic_rdmsr Unexecuted instantiation: vpmu_intel.c:apic_rdmsr Unexecuted instantiation: vpmu_amd.c:apic_rdmsr Unexecuted instantiation: vpmu.c:apic_rdmsr Unexecuted instantiation: iommu.c:apic_rdmsr Unexecuted instantiation: intel.c:apic_rdmsr Line | Count | Source | 85 | 48 | { | 86 | 48 | uint64_t msr_content; | 87 | 48 | | 88 | 48 | if (reg == APIC_DFR) | 89 | 0 | return -1u; | 90 | 48 | | 91 | 48 | rdmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 92 | 48 | return msr_content; | 93 | 48 | } |
Unexecuted instantiation: amd.c:apic_rdmsr Unexecuted instantiation: cpu_idle.c:apic_rdmsr Unexecuted instantiation: power.c:apic_rdmsr Unexecuted instantiation: lib.c:apic_rdmsr Unexecuted instantiation: hpet.c:apic_rdmsr Unexecuted instantiation: traps.c:apic_rdmsr Line | Count | Source | 85 | 56 | { | 86 | 56 | uint64_t msr_content; | 87 | 56 | | 88 | 56 | if (reg == APIC_DFR) | 89 | 0 | return -1u; | 90 | 56 | | 91 | 56 | rdmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 92 | 56 | return msr_content; | 93 | 56 | } |
Unexecuted instantiation: smp.c:apic_rdmsr Unexecuted instantiation: shutdown.c:apic_rdmsr Unexecuted instantiation: setup.c:apic_rdmsr Unexecuted instantiation: nmi.c:apic_rdmsr Unexecuted instantiation: mpparse.c:apic_rdmsr Line | Count | Source | 85 | 1 | { | 86 | 1 | uint64_t msr_content; | 87 | 1 | | 88 | 1 | if (reg == APIC_DFR) | 89 | 0 | return -1u; | 90 | 1 | | 91 | 1 | rdmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 92 | 1 | return msr_content; | 93 | 1 | } |
Unexecuted instantiation: msi.c:apic_rdmsr Line | Count | Source | 85 | 299 | { | 86 | 299 | uint64_t msr_content; | 87 | 299 | | 88 | 299 | if (reg == APIC_DFR) | 89 | 0 | return -1u; | 90 | 299 | | 91 | 299 | rdmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 92 | 299 | return msr_content; | 93 | 299 | } |
Unexecuted instantiation: i8259.c:apic_rdmsr Unexecuted instantiation: crash.c:apic_rdmsr Line | Count | Source | 85 | 202 | { | 86 | 202 | uint64_t msr_content; | 87 | 202 | | 88 | 202 | if (reg == APIC_DFR) | 89 | 0 | return -1u; | 90 | 202 | | 91 | 202 | rdmsrl(APIC_MSR_BASE + (reg >> 4), msr_content); | 92 | 202 | return msr_content; | 93 | 202 | } |
Unexecuted instantiation: iommu_init.c:apic_rdmsr Unexecuted instantiation: quirks.c:apic_rdmsr Unexecuted instantiation: acpi_mmcfg.c:apic_rdmsr |
94 | | |
95 | | static __inline void apic_write(unsigned long reg, u32 v) |
96 | 2.00M | { |
97 | 2.00M | |
98 | 2.00M | if ( x2apic_enabled ) |
99 | 2.03M | apic_wrmsr(reg, v); |
100 | 2.00M | else |
101 | 18.4E | apic_mem_write(reg, v); |
102 | 2.00M | } Unexecuted instantiation: acpi_mmcfg.c:apic_write Unexecuted instantiation: emul-priv-op.c:apic_write Unexecuted instantiation: emul-inv-op.c:apic_write Unexecuted instantiation: emul-gate-op.c:apic_write Unexecuted instantiation: op_model_athlon.c:apic_write Unexecuted instantiation: op_model_ppro.c:apic_write Unexecuted instantiation: op_model_p4.c:apic_write Unexecuted instantiation: nmi_int.c:apic_write Line | Count | Source | 96 | 70 | { | 97 | 70 | | 98 | 70 | if ( x2apic_enabled ) | 99 | 70 | apic_wrmsr(reg, v); | 100 | 70 | else | 101 | 0 | apic_mem_write(reg, v); | 102 | 70 | } |
Unexecuted instantiation: vmcs.c:apic_write Unexecuted instantiation: svm.c:apic_write Unexecuted instantiation: vpt.c:apic_write Unexecuted instantiation: vlapic.c:apic_write Unexecuted instantiation: viridian.c:apic_write Unexecuted instantiation: io.c:apic_write Unexecuted instantiation: hvm.c:apic_write Unexecuted instantiation: probe.c:apic_write Unexecuted instantiation: delivery.c:apic_write Unexecuted instantiation: x2apic.c:apic_write Line | Count | Source | 96 | 48 | { | 97 | 48 | | 98 | 48 | if ( x2apic_enabled ) | 99 | 48 | apic_wrmsr(reg, v); | 100 | 48 | else | 101 | 0 | apic_mem_write(reg, v); | 102 | 48 | } |
Unexecuted instantiation: mce.c:apic_write Unexecuted instantiation: vpmu_intel.c:apic_write Unexecuted instantiation: vpmu_amd.c:apic_write Unexecuted instantiation: vpmu.c:apic_write Unexecuted instantiation: intel.c:apic_write Unexecuted instantiation: common.c:apic_write Unexecuted instantiation: amd.c:apic_write Unexecuted instantiation: cpu_idle.c:apic_write Unexecuted instantiation: power.c:apic_write Unexecuted instantiation: lib.c:apic_write Unexecuted instantiation: hpet.c:apic_write Unexecuted instantiation: traps.c:apic_write Line | Count | Source | 96 | 55 | { | 97 | 55 | | 98 | 55 | if ( x2apic_enabled ) | 99 | 55 | apic_wrmsr(reg, v); | 100 | 55 | else | 101 | 0 | apic_mem_write(reg, v); | 102 | 55 | } |
Line | Count | Source | 96 | 1.96M | { | 97 | 1.96M | | 98 | 1.96M | if ( x2apic_enabled ) | 99 | 1.99M | apic_wrmsr(reg, v); | 100 | 1.96M | else | 101 | 18.4E | apic_mem_write(reg, v); | 102 | 1.96M | } |
Unexecuted instantiation: shutdown.c:apic_write Unexecuted instantiation: setup.c:apic_write Unexecuted instantiation: nmi.c:apic_write Unexecuted instantiation: mpparse.c:apic_write Line | Count | Source | 96 | 1 | { | 97 | 1 | | 98 | 1 | if ( x2apic_enabled ) | 99 | 1 | apic_wrmsr(reg, v); | 100 | 1 | else | 101 | 0 | apic_mem_write(reg, v); | 102 | 1 | } |
Line | Count | Source | 96 | 3.84k | { | 97 | 3.84k | | 98 | 3.84k | if ( x2apic_enabled ) | 99 | 3.84k | apic_wrmsr(reg, v); | 100 | 3.84k | else | 101 | 0 | apic_mem_write(reg, v); | 102 | 3.84k | } |
Line | Count | Source | 96 | 9.36k | { | 97 | 9.36k | | 98 | 9.36k | if ( x2apic_enabled ) | 99 | 9.36k | apic_wrmsr(reg, v); | 100 | 9.36k | else | 101 | 0 | apic_mem_write(reg, v); | 102 | 9.36k | } |
Unexecuted instantiation: i8259.c:apic_write Unexecuted instantiation: crash.c:apic_write Line | Count | Source | 96 | 25.9k | { | 97 | 25.9k | | 98 | 25.9k | if ( x2apic_enabled ) | 99 | 25.9k | apic_wrmsr(reg, v); | 100 | 25.9k | else | 101 | 18.4E | apic_mem_write(reg, v); | 102 | 25.9k | } |
Unexecuted instantiation: iommu_init.c:apic_write Unexecuted instantiation: quirks.c:apic_write Unexecuted instantiation: intremap.c:apic_write Unexecuted instantiation: iommu.c:apic_write |
103 | | |
104 | | static __inline void apic_write_atomic(unsigned long reg, u32 v) |
105 | 0 | { |
106 | 0 | if ( x2apic_enabled ) |
107 | 0 | apic_wrmsr(reg, v); |
108 | 0 | else |
109 | 0 | apic_mem_write_atomic(reg, v); |
110 | 0 | } Unexecuted instantiation: iommu.c:apic_write_atomic Unexecuted instantiation: acpi_mmcfg.c:apic_write_atomic Unexecuted instantiation: intremap.c:apic_write_atomic Unexecuted instantiation: quirks.c:apic_write_atomic Unexecuted instantiation: iommu_init.c:apic_write_atomic Unexecuted instantiation: apic.c:apic_write_atomic Unexecuted instantiation: crash.c:apic_write_atomic Unexecuted instantiation: i8259.c:apic_write_atomic Unexecuted instantiation: io_apic.c:apic_write_atomic Unexecuted instantiation: msi.c:apic_write_atomic Unexecuted instantiation: irq.c:apic_write_atomic Unexecuted instantiation: mpparse.c:apic_write_atomic Unexecuted instantiation: nmi.c:apic_write_atomic Unexecuted instantiation: setup.c:apic_write_atomic Unexecuted instantiation: shutdown.c:apic_write_atomic Unexecuted instantiation: smp.c:apic_write_atomic Unexecuted instantiation: smpboot.c:apic_write_atomic Unexecuted instantiation: traps.c:apic_write_atomic Unexecuted instantiation: hpet.c:apic_write_atomic Unexecuted instantiation: lib.c:apic_write_atomic Unexecuted instantiation: power.c:apic_write_atomic Unexecuted instantiation: cpu_idle.c:apic_write_atomic Unexecuted instantiation: amd.c:apic_write_atomic Unexecuted instantiation: common.c:apic_write_atomic Unexecuted instantiation: intel.c:apic_write_atomic Unexecuted instantiation: vpmu.c:apic_write_atomic Unexecuted instantiation: vpmu_amd.c:apic_write_atomic Unexecuted instantiation: vpmu_intel.c:apic_write_atomic Unexecuted instantiation: mce.c:apic_write_atomic Unexecuted instantiation: mce_intel.c:apic_write_atomic Unexecuted instantiation: x2apic.c:apic_write_atomic Unexecuted instantiation: delivery.c:apic_write_atomic Unexecuted instantiation: probe.c:apic_write_atomic Unexecuted instantiation: hvm.c:apic_write_atomic Unexecuted instantiation: io.c:apic_write_atomic Unexecuted instantiation: viridian.c:apic_write_atomic Unexecuted instantiation: vlapic.c:apic_write_atomic Unexecuted instantiation: vpt.c:apic_write_atomic Unexecuted instantiation: svm.c:apic_write_atomic Unexecuted instantiation: vmcs.c:apic_write_atomic Unexecuted instantiation: vmx.c:apic_write_atomic Unexecuted instantiation: nmi_int.c:apic_write_atomic Unexecuted instantiation: op_model_p4.c:apic_write_atomic Unexecuted instantiation: op_model_ppro.c:apic_write_atomic Unexecuted instantiation: op_model_athlon.c:apic_write_atomic Unexecuted instantiation: emul-gate-op.c:apic_write_atomic Unexecuted instantiation: emul-inv-op.c:apic_write_atomic Unexecuted instantiation: emul-priv-op.c:apic_write_atomic |
111 | | |
112 | | static __inline u32 apic_read(unsigned long reg) |
113 | 658 | { |
114 | 658 | if ( x2apic_enabled ) |
115 | 643 | return apic_rdmsr(reg); |
116 | 658 | else |
117 | 15 | return apic_mem_read(reg); |
118 | 658 | } Unexecuted instantiation: acpi_mmcfg.c:apic_read Unexecuted instantiation: emul-priv-op.c:apic_read Unexecuted instantiation: emul-inv-op.c:apic_read Unexecuted instantiation: emul-gate-op.c:apic_read Unexecuted instantiation: op_model_athlon.c:apic_read Unexecuted instantiation: op_model_ppro.c:apic_read Unexecuted instantiation: op_model_p4.c:apic_read Unexecuted instantiation: nmi_int.c:apic_read Unexecuted instantiation: vmx.c:apic_read Unexecuted instantiation: vmcs.c:apic_read Unexecuted instantiation: svm.c:apic_read Unexecuted instantiation: vpt.c:apic_read Unexecuted instantiation: vlapic.c:apic_read Unexecuted instantiation: viridian.c:apic_read Unexecuted instantiation: io.c:apic_read Unexecuted instantiation: hvm.c:apic_read Unexecuted instantiation: probe.c:apic_read Unexecuted instantiation: delivery.c:apic_read Line | Count | Source | 113 | 13 | { | 114 | 13 | if ( x2apic_enabled ) | 115 | 12 | return apic_rdmsr(reg); | 116 | 13 | else | 117 | 1 | return apic_mem_read(reg); | 118 | 13 | } |
Line | Count | Source | 113 | 25 | { | 114 | 25 | if ( x2apic_enabled ) | 115 | 25 | return apic_rdmsr(reg); | 116 | 25 | else | 117 | 0 | return apic_mem_read(reg); | 118 | 25 | } |
Unexecuted instantiation: mce.c:apic_read Unexecuted instantiation: vpmu_intel.c:apic_read Unexecuted instantiation: vpmu_amd.c:apic_read Unexecuted instantiation: vpmu.c:apic_read Unexecuted instantiation: intel.c:apic_read Line | Count | Source | 113 | 48 | { | 114 | 48 | if ( x2apic_enabled ) | 115 | 48 | return apic_rdmsr(reg); | 116 | 48 | else | 117 | 0 | return apic_mem_read(reg); | 118 | 48 | } |
Unexecuted instantiation: amd.c:apic_read Unexecuted instantiation: cpu_idle.c:apic_read Unexecuted instantiation: power.c:apic_read Unexecuted instantiation: lib.c:apic_read Unexecuted instantiation: hpet.c:apic_read Unexecuted instantiation: traps.c:apic_read Line | Count | Source | 113 | 56 | { | 114 | 56 | if ( x2apic_enabled ) | 115 | 56 | return apic_rdmsr(reg); | 116 | 56 | else | 117 | 0 | return apic_mem_read(reg); | 118 | 56 | } |
Unexecuted instantiation: smp.c:apic_read Unexecuted instantiation: shutdown.c:apic_read Unexecuted instantiation: setup.c:apic_read Unexecuted instantiation: nmi.c:apic_read Line | Count | Source | 113 | 13 | { | 114 | 13 | if ( x2apic_enabled ) | 115 | 0 | return apic_rdmsr(reg); | 116 | 13 | else | 117 | 13 | return apic_mem_read(reg); | 118 | 13 | } |
Line | Count | Source | 113 | 1 | { | 114 | 1 | if ( x2apic_enabled ) | 115 | 1 | return apic_rdmsr(reg); | 116 | 1 | else | 117 | 0 | return apic_mem_read(reg); | 118 | 1 | } |
Unexecuted instantiation: msi.c:apic_read Line | Count | Source | 113 | 299 | { | 114 | 299 | if ( x2apic_enabled ) | 115 | 299 | return apic_rdmsr(reg); | 116 | 299 | else | 117 | 0 | return apic_mem_read(reg); | 118 | 299 | } |
Unexecuted instantiation: i8259.c:apic_read Unexecuted instantiation: crash.c:apic_read Line | Count | Source | 113 | 203 | { | 114 | 203 | if ( x2apic_enabled ) | 115 | 202 | return apic_rdmsr(reg); | 116 | 203 | else | 117 | 1 | return apic_mem_read(reg); | 118 | 203 | } |
Unexecuted instantiation: iommu_init.c:apic_read Unexecuted instantiation: quirks.c:apic_read Unexecuted instantiation: intremap.c:apic_read Unexecuted instantiation: iommu.c:apic_read |
119 | | |
120 | | static __inline u64 apic_icr_read(void) |
121 | 0 | { |
122 | 0 | u32 lo, hi; |
123 | 0 |
|
124 | 0 | if ( x2apic_enabled ) |
125 | 0 | return apic_rdmsr(APIC_ICR); |
126 | 0 | else |
127 | 0 | { |
128 | 0 | lo = apic_mem_read(APIC_ICR); |
129 | 0 | hi = apic_mem_read(APIC_ICR2); |
130 | 0 | } |
131 | 0 | |
132 | 0 | return ((u64)lo) | (((u64)hi) << 32); |
133 | 0 | } Unexecuted instantiation: iommu.c:apic_icr_read Unexecuted instantiation: intremap.c:apic_icr_read Unexecuted instantiation: quirks.c:apic_icr_read Unexecuted instantiation: iommu_init.c:apic_icr_read Unexecuted instantiation: apic.c:apic_icr_read Unexecuted instantiation: crash.c:apic_icr_read Unexecuted instantiation: i8259.c:apic_icr_read Unexecuted instantiation: io_apic.c:apic_icr_read Unexecuted instantiation: msi.c:apic_icr_read Unexecuted instantiation: irq.c:apic_icr_read Unexecuted instantiation: mpparse.c:apic_icr_read Unexecuted instantiation: nmi.c:apic_icr_read Unexecuted instantiation: setup.c:apic_icr_read Unexecuted instantiation: shutdown.c:apic_icr_read Unexecuted instantiation: smp.c:apic_icr_read Unexecuted instantiation: smpboot.c:apic_icr_read Unexecuted instantiation: traps.c:apic_icr_read Unexecuted instantiation: hpet.c:apic_icr_read Unexecuted instantiation: lib.c:apic_icr_read Unexecuted instantiation: power.c:apic_icr_read Unexecuted instantiation: cpu_idle.c:apic_icr_read Unexecuted instantiation: amd.c:apic_icr_read Unexecuted instantiation: common.c:apic_icr_read Unexecuted instantiation: intel.c:apic_icr_read Unexecuted instantiation: vpmu.c:apic_icr_read Unexecuted instantiation: vpmu_amd.c:apic_icr_read Unexecuted instantiation: vpmu_intel.c:apic_icr_read Unexecuted instantiation: mce.c:apic_icr_read Unexecuted instantiation: mce_intel.c:apic_icr_read Unexecuted instantiation: x2apic.c:apic_icr_read Unexecuted instantiation: delivery.c:apic_icr_read Unexecuted instantiation: probe.c:apic_icr_read Unexecuted instantiation: hvm.c:apic_icr_read Unexecuted instantiation: io.c:apic_icr_read Unexecuted instantiation: viridian.c:apic_icr_read Unexecuted instantiation: vlapic.c:apic_icr_read Unexecuted instantiation: vpt.c:apic_icr_read Unexecuted instantiation: svm.c:apic_icr_read Unexecuted instantiation: vmcs.c:apic_icr_read Unexecuted instantiation: vmx.c:apic_icr_read Unexecuted instantiation: nmi_int.c:apic_icr_read Unexecuted instantiation: op_model_p4.c:apic_icr_read Unexecuted instantiation: op_model_ppro.c:apic_icr_read Unexecuted instantiation: op_model_athlon.c:apic_icr_read Unexecuted instantiation: emul-gate-op.c:apic_icr_read Unexecuted instantiation: emul-inv-op.c:apic_icr_read Unexecuted instantiation: emul-priv-op.c:apic_icr_read Unexecuted instantiation: acpi_mmcfg.c:apic_icr_read |
134 | | |
135 | | static __inline void apic_icr_write(u32 low, u32 dest) |
136 | 33 | { |
137 | 33 | if ( x2apic_enabled ) |
138 | 33 | apic_wrmsr(APIC_ICR, low | ((uint64_t)dest << 32)); |
139 | 33 | else |
140 | 0 | { |
141 | 0 | apic_mem_write(APIC_ICR2, dest << 24); |
142 | 0 | apic_mem_write(APIC_ICR, low); |
143 | 0 | } |
144 | 33 | } Unexecuted instantiation: iommu.c:apic_icr_write Unexecuted instantiation: intremap.c:apic_icr_write Unexecuted instantiation: quirks.c:apic_icr_write Unexecuted instantiation: iommu_init.c:apic_icr_write Unexecuted instantiation: apic.c:apic_icr_write Unexecuted instantiation: crash.c:apic_icr_write Unexecuted instantiation: i8259.c:apic_icr_write Unexecuted instantiation: io_apic.c:apic_icr_write Unexecuted instantiation: msi.c:apic_icr_write Unexecuted instantiation: irq.c:apic_icr_write Unexecuted instantiation: mpparse.c:apic_icr_write Unexecuted instantiation: nmi.c:apic_icr_write Unexecuted instantiation: setup.c:apic_icr_write Unexecuted instantiation: shutdown.c:apic_icr_write Unexecuted instantiation: smp.c:apic_icr_write Line | Count | Source | 136 | 33 | { | 137 | 33 | if ( x2apic_enabled ) | 138 | 33 | apic_wrmsr(APIC_ICR, low | ((uint64_t)dest << 32)); | 139 | 33 | else | 140 | 0 | { | 141 | 0 | apic_mem_write(APIC_ICR2, dest << 24); | 142 | 0 | apic_mem_write(APIC_ICR, low); | 143 | 0 | } | 144 | 33 | } |
Unexecuted instantiation: traps.c:apic_icr_write Unexecuted instantiation: hpet.c:apic_icr_write Unexecuted instantiation: lib.c:apic_icr_write Unexecuted instantiation: power.c:apic_icr_write Unexecuted instantiation: cpu_idle.c:apic_icr_write Unexecuted instantiation: amd.c:apic_icr_write Unexecuted instantiation: common.c:apic_icr_write Unexecuted instantiation: intel.c:apic_icr_write Unexecuted instantiation: vpmu.c:apic_icr_write Unexecuted instantiation: vpmu_amd.c:apic_icr_write Unexecuted instantiation: vpmu_intel.c:apic_icr_write Unexecuted instantiation: mce.c:apic_icr_write Unexecuted instantiation: mce_intel.c:apic_icr_write Unexecuted instantiation: x2apic.c:apic_icr_write Unexecuted instantiation: delivery.c:apic_icr_write Unexecuted instantiation: probe.c:apic_icr_write Unexecuted instantiation: hvm.c:apic_icr_write Unexecuted instantiation: io.c:apic_icr_write Unexecuted instantiation: viridian.c:apic_icr_write Unexecuted instantiation: vlapic.c:apic_icr_write Unexecuted instantiation: vpt.c:apic_icr_write Unexecuted instantiation: svm.c:apic_icr_write Unexecuted instantiation: vmcs.c:apic_icr_write Unexecuted instantiation: vmx.c:apic_icr_write Unexecuted instantiation: nmi_int.c:apic_icr_write Unexecuted instantiation: op_model_p4.c:apic_icr_write Unexecuted instantiation: op_model_ppro.c:apic_icr_write Unexecuted instantiation: op_model_athlon.c:apic_icr_write Unexecuted instantiation: emul-gate-op.c:apic_icr_write Unexecuted instantiation: emul-inv-op.c:apic_icr_write Unexecuted instantiation: emul-priv-op.c:apic_icr_write Unexecuted instantiation: acpi_mmcfg.c:apic_icr_write |
145 | | |
146 | | static __inline bool_t apic_isr_read(u8 vector) |
147 | 0 | { |
148 | 0 | return (apic_read(APIC_ISR + ((vector & ~0x1f) >> 1)) >> |
149 | 0 | (vector & 0x1f)) & 1; |
150 | 0 | } Unexecuted instantiation: iommu.c:apic_isr_read Unexecuted instantiation: intremap.c:apic_isr_read Unexecuted instantiation: quirks.c:apic_isr_read Unexecuted instantiation: iommu_init.c:apic_isr_read Unexecuted instantiation: apic.c:apic_isr_read Unexecuted instantiation: crash.c:apic_isr_read Unexecuted instantiation: i8259.c:apic_isr_read Unexecuted instantiation: io_apic.c:apic_isr_read Unexecuted instantiation: msi.c:apic_isr_read Unexecuted instantiation: irq.c:apic_isr_read Unexecuted instantiation: mpparse.c:apic_isr_read Unexecuted instantiation: nmi.c:apic_isr_read Unexecuted instantiation: setup.c:apic_isr_read Unexecuted instantiation: shutdown.c:apic_isr_read Unexecuted instantiation: smp.c:apic_isr_read Unexecuted instantiation: smpboot.c:apic_isr_read Unexecuted instantiation: traps.c:apic_isr_read Unexecuted instantiation: hpet.c:apic_isr_read Unexecuted instantiation: lib.c:apic_isr_read Unexecuted instantiation: power.c:apic_isr_read Unexecuted instantiation: cpu_idle.c:apic_isr_read Unexecuted instantiation: amd.c:apic_isr_read Unexecuted instantiation: common.c:apic_isr_read Unexecuted instantiation: intel.c:apic_isr_read Unexecuted instantiation: vpmu.c:apic_isr_read Unexecuted instantiation: vpmu_amd.c:apic_isr_read Unexecuted instantiation: vpmu_intel.c:apic_isr_read Unexecuted instantiation: mce.c:apic_isr_read Unexecuted instantiation: mce_intel.c:apic_isr_read Unexecuted instantiation: x2apic.c:apic_isr_read Unexecuted instantiation: delivery.c:apic_isr_read Unexecuted instantiation: probe.c:apic_isr_read Unexecuted instantiation: hvm.c:apic_isr_read Unexecuted instantiation: io.c:apic_isr_read Unexecuted instantiation: viridian.c:apic_isr_read Unexecuted instantiation: vlapic.c:apic_isr_read Unexecuted instantiation: vpt.c:apic_isr_read Unexecuted instantiation: svm.c:apic_isr_read Unexecuted instantiation: vmcs.c:apic_isr_read Unexecuted instantiation: vmx.c:apic_isr_read Unexecuted instantiation: nmi_int.c:apic_isr_read Unexecuted instantiation: op_model_p4.c:apic_isr_read Unexecuted instantiation: op_model_ppro.c:apic_isr_read Unexecuted instantiation: op_model_athlon.c:apic_isr_read Unexecuted instantiation: emul-gate-op.c:apic_isr_read Unexecuted instantiation: emul-inv-op.c:apic_isr_read Unexecuted instantiation: acpi_mmcfg.c:apic_isr_read Unexecuted instantiation: emul-priv-op.c:apic_isr_read |
151 | | |
152 | | static __inline u32 get_apic_id(void) /* Get the physical APIC id */ |
153 | 63 | { |
154 | 63 | u32 id = apic_read(APIC_ID); |
155 | 61 | return x2apic_enabled ? id : GET_xAPIC_ID(id); |
156 | 63 | } Unexecuted instantiation: vpmu.c:get_apic_id Unexecuted instantiation: iommu.c:get_apic_id Unexecuted instantiation: emul-priv-op.c:get_apic_id Unexecuted instantiation: emul-inv-op.c:get_apic_id Unexecuted instantiation: emul-gate-op.c:get_apic_id Unexecuted instantiation: op_model_athlon.c:get_apic_id Unexecuted instantiation: op_model_ppro.c:get_apic_id Unexecuted instantiation: op_model_p4.c:get_apic_id Unexecuted instantiation: nmi_int.c:get_apic_id Unexecuted instantiation: vmx.c:get_apic_id Unexecuted instantiation: vmcs.c:get_apic_id Unexecuted instantiation: svm.c:get_apic_id Unexecuted instantiation: vpt.c:get_apic_id Unexecuted instantiation: vlapic.c:get_apic_id Unexecuted instantiation: viridian.c:get_apic_id Unexecuted instantiation: io.c:get_apic_id Unexecuted instantiation: hvm.c:get_apic_id Unexecuted instantiation: probe.c:get_apic_id Unexecuted instantiation: delivery.c:get_apic_id Unexecuted instantiation: x2apic.c:get_apic_id Unexecuted instantiation: mce_intel.c:get_apic_id Unexecuted instantiation: mce.c:get_apic_id Unexecuted instantiation: vpmu_intel.c:get_apic_id Unexecuted instantiation: vpmu_amd.c:get_apic_id Unexecuted instantiation: acpi_mmcfg.c:get_apic_id Unexecuted instantiation: intel.c:get_apic_id Line | Count | Source | 153 | 48 | { | 154 | 48 | u32 id = apic_read(APIC_ID); | 155 | 48 | return x2apic_enabled ? id : GET_xAPIC_ID(id); | 156 | 48 | } |
Unexecuted instantiation: amd.c:get_apic_id Unexecuted instantiation: cpu_idle.c:get_apic_id Unexecuted instantiation: power.c:get_apic_id Unexecuted instantiation: lib.c:get_apic_id Unexecuted instantiation: hpet.c:get_apic_id Unexecuted instantiation: traps.c:get_apic_id Line | Count | Source | 153 | 1 | { | 154 | 1 | u32 id = apic_read(APIC_ID); | 155 | 1 | return x2apic_enabled ? id : GET_xAPIC_ID(id); | 156 | 1 | } |
Unexecuted instantiation: smp.c:get_apic_id Unexecuted instantiation: shutdown.c:get_apic_id Unexecuted instantiation: setup.c:get_apic_id Unexecuted instantiation: nmi.c:get_apic_id Line | Count | Source | 153 | 1 | { | 154 | 1 | u32 id = apic_read(APIC_ID); | 155 | 1 | return x2apic_enabled ? id : GET_xAPIC_ID(id); | 156 | 1 | } |
Unexecuted instantiation: irq.c:get_apic_id Unexecuted instantiation: msi.c:get_apic_id Unexecuted instantiation: io_apic.c:get_apic_id Unexecuted instantiation: i8259.c:get_apic_id Unexecuted instantiation: crash.c:get_apic_id Line | Count | Source | 153 | 13 | { | 154 | 13 | u32 id = apic_read(APIC_ID); | 155 | 12 | return x2apic_enabled ? id : GET_xAPIC_ID(id); | 156 | 13 | } |
Unexecuted instantiation: iommu_init.c:get_apic_id Unexecuted instantiation: quirks.c:get_apic_id Unexecuted instantiation: intremap.c:get_apic_id |
157 | | |
158 | | void apic_wait_icr_idle(void); |
159 | | |
160 | | int get_physical_broadcast(void); |
161 | | |
162 | | static inline void ack_APIC_irq(void) |
163 | 1.99M | { |
164 | 1.99M | /* Docs say use 0 for future compatibility */ |
165 | 1.99M | apic_write(APIC_EOI, 0); |
166 | 1.99M | } Unexecuted instantiation: intremap.c:ack_APIC_irq Unexecuted instantiation: iommu.c:ack_APIC_irq Unexecuted instantiation: emul-priv-op.c:ack_APIC_irq Unexecuted instantiation: emul-inv-op.c:ack_APIC_irq Unexecuted instantiation: emul-gate-op.c:ack_APIC_irq Unexecuted instantiation: op_model_athlon.c:ack_APIC_irq Unexecuted instantiation: op_model_ppro.c:ack_APIC_irq Unexecuted instantiation: op_model_p4.c:ack_APIC_irq Unexecuted instantiation: nmi_int.c:ack_APIC_irq Line | Count | Source | 163 | 70 | { | 164 | 70 | /* Docs say use 0 for future compatibility */ | 165 | 70 | apic_write(APIC_EOI, 0); | 166 | 70 | } |
Unexecuted instantiation: vmcs.c:ack_APIC_irq Unexecuted instantiation: svm.c:ack_APIC_irq Unexecuted instantiation: vpt.c:ack_APIC_irq Unexecuted instantiation: vlapic.c:ack_APIC_irq Unexecuted instantiation: viridian.c:ack_APIC_irq Unexecuted instantiation: io.c:ack_APIC_irq Unexecuted instantiation: hvm.c:ack_APIC_irq Unexecuted instantiation: probe.c:ack_APIC_irq Unexecuted instantiation: delivery.c:ack_APIC_irq Unexecuted instantiation: x2apic.c:ack_APIC_irq Unexecuted instantiation: mce_intel.c:ack_APIC_irq Unexecuted instantiation: mce.c:ack_APIC_irq Unexecuted instantiation: vpmu_intel.c:ack_APIC_irq Unexecuted instantiation: vpmu_amd.c:ack_APIC_irq Unexecuted instantiation: vpmu.c:ack_APIC_irq Unexecuted instantiation: intel.c:ack_APIC_irq Unexecuted instantiation: common.c:ack_APIC_irq Unexecuted instantiation: amd.c:ack_APIC_irq Unexecuted instantiation: cpu_idle.c:ack_APIC_irq Unexecuted instantiation: power.c:ack_APIC_irq Unexecuted instantiation: lib.c:ack_APIC_irq Unexecuted instantiation: hpet.c:ack_APIC_irq Unexecuted instantiation: traps.c:ack_APIC_irq Unexecuted instantiation: smpboot.c:ack_APIC_irq Line | Count | Source | 163 | 1.95M | { | 164 | 1.95M | /* Docs say use 0 for future compatibility */ | 165 | 1.95M | apic_write(APIC_EOI, 0); | 166 | 1.95M | } |
Unexecuted instantiation: shutdown.c:ack_APIC_irq Unexecuted instantiation: setup.c:ack_APIC_irq Unexecuted instantiation: nmi.c:ack_APIC_irq Unexecuted instantiation: mpparse.c:ack_APIC_irq Line | Count | Source | 163 | 1 | { | 164 | 1 | /* Docs say use 0 for future compatibility */ | 165 | 1 | apic_write(APIC_EOI, 0); | 166 | 1 | } |
Line | Count | Source | 163 | 3.84k | { | 164 | 3.84k | /* Docs say use 0 for future compatibility */ | 165 | 3.84k | apic_write(APIC_EOI, 0); | 166 | 3.84k | } |
Line | Count | Source | 163 | 9.36k | { | 164 | 9.36k | /* Docs say use 0 for future compatibility */ | 165 | 9.36k | apic_write(APIC_EOI, 0); | 166 | 9.36k | } |
Unexecuted instantiation: i8259.c:ack_APIC_irq Unexecuted instantiation: crash.c:ack_APIC_irq Line | Count | Source | 163 | 25.8k | { | 164 | 25.8k | /* Docs say use 0 for future compatibility */ | 165 | 25.8k | apic_write(APIC_EOI, 0); | 166 | 25.8k | } |
Unexecuted instantiation: iommu_init.c:ack_APIC_irq Unexecuted instantiation: quirks.c:ack_APIC_irq Unexecuted instantiation: acpi_mmcfg.c:ack_APIC_irq |
167 | | |
168 | | extern int get_maxlvt(void); |
169 | | extern void clear_local_APIC(void); |
170 | | extern void connect_bsp_APIC (void); |
171 | | extern void disconnect_bsp_APIC (int virt_wire_setup); |
172 | | extern void disable_local_APIC (void); |
173 | | extern int verify_local_APIC (void); |
174 | | extern void cache_APIC_registers (void); |
175 | | extern void sync_Arb_IDs (void); |
176 | | extern void init_bsp_APIC (void); |
177 | | extern void setup_local_APIC (void); |
178 | | extern void init_apic_mappings (void); |
179 | | extern void smp_local_timer_interrupt (struct cpu_user_regs *regs); |
180 | | extern void setup_boot_APIC_clock (void); |
181 | | extern void setup_secondary_APIC_clock (void); |
182 | | extern void setup_apic_nmi_watchdog (void); |
183 | | extern void disable_lapic_nmi_watchdog(void); |
184 | | extern int reserve_lapic_nmi(void); |
185 | | extern void release_lapic_nmi(void); |
186 | | extern void self_nmi(void); |
187 | | extern void disable_timer_nmi_watchdog(void); |
188 | | extern void enable_timer_nmi_watchdog(void); |
189 | | extern bool nmi_watchdog_tick(const struct cpu_user_regs *regs); |
190 | | extern int APIC_init_uniprocessor (void); |
191 | | extern void disable_APIC_timer(void); |
192 | | extern void enable_APIC_timer(void); |
193 | | extern int lapic_suspend(void); |
194 | | extern int lapic_resume(void); |
195 | | extern void record_boot_APIC_mode(void); |
196 | | extern enum apic_mode current_local_apic_mode(void); |
197 | | extern void check_for_unexpected_msi(unsigned int vector); |
198 | | |
199 | | extern void check_nmi_watchdog(void); |
200 | | |
201 | | extern unsigned int nmi_watchdog; |
202 | 0 | #define NMI_NONE 0 |
203 | 0 | #define NMI_IO_APIC 1 |
204 | 13 | #define NMI_LOCAL_APIC 2 |
205 | | |
206 | | #endif /* __ASM_APIC_H */ |