/root/src/xen/xen/include/asm/system.h
Line | Count | Source (jump to first uncovered line) |
1 | | #ifndef __ASM_SYSTEM_H |
2 | | #define __ASM_SYSTEM_H |
3 | | |
4 | | #include <xen/lib.h> |
5 | | #include <xen/bitops.h> |
6 | | #include <asm/processor.h> |
7 | | |
8 | 0 | #define read_sreg(name) \ |
9 | 0 | ({ unsigned int __sel; \ |
10 | 0 | asm volatile ( "mov %%" STR(name) ",%0" : "=r" (__sel) ); \ |
11 | 0 | __sel; \ |
12 | 0 | }) |
13 | | |
14 | | #define wbinvd() \ |
15 | 186 | asm volatile ( "wbinvd" : : : "memory" ) |
16 | | |
17 | | #define clflush(a) \ |
18 | 5.10M | asm volatile ( "clflush (%0)" : : "r"(a) ) |
19 | | |
20 | | #define nop() \ |
21 | 0 | asm volatile ( "nop" ) |
22 | | |
23 | | #define xchg(ptr,v) \ |
24 | 28.0k | ((__typeof__(*(ptr)))__xchg((unsigned long)(v),(ptr),sizeof(*(ptr)))) |
25 | | |
26 | | struct __xchg_dummy { unsigned long a[100]; }; |
27 | 58.4M | #define __xg(x) ((volatile struct __xchg_dummy *)(x)) |
28 | | |
29 | | #include <asm/x86_64/system.h> |
30 | | |
31 | | /* |
32 | | * Note: no "lock" prefix even on SMP: xchg always implies lock anyway |
33 | | * Note 2: xchg has side effect, so that attribute volatile is necessary, |
34 | | * but generally the primitive is invalid, *ptr is output argument. --ANK |
35 | | */ |
36 | | static always_inline unsigned long __xchg( |
37 | | unsigned long x, volatile void *ptr, int size) |
38 | 28.1k | { |
39 | 28.1k | switch ( size ) |
40 | 28.1k | { |
41 | 11.9k | case 1: |
42 | 11.9k | asm volatile ( "xchgb %b0,%1" |
43 | 11.9k | : "=q" (x) |
44 | 11.9k | : "m" (*__xg(ptr)), "0" (x) |
45 | 11.9k | : "memory" ); |
46 | 11.9k | break; |
47 | 0 | case 2: |
48 | 0 | asm volatile ( "xchgw %w0,%1" |
49 | 0 | : "=r" (x) |
50 | 0 | : "m" (*__xg(ptr)), "0" (x) |
51 | 0 | : "memory" ); |
52 | 0 | break; |
53 | 0 | case 4: |
54 | 0 | asm volatile ( "xchgl %k0,%1" |
55 | 0 | : "=r" (x) |
56 | 0 | : "m" (*__xg(ptr)), "0" (x) |
57 | 0 | : "memory" ); |
58 | 0 | break; |
59 | 16.2k | case 8: |
60 | 16.2k | asm volatile ( "xchgq %0,%1" |
61 | 16.2k | : "=r" (x) |
62 | 16.2k | : "m" (*__xg(ptr)), "0" (x) |
63 | 16.2k | : "memory" ); |
64 | 16.2k | break; |
65 | 28.1k | } |
66 | 28.1k | return x; |
67 | 28.1k | } Unexecuted instantiation: core_parking.c:__xchg Unexecuted instantiation: mmconfig-shared.c:__xchg Unexecuted instantiation: mmconfig_64.c:__xchg Unexecuted instantiation: mmconf-fam10h.c:__xchg Unexecuted instantiation: acpi_mmcfg.c:__xchg Unexecuted instantiation: ro-page-fault.c:__xchg Unexecuted instantiation: misc-hypercalls.c:__xchg Unexecuted instantiation: iret.c:__xchg Unexecuted instantiation: emul-priv-op.c:__xchg Unexecuted instantiation: emul-inv-op.c:__xchg Unexecuted instantiation: emul-gate-op.c:__xchg Unexecuted instantiation: descriptor-tables.c:__xchg Unexecuted instantiation: callback.c:__xchg Unexecuted instantiation: backtrace.c:__xchg Unexecuted instantiation: op_model_athlon.c:__xchg Unexecuted instantiation: op_model_ppro.c:__xchg Unexecuted instantiation: op_model_p4.c:__xchg Unexecuted instantiation: nmi_int.c:__xchg Unexecuted instantiation: nested_ept.c:__xchg Unexecuted instantiation: nested_hap.c:__xchg Unexecuted instantiation: hap.c:__xchg Unexecuted instantiation: multi.c:__xchg Unexecuted instantiation: mem_sharing.c:__xchg Unexecuted instantiation: mem_paging.c:__xchg Unexecuted instantiation: guest_walk.c:__xchg Unexecuted instantiation: altp2m.c:__xchg Unexecuted instantiation: p2m-pod.c:__xchg Unexecuted instantiation: p2m-ept.c:__xchg Unexecuted instantiation: p2m-pt.c:__xchg Unexecuted instantiation: p2m.c:__xchg Unexecuted instantiation: paging.c:__xchg Unexecuted instantiation: vvmx.c:__xchg Line | Count | Source | 38 | 16.2k | { | 39 | 16.2k | switch ( size ) | 40 | 16.2k | { | 41 | 0 | case 1: | 42 | 0 | asm volatile ( "xchgb %b0,%1" | 43 | 0 | : "=q" (x) | 44 | 0 | : "m" (*__xg(ptr)), "0" (x) | 45 | 0 | : "memory" ); | 46 | 0 | break; | 47 | 0 | case 2: | 48 | 0 | asm volatile ( "xchgw %w0,%1" | 49 | 0 | : "=r" (x) | 50 | 0 | : "m" (*__xg(ptr)), "0" (x) | 51 | 0 | : "memory" ); | 52 | 0 | break; | 53 | 0 | case 4: | 54 | 0 | asm volatile ( "xchgl %k0,%1" | 55 | 0 | : "=r" (x) | 56 | 0 | : "m" (*__xg(ptr)), "0" (x) | 57 | 0 | : "memory" ); | 58 | 0 | break; | 59 | 16.2k | case 8: | 60 | 16.2k | asm volatile ( "xchgq %0,%1" | 61 | 16.2k | : "=r" (x) | 62 | 16.2k | : "m" (*__xg(ptr)), "0" (x) | 63 | 16.2k | : "memory" ); | 64 | 16.2k | break; | 65 | 16.2k | } | 66 | 16.2k | return x; | 67 | 16.2k | } |
Unexecuted instantiation: vmcs.c:__xchg Unexecuted instantiation: realmode.c:__xchg Unexecuted instantiation: vmcb.c:__xchg Unexecuted instantiation: svmdebug.c:__xchg Unexecuted instantiation: svm.c:__xchg Unexecuted instantiation: nestedsvm.c:__xchg Unexecuted instantiation: intr.c:__xchg Unexecuted instantiation: vpt.c:__xchg Unexecuted instantiation: vpic.c:__xchg Unexecuted instantiation: vmsi.c:__xchg Unexecuted instantiation: vlapic.c:__xchg Unexecuted instantiation: viridian.c:__xchg Unexecuted instantiation: vioapic.c:__xchg Unexecuted instantiation: stdvga.c:__xchg Unexecuted instantiation: save.c:__xchg Unexecuted instantiation: rtc.c:__xchg Unexecuted instantiation: pmtimer.c:__xchg Unexecuted instantiation: nestedhvm.c:__xchg Unexecuted instantiation: mtrr.c:__xchg Unexecuted instantiation: ioreq.c:__xchg Unexecuted instantiation: intercept.c:__xchg Unexecuted instantiation: i8254.c:__xchg Unexecuted instantiation: hvm.c:__xchg Unexecuted instantiation: emulate.c:__xchg Unexecuted instantiation: dm.c:__xchg Unexecuted instantiation: asid.c:__xchg Unexecuted instantiation: probe.c:__xchg Unexecuted instantiation: delivery.c:__xchg Unexecuted instantiation: default.c:__xchg Unexecuted instantiation: x2apic.c:__xchg Unexecuted instantiation: bigsmp.c:__xchg Unexecuted instantiation: main.c:__xchg Unexecuted instantiation: generic.c:__xchg Unexecuted instantiation: vmce.c:__xchg Unexecuted instantiation: util.c:__xchg Unexecuted instantiation: non-fatal.c:__xchg Unexecuted instantiation: mce_intel.c:__xchg Unexecuted instantiation: mce-apei.c:__xchg Unexecuted instantiation: mce.c:__xchg Unexecuted instantiation: mctelem.c:__xchg Unexecuted instantiation: barrier.c:__xchg Unexecuted instantiation: mcaction.c:__xchg Unexecuted instantiation: mce_amd.c:__xchg Unexecuted instantiation: amd_nonfatal.c:__xchg Unexecuted instantiation: vpmu_intel.c:__xchg Unexecuted instantiation: vpmu_amd.c:__xchg Unexecuted instantiation: vpmu.c:__xchg Unexecuted instantiation: mwait-idle.c:__xchg Unexecuted instantiation: intel.c:__xchg Unexecuted instantiation: common.c:__xchg Unexecuted instantiation: amd.c:__xchg Unexecuted instantiation: powernow.c:__xchg Unexecuted instantiation: cpuidle_menu.c:__xchg Unexecuted instantiation: cpu_idle.c:__xchg Unexecuted instantiation: suspend.c:__xchg Unexecuted instantiation: power.c:__xchg Unexecuted instantiation: lib.c:__xchg Unexecuted instantiation: xstate.c:__xchg Unexecuted instantiation: hpet.c:__xchg Unexecuted instantiation: tboot.c:__xchg Unexecuted instantiation: x86_emulate.c:__xchg Unexecuted instantiation: usercopy.c:__xchg Unexecuted instantiation: traps.c:__xchg Unexecuted instantiation: srat.c:__xchg Unexecuted instantiation: smpboot.c:__xchg Unexecuted instantiation: setup.c:__xchg Unexecuted instantiation: psr.c:__xchg Unexecuted instantiation: platform_hypercall.c:__xchg Unexecuted instantiation: physdev.c:__xchg Unexecuted instantiation: percpu.c:__xchg Unexecuted instantiation: nmi.c:__xchg Unexecuted instantiation: mpparse.c:__xchg Unexecuted instantiation: mm.c:__xchg Unexecuted instantiation: microcode.c:__xchg Unexecuted instantiation: microcode_intel.c:__xchg Unexecuted instantiation: microcode_amd.c:__xchg Unexecuted instantiation: machine_kexec.c:__xchg Unexecuted instantiation: ioport_emulate.c:__xchg Unexecuted instantiation: msr.c:__xchg Unexecuted instantiation: io_apic.c:__xchg Unexecuted instantiation: i8259.c:__xchg Unexecuted instantiation: i387.c:__xchg Unexecuted instantiation: hypercall.c:__xchg Unexecuted instantiation: flushtlb.c:__xchg Unexecuted instantiation: extable.c:__xchg Unexecuted instantiation: e820.c:__xchg Unexecuted instantiation: domain_page.c:__xchg Unexecuted instantiation: debug.c:__xchg Unexecuted instantiation: crash.c:__xchg Unexecuted instantiation: compat.c:__xchg Unexecuted instantiation: cpuid.c:__xchg Unexecuted instantiation: apic.c:__xchg Unexecuted instantiation: xsm_core.c:__xchg Unexecuted instantiation: vesa.c:__xchg Unexecuted instantiation: vga.c:__xchg Unexecuted instantiation: apei-io.c:__xchg Unexecuted instantiation: apei-base.c:__xchg Unexecuted instantiation: hest.c:__xchg Unexecuted instantiation: erst.c:__xchg Unexecuted instantiation: utglobal.c:__xchg Unexecuted instantiation: tbutils.c:__xchg Unexecuted instantiation: reboot.c:__xchg Unexecuted instantiation: hwregs.c:__xchg Unexecuted instantiation: pmstat.c:__xchg Unexecuted instantiation: osl.c:__xchg Unexecuted instantiation: numa.c:__xchg Unexecuted instantiation: iommu_guest.c:__xchg Unexecuted instantiation: iommu_cmd.c:__xchg Unexecuted instantiation: iommu_intr.c:__xchg Unexecuted instantiation: pci_amd_iommu.c:__xchg Unexecuted instantiation: iommu_map.c:__xchg Unexecuted instantiation: iommu_init.c:__xchg Unexecuted instantiation: ats.c:__xchg Unexecuted instantiation: vtd.c:__xchg Unexecuted instantiation: quirks.c:__xchg Unexecuted instantiation: intremap.c:__xchg Unexecuted instantiation: qinval.c:__xchg Unexecuted instantiation: utils.c:__xchg Unexecuted instantiation: dmar.c:__xchg Line | Count | Source | 38 | 4.14k | { | 39 | 4.14k | switch ( size ) | 40 | 4.14k | { | 41 | 4.14k | case 1: | 42 | 4.14k | asm volatile ( "xchgb %b0,%1" | 43 | 4.14k | : "=q" (x) | 44 | 4.14k | : "m" (*__xg(ptr)), "0" (x) | 45 | 4.14k | : "memory" ); | 46 | 4.14k | break; | 47 | 0 | case 2: | 48 | 0 | asm volatile ( "xchgw %w0,%1" | 49 | 0 | : "=r" (x) | 50 | 0 | : "m" (*__xg(ptr)), "0" (x) | 51 | 0 | : "memory" ); | 52 | 0 | break; | 53 | 0 | case 4: | 54 | 0 | asm volatile ( "xchgl %k0,%1" | 55 | 0 | : "=r" (x) | 56 | 0 | : "m" (*__xg(ptr)), "0" (x) | 57 | 0 | : "memory" ); | 58 | 0 | break; | 59 | 0 | case 8: | 60 | 0 | asm volatile ( "xchgq %0,%1" | 61 | 0 | : "=r" (x) | 62 | 0 | : "m" (*__xg(ptr)), "0" (x) | 63 | 0 | : "memory" ); | 64 | 0 | break; | 65 | 4.14k | } | 66 | 4.14k | return x; | 67 | 4.14k | } |
Unexecuted instantiation: iommu.c:__xchg Unexecuted instantiation: msix.c:__xchg Unexecuted instantiation: msi.c:__xchg Unexecuted instantiation: header.c:__xchg Unexecuted instantiation: vpci.c:__xchg Unexecuted instantiation: pci.c:__xchg Unexecuted instantiation: utility.c:__xchg Unexecuted instantiation: cpufreq_misc_governors.c:__xchg Unexecuted instantiation: cpufreq_ondemand.c:__xchg Unexecuted instantiation: cpufreq.c:__xchg Unexecuted instantiation: serial.c:__xchg Unexecuted instantiation: ehci-dbgp.c:__xchg Unexecuted instantiation: ns16550.c:__xchg Unexecuted instantiation: console.c:__xchg Unexecuted instantiation: libelf-loader.c:__xchg Unexecuted instantiation: llvm.c:__xchg Unexecuted instantiation: tmem_control.c:__xchg Unexecuted instantiation: tmem_xen.c:__xchg Unexecuted instantiation: tmem.c:__xchg Unexecuted instantiation: xmalloc_tlsf.c:__xchg Unexecuted instantiation: xenoprof.c:__xchg Unexecuted instantiation: wait.c:__xchg Unexecuted instantiation: vsprintf.c:__xchg Unexecuted instantiation: vmap.c:__xchg Unexecuted instantiation: vm_event.c:__xchg Unexecuted instantiation: virtual_region.c:__xchg Unexecuted instantiation: trace.c:__xchg Unexecuted instantiation: timer.c:__xchg Unexecuted instantiation: time.c:__xchg Unexecuted instantiation: tasklet.c:__xchg Unexecuted instantiation: sysctl.c:__xchg Unexecuted instantiation: symbols.c:__xchg Unexecuted instantiation: stop_machine.c:__xchg Unexecuted instantiation: spinlock.c:__xchg Unexecuted instantiation: smp.c:__xchg Unexecuted instantiation: softirq.c:__xchg Unexecuted instantiation: shutdown.c:__xchg Unexecuted instantiation: schedule.c:__xchg Unexecuted instantiation: sched_null.c:__xchg Unexecuted instantiation: sched_rt.c:__xchg Unexecuted instantiation: sched_credit2.c:__xchg Unexecuted instantiation: sched_credit.c:__xchg Unexecuted instantiation: sched_arinc653.c:__xchg Unexecuted instantiation: rwlock.c:__xchg Unexecuted instantiation: rcupdate.c:__xchg Unexecuted instantiation: radix-tree.c:__xchg Unexecuted instantiation: rangeset.c:__xchg Unexecuted instantiation: preempt.c:__xchg Unexecuted instantiation: pdx.c:__xchg Unexecuted instantiation: page_alloc.c:__xchg Unexecuted instantiation: notifier.c:__xchg Unexecuted instantiation: multicall.c:__xchg Unexecuted instantiation: monitor.c:__xchg Unexecuted instantiation: memory.c:__xchg Unexecuted instantiation: mem_access.c:__xchg Unexecuted instantiation: kimage.c:__xchg Unexecuted instantiation: kexec.c:__xchg Unexecuted instantiation: keyhandler.c:__xchg Unexecuted instantiation: kernel.c:__xchg Line | Count | Source | 38 | 7.75k | { | 39 | 7.75k | switch ( size ) | 40 | 7.75k | { | 41 | 7.75k | case 1: | 42 | 7.75k | asm volatile ( "xchgb %b0,%1" | 43 | 7.75k | : "=q" (x) | 44 | 7.75k | : "m" (*__xg(ptr)), "0" (x) | 45 | 7.75k | : "memory" ); | 46 | 7.75k | break; | 47 | 0 | case 2: | 48 | 0 | asm volatile ( "xchgw %w0,%1" | 49 | 0 | : "=r" (x) | 50 | 0 | : "m" (*__xg(ptr)), "0" (x) | 51 | 0 | : "memory" ); | 52 | 0 | break; | 53 | 0 | case 4: | 54 | 0 | asm volatile ( "xchgl %k0,%1" | 55 | 0 | : "=r" (x) | 56 | 0 | : "m" (*__xg(ptr)), "0" (x) | 57 | 0 | : "memory" ); | 58 | 0 | break; | 59 | 0 | case 8: | 60 | 0 | asm volatile ( "xchgq %0,%1" | 61 | 0 | : "=r" (x) | 62 | 0 | : "m" (*__xg(ptr)), "0" (x) | 63 | 0 | : "memory" ); | 64 | 0 | break; | 65 | 7.75k | } | 66 | 7.75k | return x; | 67 | 7.75k | } |
Unexecuted instantiation: guestcopy.c:__xchg Unexecuted instantiation: grant_table.c:__xchg Unexecuted instantiation: event_fifo.c:__xchg Unexecuted instantiation: event_channel.c:__xchg Unexecuted instantiation: event_2l.c:__xchg Unexecuted instantiation: domain.c:__xchg Unexecuted instantiation: domctl.c:__xchg Unexecuted instantiation: cpupool.c:__xchg Unexecuted instantiation: cpu.c:__xchg |
68 | | |
69 | | /* |
70 | | * Atomic compare and exchange. Compare OLD with MEM, if identical, |
71 | | * store NEW in MEM. Return the initial value in MEM. Success is |
72 | | * indicated by comparing RETURN with OLD. |
73 | | */ |
74 | | |
75 | | static always_inline unsigned long __cmpxchg( |
76 | | volatile void *ptr, unsigned long old, unsigned long new, int size) |
77 | 4.48M | { |
78 | 4.48M | unsigned long prev; |
79 | 4.48M | switch ( size ) |
80 | 4.48M | { |
81 | 946 | case 1: |
82 | 946 | asm volatile ( "lock; cmpxchgb %b1,%2" |
83 | 946 | : "=a" (prev) |
84 | 946 | : "q" (new), "m" (*__xg(ptr)), |
85 | 946 | "0" (old) |
86 | 946 | : "memory" ); |
87 | 946 | return prev; |
88 | 400 | case 2: |
89 | 400 | asm volatile ( "lock; cmpxchgw %w1,%2" |
90 | 400 | : "=a" (prev) |
91 | 400 | : "r" (new), "m" (*__xg(ptr)), |
92 | 400 | "0" (old) |
93 | 400 | : "memory" ); |
94 | 400 | return prev; |
95 | 561k | case 4: |
96 | 561k | asm volatile ( "lock; cmpxchgl %k1,%2" |
97 | 561k | : "=a" (prev) |
98 | 561k | : "r" (new), "m" (*__xg(ptr)), |
99 | 561k | "0" (old) |
100 | 561k | : "memory" ); |
101 | 561k | return prev; |
102 | 3.92M | case 8: |
103 | 3.92M | asm volatile ( "lock; cmpxchgq %1,%2" |
104 | 3.92M | : "=a" (prev) |
105 | 3.92M | : "r" (new), "m" (*__xg(ptr)), |
106 | 3.92M | "0" (old) |
107 | 3.92M | : "memory" ); |
108 | 3.92M | return prev; |
109 | 4.48M | } |
110 | 0 | return old; |
111 | 4.48M | } Unexecuted instantiation: core_parking.c:__cmpxchg Unexecuted instantiation: cpu.c:__cmpxchg Unexecuted instantiation: cpupool.c:__cmpxchg Unexecuted instantiation: domctl.c:__cmpxchg Line | Count | Source | 77 | 1 | { | 78 | 1 | unsigned long prev; | 79 | 1 | switch ( size ) | 80 | 1 | { | 81 | 0 | case 1: | 82 | 0 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 0 | : "=a" (prev) | 84 | 0 | : "q" (new), "m" (*__xg(ptr)), | 85 | 0 | "0" (old) | 86 | 0 | : "memory" ); | 87 | 0 | return prev; | 88 | 0 | case 2: | 89 | 0 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 0 | : "=a" (prev) | 91 | 0 | : "r" (new), "m" (*__xg(ptr)), | 92 | 0 | "0" (old) | 93 | 0 | : "memory" ); | 94 | 0 | return prev; | 95 | 1 | case 4: | 96 | 1 | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 1 | : "=a" (prev) | 98 | 1 | : "r" (new), "m" (*__xg(ptr)), | 99 | 1 | "0" (old) | 100 | 1 | : "memory" ); | 101 | 1 | return prev; | 102 | 0 | case 8: | 103 | 0 | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 0 | : "=a" (prev) | 105 | 0 | : "r" (new), "m" (*__xg(ptr)), | 106 | 0 | "0" (old) | 107 | 0 | : "memory" ); | 108 | 0 | return prev; | 109 | 1 | } | 110 | 0 | return old; | 111 | 1 | } |
Unexecuted instantiation: event_2l.c:__cmpxchg Unexecuted instantiation: event_channel.c:__cmpxchg Unexecuted instantiation: event_fifo.c:__cmpxchg Unexecuted instantiation: grant_table.c:__cmpxchg Unexecuted instantiation: guestcopy.c:__cmpxchg Line | Count | Source | 77 | 946 | { | 78 | 946 | unsigned long prev; | 79 | 946 | switch ( size ) | 80 | 946 | { | 81 | 946 | case 1: | 82 | 946 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 946 | : "=a" (prev) | 84 | 946 | : "q" (new), "m" (*__xg(ptr)), | 85 | 946 | "0" (old) | 86 | 946 | : "memory" ); | 87 | 946 | return prev; | 88 | 0 | case 2: | 89 | 0 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 0 | : "=a" (prev) | 91 | 0 | : "r" (new), "m" (*__xg(ptr)), | 92 | 0 | "0" (old) | 93 | 0 | : "memory" ); | 94 | 0 | return prev; | 95 | 0 | case 4: | 96 | 0 | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 0 | : "=a" (prev) | 98 | 0 | : "r" (new), "m" (*__xg(ptr)), | 99 | 0 | "0" (old) | 100 | 0 | : "memory" ); | 101 | 0 | return prev; | 102 | 0 | case 8: | 103 | 0 | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 0 | : "=a" (prev) | 105 | 0 | : "r" (new), "m" (*__xg(ptr)), | 106 | 0 | "0" (old) | 107 | 0 | : "memory" ); | 108 | 0 | return prev; | 109 | 946 | } | 110 | 0 | return old; | 111 | 946 | } |
Unexecuted instantiation: kernel.c:__cmpxchg Unexecuted instantiation: keyhandler.c:__cmpxchg Unexecuted instantiation: kexec.c:__cmpxchg Unexecuted instantiation: kimage.c:__cmpxchg Unexecuted instantiation: mem_access.c:__cmpxchg Unexecuted instantiation: memory.c:__cmpxchg Unexecuted instantiation: monitor.c:__cmpxchg Unexecuted instantiation: multicall.c:__cmpxchg Unexecuted instantiation: notifier.c:__cmpxchg Unexecuted instantiation: page_alloc.c:__cmpxchg Unexecuted instantiation: pdx.c:__cmpxchg Unexecuted instantiation: preempt.c:__cmpxchg Line | Count | Source | 77 | 1.11k | { | 78 | 1.11k | unsigned long prev; | 79 | 1.11k | switch ( size ) | 80 | 1.11k | { | 81 | 0 | case 1: | 82 | 0 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 0 | : "=a" (prev) | 84 | 0 | : "q" (new), "m" (*__xg(ptr)), | 85 | 0 | "0" (old) | 86 | 0 | : "memory" ); | 87 | 0 | return prev; | 88 | 0 | case 2: | 89 | 0 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 0 | : "=a" (prev) | 91 | 0 | : "r" (new), "m" (*__xg(ptr)), | 92 | 0 | "0" (old) | 93 | 0 | : "memory" ); | 94 | 0 | return prev; | 95 | 1.11k | case 4: | 96 | 1.11k | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 1.11k | : "=a" (prev) | 98 | 1.11k | : "r" (new), "m" (*__xg(ptr)), | 99 | 1.11k | "0" (old) | 100 | 1.11k | : "memory" ); | 101 | 1.11k | return prev; | 102 | 0 | case 8: | 103 | 0 | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 0 | : "=a" (prev) | 105 | 0 | : "r" (new), "m" (*__xg(ptr)), | 106 | 0 | "0" (old) | 107 | 0 | : "memory" ); | 108 | 0 | return prev; | 109 | 1.11k | } | 110 | 0 | return old; | 111 | 1.11k | } |
Unexecuted instantiation: radix-tree.c:__cmpxchg Unexecuted instantiation: rcupdate.c:__cmpxchg Line | Count | Source | 77 | 512k | { | 78 | 512k | unsigned long prev; | 79 | 512k | switch ( size ) | 80 | 512k | { | 81 | 0 | case 1: | 82 | 0 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 0 | : "=a" (prev) | 84 | 0 | : "q" (new), "m" (*__xg(ptr)), | 85 | 0 | "0" (old) | 86 | 0 | : "memory" ); | 87 | 0 | return prev; | 88 | 0 | case 2: | 89 | 0 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 0 | : "=a" (prev) | 91 | 0 | : "r" (new), "m" (*__xg(ptr)), | 92 | 0 | "0" (old) | 93 | 0 | : "memory" ); | 94 | 0 | return prev; | 95 | 512k | case 4: | 96 | 512k | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 512k | : "=a" (prev) | 98 | 512k | : "r" (new), "m" (*__xg(ptr)), | 99 | 512k | "0" (old) | 100 | 512k | : "memory" ); | 101 | 512k | return prev; | 102 | 0 | case 8: | 103 | 0 | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 0 | : "=a" (prev) | 105 | 0 | : "r" (new), "m" (*__xg(ptr)), | 106 | 0 | "0" (old) | 107 | 0 | : "memory" ); | 108 | 0 | return prev; | 109 | 512k | } | 110 | 0 | return old; | 111 | 512k | } |
Unexecuted instantiation: sched_arinc653.c:__cmpxchg Unexecuted instantiation: sched_credit.c:__cmpxchg Unexecuted instantiation: sched_credit2.c:__cmpxchg Unexecuted instantiation: sched_rt.c:__cmpxchg Unexecuted instantiation: sched_null.c:__cmpxchg Unexecuted instantiation: schedule.c:__cmpxchg Unexecuted instantiation: shutdown.c:__cmpxchg Unexecuted instantiation: softirq.c:__cmpxchg Unexecuted instantiation: smp.c:__cmpxchg Line | Count | Source | 77 | 8.21k | { | 78 | 8.21k | unsigned long prev; | 79 | 8.21k | switch ( size ) | 80 | 8.21k | { | 81 | 0 | case 1: | 82 | 0 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 0 | : "=a" (prev) | 84 | 0 | : "q" (new), "m" (*__xg(ptr)), | 85 | 0 | "0" (old) | 86 | 0 | : "memory" ); | 87 | 0 | return prev; | 88 | 400 | case 2: | 89 | 400 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 400 | : "=a" (prev) | 91 | 400 | : "r" (new), "m" (*__xg(ptr)), | 92 | 400 | "0" (old) | 93 | 400 | : "memory" ); | 94 | 400 | return prev; | 95 | 7.81k | case 4: | 96 | 7.81k | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 7.81k | : "=a" (prev) | 98 | 7.81k | : "r" (new), "m" (*__xg(ptr)), | 99 | 7.81k | "0" (old) | 100 | 7.81k | : "memory" ); | 101 | 7.81k | return prev; | 102 | 0 | case 8: | 103 | 0 | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 0 | : "=a" (prev) | 105 | 0 | : "r" (new), "m" (*__xg(ptr)), | 106 | 0 | "0" (old) | 107 | 0 | : "memory" ); | 108 | 0 | return prev; | 109 | 8.21k | } | 110 | 0 | return old; | 111 | 8.21k | } |
Unexecuted instantiation: stop_machine.c:__cmpxchg Unexecuted instantiation: symbols.c:__cmpxchg Unexecuted instantiation: sysctl.c:__cmpxchg Unexecuted instantiation: tasklet.c:__cmpxchg Unexecuted instantiation: time.c:__cmpxchg Unexecuted instantiation: timer.c:__cmpxchg Unexecuted instantiation: trace.c:__cmpxchg Unexecuted instantiation: virtual_region.c:__cmpxchg Unexecuted instantiation: vm_event.c:__cmpxchg Unexecuted instantiation: vmap.c:__cmpxchg Unexecuted instantiation: vsprintf.c:__cmpxchg Unexecuted instantiation: wait.c:__cmpxchg Unexecuted instantiation: xenoprof.c:__cmpxchg Unexecuted instantiation: xmalloc_tlsf.c:__cmpxchg Unexecuted instantiation: tmem.c:__cmpxchg Unexecuted instantiation: tmem_xen.c:__cmpxchg Unexecuted instantiation: tmem_control.c:__cmpxchg Unexecuted instantiation: llvm.c:__cmpxchg Unexecuted instantiation: libelf-loader.c:__cmpxchg Unexecuted instantiation: console.c:__cmpxchg Unexecuted instantiation: ns16550.c:__cmpxchg Unexecuted instantiation: ehci-dbgp.c:__cmpxchg Unexecuted instantiation: serial.c:__cmpxchg Unexecuted instantiation: cpufreq.c:__cmpxchg Unexecuted instantiation: cpufreq_ondemand.c:__cmpxchg Unexecuted instantiation: cpufreq_misc_governors.c:__cmpxchg Unexecuted instantiation: utility.c:__cmpxchg Unexecuted instantiation: pci.c:__cmpxchg Unexecuted instantiation: vpci.c:__cmpxchg Unexecuted instantiation: header.c:__cmpxchg Unexecuted instantiation: msi.c:__cmpxchg Unexecuted instantiation: msix.c:__cmpxchg Unexecuted instantiation: iommu.c:__cmpxchg Line | Count | Source | 77 | 1 | { | 78 | 1 | unsigned long prev; | 79 | 1 | switch ( size ) | 80 | 1 | { | 81 | 0 | case 1: | 82 | 0 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 0 | : "=a" (prev) | 84 | 0 | : "q" (new), "m" (*__xg(ptr)), | 85 | 0 | "0" (old) | 86 | 0 | : "memory" ); | 87 | 0 | return prev; | 88 | 0 | case 2: | 89 | 0 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 0 | : "=a" (prev) | 91 | 0 | : "r" (new), "m" (*__xg(ptr)), | 92 | 0 | "0" (old) | 93 | 0 | : "memory" ); | 94 | 0 | return prev; | 95 | 1 | case 4: | 96 | 1 | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 1 | : "=a" (prev) | 98 | 1 | : "r" (new), "m" (*__xg(ptr)), | 99 | 1 | "0" (old) | 100 | 1 | : "memory" ); | 101 | 1 | return prev; | 102 | 0 | case 8: | 103 | 0 | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 0 | : "=a" (prev) | 105 | 0 | : "r" (new), "m" (*__xg(ptr)), | 106 | 0 | "0" (old) | 107 | 0 | : "memory" ); | 108 | 0 | return prev; | 109 | 1 | } | 110 | 0 | return old; | 111 | 1 | } |
Unexecuted instantiation: dmar.c:__cmpxchg Unexecuted instantiation: utils.c:__cmpxchg Unexecuted instantiation: qinval.c:__cmpxchg Unexecuted instantiation: intremap.c:__cmpxchg Unexecuted instantiation: quirks.c:__cmpxchg Unexecuted instantiation: vtd.c:__cmpxchg Unexecuted instantiation: ats.c:__cmpxchg Unexecuted instantiation: iommu_init.c:__cmpxchg Unexecuted instantiation: iommu_map.c:__cmpxchg Unexecuted instantiation: pci_amd_iommu.c:__cmpxchg Unexecuted instantiation: iommu_intr.c:__cmpxchg Unexecuted instantiation: iommu_cmd.c:__cmpxchg Unexecuted instantiation: iommu_guest.c:__cmpxchg Unexecuted instantiation: numa.c:__cmpxchg Unexecuted instantiation: osl.c:__cmpxchg Unexecuted instantiation: pmstat.c:__cmpxchg Unexecuted instantiation: hwregs.c:__cmpxchg Unexecuted instantiation: reboot.c:__cmpxchg Unexecuted instantiation: tbutils.c:__cmpxchg Unexecuted instantiation: utglobal.c:__cmpxchg Unexecuted instantiation: erst.c:__cmpxchg Unexecuted instantiation: hest.c:__cmpxchg Unexecuted instantiation: apei-base.c:__cmpxchg Unexecuted instantiation: apei-io.c:__cmpxchg Unexecuted instantiation: vga.c:__cmpxchg Unexecuted instantiation: vesa.c:__cmpxchg Unexecuted instantiation: xsm_core.c:__cmpxchg Unexecuted instantiation: apic.c:__cmpxchg Unexecuted instantiation: cpuid.c:__cmpxchg Unexecuted instantiation: compat.c:__cmpxchg Unexecuted instantiation: crash.c:__cmpxchg Unexecuted instantiation: debug.c:__cmpxchg Unexecuted instantiation: domain_page.c:__cmpxchg Unexecuted instantiation: e820.c:__cmpxchg Unexecuted instantiation: extable.c:__cmpxchg Line | Count | Source | 77 | 39.6k | { | 78 | 39.6k | unsigned long prev; | 79 | 39.6k | switch ( size ) | 80 | 39.6k | { | 81 | 0 | case 1: | 82 | 0 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 0 | : "=a" (prev) | 84 | 0 | : "q" (new), "m" (*__xg(ptr)), | 85 | 0 | "0" (old) | 86 | 0 | : "memory" ); | 87 | 0 | return prev; | 88 | 0 | case 2: | 89 | 0 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 0 | : "=a" (prev) | 91 | 0 | : "r" (new), "m" (*__xg(ptr)), | 92 | 0 | "0" (old) | 93 | 0 | : "memory" ); | 94 | 0 | return prev; | 95 | 39.6k | case 4: | 96 | 39.6k | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 39.6k | : "=a" (prev) | 98 | 39.6k | : "r" (new), "m" (*__xg(ptr)), | 99 | 39.6k | "0" (old) | 100 | 39.6k | : "memory" ); | 101 | 39.6k | return prev; | 102 | 0 | case 8: | 103 | 0 | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 0 | : "=a" (prev) | 105 | 0 | : "r" (new), "m" (*__xg(ptr)), | 106 | 0 | "0" (old) | 107 | 0 | : "memory" ); | 108 | 0 | return prev; | 109 | 39.6k | } | 110 | 0 | return old; | 111 | 39.6k | } |
Unexecuted instantiation: hypercall.c:__cmpxchg Unexecuted instantiation: i387.c:__cmpxchg Unexecuted instantiation: i8259.c:__cmpxchg Unexecuted instantiation: io_apic.c:__cmpxchg Unexecuted instantiation: msr.c:__cmpxchg Unexecuted instantiation: ioport_emulate.c:__cmpxchg Unexecuted instantiation: machine_kexec.c:__cmpxchg Unexecuted instantiation: microcode_amd.c:__cmpxchg Unexecuted instantiation: microcode_intel.c:__cmpxchg Unexecuted instantiation: microcode.c:__cmpxchg Line | Count | Source | 77 | 3.92M | { | 78 | 3.92M | unsigned long prev; | 79 | 3.92M | switch ( size ) | 80 | 3.92M | { | 81 | 0 | case 1: | 82 | 0 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 0 | : "=a" (prev) | 84 | 0 | : "q" (new), "m" (*__xg(ptr)), | 85 | 0 | "0" (old) | 86 | 0 | : "memory" ); | 87 | 0 | return prev; | 88 | 0 | case 2: | 89 | 0 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 0 | : "=a" (prev) | 91 | 0 | : "r" (new), "m" (*__xg(ptr)), | 92 | 0 | "0" (old) | 93 | 0 | : "memory" ); | 94 | 0 | return prev; | 95 | 0 | case 4: | 96 | 0 | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 0 | : "=a" (prev) | 98 | 0 | : "r" (new), "m" (*__xg(ptr)), | 99 | 0 | "0" (old) | 100 | 0 | : "memory" ); | 101 | 0 | return prev; | 102 | 3.92M | case 8: | 103 | 3.92M | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 3.92M | : "=a" (prev) | 105 | 3.92M | : "r" (new), "m" (*__xg(ptr)), | 106 | 3.92M | "0" (old) | 107 | 3.92M | : "memory" ); | 108 | 3.92M | return prev; | 109 | 3.92M | } | 110 | 0 | return old; | 111 | 3.92M | } |
Unexecuted instantiation: mpparse.c:__cmpxchg Unexecuted instantiation: nmi.c:__cmpxchg Unexecuted instantiation: percpu.c:__cmpxchg Unexecuted instantiation: physdev.c:__cmpxchg Unexecuted instantiation: platform_hypercall.c:__cmpxchg Unexecuted instantiation: psr.c:__cmpxchg Unexecuted instantiation: setup.c:__cmpxchg Unexecuted instantiation: smpboot.c:__cmpxchg Unexecuted instantiation: srat.c:__cmpxchg Unexecuted instantiation: traps.c:__cmpxchg Unexecuted instantiation: usercopy.c:__cmpxchg Unexecuted instantiation: x86_emulate.c:__cmpxchg Unexecuted instantiation: tboot.c:__cmpxchg Unexecuted instantiation: hpet.c:__cmpxchg Unexecuted instantiation: xstate.c:__cmpxchg Unexecuted instantiation: lib.c:__cmpxchg Unexecuted instantiation: power.c:__cmpxchg Unexecuted instantiation: suspend.c:__cmpxchg Unexecuted instantiation: cpu_idle.c:__cmpxchg Unexecuted instantiation: cpuidle_menu.c:__cmpxchg Unexecuted instantiation: powernow.c:__cmpxchg Unexecuted instantiation: amd.c:__cmpxchg Unexecuted instantiation: common.c:__cmpxchg Unexecuted instantiation: intel.c:__cmpxchg Unexecuted instantiation: mwait-idle.c:__cmpxchg Unexecuted instantiation: vpmu.c:__cmpxchg Unexecuted instantiation: vpmu_amd.c:__cmpxchg Unexecuted instantiation: vpmu_intel.c:__cmpxchg Unexecuted instantiation: amd_nonfatal.c:__cmpxchg Unexecuted instantiation: mce_amd.c:__cmpxchg Unexecuted instantiation: mcaction.c:__cmpxchg Unexecuted instantiation: barrier.c:__cmpxchg Unexecuted instantiation: mctelem.c:__cmpxchg Unexecuted instantiation: mce.c:__cmpxchg Unexecuted instantiation: mce-apei.c:__cmpxchg Unexecuted instantiation: mce_intel.c:__cmpxchg Unexecuted instantiation: non-fatal.c:__cmpxchg Unexecuted instantiation: util.c:__cmpxchg Unexecuted instantiation: vmce.c:__cmpxchg Unexecuted instantiation: generic.c:__cmpxchg Unexecuted instantiation: main.c:__cmpxchg Unexecuted instantiation: bigsmp.c:__cmpxchg Unexecuted instantiation: x2apic.c:__cmpxchg Unexecuted instantiation: default.c:__cmpxchg Unexecuted instantiation: delivery.c:__cmpxchg Unexecuted instantiation: probe.c:__cmpxchg Unexecuted instantiation: asid.c:__cmpxchg Unexecuted instantiation: dm.c:__cmpxchg Unexecuted instantiation: emulate.c:__cmpxchg Unexecuted instantiation: hvm.c:__cmpxchg Unexecuted instantiation: i8254.c:__cmpxchg Unexecuted instantiation: intercept.c:__cmpxchg Unexecuted instantiation: ioreq.c:__cmpxchg Unexecuted instantiation: mtrr.c:__cmpxchg Unexecuted instantiation: nestedhvm.c:__cmpxchg Unexecuted instantiation: pmtimer.c:__cmpxchg Unexecuted instantiation: rtc.c:__cmpxchg Unexecuted instantiation: save.c:__cmpxchg Unexecuted instantiation: stdvga.c:__cmpxchg Unexecuted instantiation: vioapic.c:__cmpxchg Unexecuted instantiation: viridian.c:__cmpxchg Unexecuted instantiation: vlapic.c:__cmpxchg Unexecuted instantiation: vmsi.c:__cmpxchg Unexecuted instantiation: vpic.c:__cmpxchg Unexecuted instantiation: vpt.c:__cmpxchg Unexecuted instantiation: intr.c:__cmpxchg Unexecuted instantiation: nestedsvm.c:__cmpxchg Unexecuted instantiation: svm.c:__cmpxchg Unexecuted instantiation: svmdebug.c:__cmpxchg Unexecuted instantiation: vmcb.c:__cmpxchg Unexecuted instantiation: realmode.c:__cmpxchg Unexecuted instantiation: vmcs.c:__cmpxchg Line | Count | Source | 77 | 4.14k | { | 78 | 4.14k | unsigned long prev; | 79 | 4.14k | switch ( size ) | 80 | 4.14k | { | 81 | 0 | case 1: | 82 | 0 | asm volatile ( "lock; cmpxchgb %b1,%2" | 83 | 0 | : "=a" (prev) | 84 | 0 | : "q" (new), "m" (*__xg(ptr)), | 85 | 0 | "0" (old) | 86 | 0 | : "memory" ); | 87 | 0 | return prev; | 88 | 0 | case 2: | 89 | 0 | asm volatile ( "lock; cmpxchgw %w1,%2" | 90 | 0 | : "=a" (prev) | 91 | 0 | : "r" (new), "m" (*__xg(ptr)), | 92 | 0 | "0" (old) | 93 | 0 | : "memory" ); | 94 | 0 | return prev; | 95 | 0 | case 4: | 96 | 0 | asm volatile ( "lock; cmpxchgl %k1,%2" | 97 | 0 | : "=a" (prev) | 98 | 0 | : "r" (new), "m" (*__xg(ptr)), | 99 | 0 | "0" (old) | 100 | 0 | : "memory" ); | 101 | 0 | return prev; | 102 | 4.14k | case 8: | 103 | 4.14k | asm volatile ( "lock; cmpxchgq %1,%2" | 104 | 4.14k | : "=a" (prev) | 105 | 4.14k | : "r" (new), "m" (*__xg(ptr)), | 106 | 4.14k | "0" (old) | 107 | 4.14k | : "memory" ); | 108 | 4.14k | return prev; | 109 | 4.14k | } | 110 | 0 | return old; | 111 | 4.14k | } |
Unexecuted instantiation: vvmx.c:__cmpxchg Unexecuted instantiation: paging.c:__cmpxchg Unexecuted instantiation: p2m.c:__cmpxchg Unexecuted instantiation: p2m-pt.c:__cmpxchg Unexecuted instantiation: p2m-ept.c:__cmpxchg Unexecuted instantiation: p2m-pod.c:__cmpxchg Unexecuted instantiation: altp2m.c:__cmpxchg Unexecuted instantiation: guest_walk.c:__cmpxchg Unexecuted instantiation: mem_paging.c:__cmpxchg Unexecuted instantiation: mem_sharing.c:__cmpxchg Unexecuted instantiation: multi.c:__cmpxchg Unexecuted instantiation: hap.c:__cmpxchg Unexecuted instantiation: nested_hap.c:__cmpxchg Unexecuted instantiation: nested_ept.c:__cmpxchg Unexecuted instantiation: nmi_int.c:__cmpxchg Unexecuted instantiation: op_model_p4.c:__cmpxchg Unexecuted instantiation: op_model_ppro.c:__cmpxchg Unexecuted instantiation: op_model_athlon.c:__cmpxchg Unexecuted instantiation: backtrace.c:__cmpxchg Unexecuted instantiation: callback.c:__cmpxchg Unexecuted instantiation: descriptor-tables.c:__cmpxchg Unexecuted instantiation: emul-gate-op.c:__cmpxchg Unexecuted instantiation: emul-inv-op.c:__cmpxchg Unexecuted instantiation: emul-priv-op.c:__cmpxchg Unexecuted instantiation: iret.c:__cmpxchg Unexecuted instantiation: misc-hypercalls.c:__cmpxchg Unexecuted instantiation: ro-page-fault.c:__cmpxchg Unexecuted instantiation: acpi_mmcfg.c:__cmpxchg Unexecuted instantiation: mmconf-fam10h.c:__cmpxchg Unexecuted instantiation: mmconfig_64.c:__cmpxchg Unexecuted instantiation: mmconfig-shared.c:__cmpxchg |
112 | | |
113 | 0 | #define cmpxchgptr(ptr,o,n) ({ \ |
114 | 0 | const __typeof__(**(ptr)) *__o = (o); \ |
115 | 0 | __typeof__(**(ptr)) *__n = (n); \ |
116 | 0 | ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)__o, \ |
117 | 0 | (unsigned long)__n,sizeof(*(ptr)))); \ |
118 | 0 | }) |
119 | | |
120 | | /* |
121 | | * Undefined symbol to cause link failure if a wrong size is used with |
122 | | * arch_fetch_and_add(). |
123 | | */ |
124 | | extern unsigned long __bad_fetch_and_add_size(void); |
125 | | |
126 | | static always_inline unsigned long __xadd( |
127 | | volatile void *ptr, unsigned long v, int size) |
128 | 53.9M | { |
129 | 53.9M | switch ( size ) |
130 | 53.9M | { |
131 | 0 | case 1: |
132 | 0 | asm volatile ( "lock; xaddb %b0,%1" |
133 | 0 | : "+r" (v), "+m" (*__xg(ptr)) |
134 | 0 | :: "memory"); |
135 | 0 | return v; |
136 | 0 | case 2: |
137 | 0 | asm volatile ( "lock; xaddw %w0,%1" |
138 | 0 | : "+r" (v), "+m" (*__xg(ptr)) |
139 | 0 | :: "memory"); |
140 | 0 | return v; |
141 | 53.8M | case 4: |
142 | 53.8M | asm volatile ( "lock; xaddl %k0,%1" |
143 | 53.8M | : "+r" (v), "+m" (*__xg(ptr)) |
144 | 53.8M | :: "memory"); |
145 | 53.8M | return v; |
146 | 0 | case 8: |
147 | 0 | asm volatile ( "lock; xaddq %q0,%1" |
148 | 0 | : "+r" (v), "+m" (*__xg(ptr)) |
149 | 0 | :: "memory"); |
150 | 0 |
|
151 | 0 | return v; |
152 | 0 | default: |
153 | 0 | return __bad_fetch_and_add_size(); |
154 | 53.9M | } |
155 | 53.9M | } Unexecuted instantiation: mmconfig-shared.c:__xadd Unexecuted instantiation: core_parking.c:__xadd Unexecuted instantiation: mmconfig_64.c:__xadd Unexecuted instantiation: mmconf-fam10h.c:__xadd Unexecuted instantiation: acpi_mmcfg.c:__xadd Unexecuted instantiation: ro-page-fault.c:__xadd Unexecuted instantiation: misc-hypercalls.c:__xadd Unexecuted instantiation: iret.c:__xadd Unexecuted instantiation: emul-priv-op.c:__xadd Unexecuted instantiation: emul-inv-op.c:__xadd Unexecuted instantiation: emul-gate-op.c:__xadd Unexecuted instantiation: descriptor-tables.c:__xadd Unexecuted instantiation: callback.c:__xadd Unexecuted instantiation: backtrace.c:__xadd Unexecuted instantiation: op_model_athlon.c:__xadd Unexecuted instantiation: op_model_ppro.c:__xadd Unexecuted instantiation: op_model_p4.c:__xadd Unexecuted instantiation: nmi_int.c:__xadd Unexecuted instantiation: nested_ept.c:__xadd Unexecuted instantiation: nested_hap.c:__xadd Unexecuted instantiation: hap.c:__xadd Unexecuted instantiation: multi.c:__xadd Unexecuted instantiation: mem_sharing.c:__xadd Unexecuted instantiation: mem_paging.c:__xadd Unexecuted instantiation: guest_walk.c:__xadd Unexecuted instantiation: altp2m.c:__xadd Unexecuted instantiation: p2m-pod.c:__xadd Unexecuted instantiation: p2m-ept.c:__xadd Unexecuted instantiation: p2m-pt.c:__xadd Line | Count | Source | 128 | 139 | { | 129 | 139 | switch ( size ) | 130 | 139 | { | 131 | 0 | case 1: | 132 | 0 | asm volatile ( "lock; xaddb %b0,%1" | 133 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 134 | 0 | :: "memory"); | 135 | 0 | return v; | 136 | 0 | case 2: | 137 | 0 | asm volatile ( "lock; xaddw %w0,%1" | 138 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 139 | 0 | :: "memory"); | 140 | 0 | return v; | 141 | 139 | case 4: | 142 | 139 | asm volatile ( "lock; xaddl %k0,%1" | 143 | 139 | : "+r" (v), "+m" (*__xg(ptr)) | 144 | 139 | :: "memory"); | 145 | 139 | return v; | 146 | 0 | case 8: | 147 | 0 | asm volatile ( "lock; xaddq %q0,%1" | 148 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 149 | 0 | :: "memory"); | 150 | 0 |
| 151 | 0 | return v; | 152 | 0 | default: | 153 | 0 | return __bad_fetch_and_add_size(); | 154 | 139 | } | 155 | 139 | } |
Unexecuted instantiation: paging.c:__xadd Unexecuted instantiation: vvmx.c:__xadd Unexecuted instantiation: vmx.c:__xadd Unexecuted instantiation: vmcs.c:__xadd Unexecuted instantiation: realmode.c:__xadd Unexecuted instantiation: vmcb.c:__xadd Unexecuted instantiation: svmdebug.c:__xadd Unexecuted instantiation: svm.c:__xadd Unexecuted instantiation: nestedsvm.c:__xadd Unexecuted instantiation: intr.c:__xadd Unexecuted instantiation: vpt.c:__xadd Unexecuted instantiation: vpic.c:__xadd Unexecuted instantiation: vmsi.c:__xadd Unexecuted instantiation: vlapic.c:__xadd Unexecuted instantiation: viridian.c:__xadd Unexecuted instantiation: vioapic.c:__xadd Unexecuted instantiation: stdvga.c:__xadd Unexecuted instantiation: save.c:__xadd Unexecuted instantiation: rtc.c:__xadd Unexecuted instantiation: pmtimer.c:__xadd Unexecuted instantiation: nestedhvm.c:__xadd Unexecuted instantiation: mtrr.c:__xadd Unexecuted instantiation: ioreq.c:__xadd Unexecuted instantiation: intercept.c:__xadd Unexecuted instantiation: i8254.c:__xadd Unexecuted instantiation: hvm.c:__xadd Unexecuted instantiation: emulate.c:__xadd Unexecuted instantiation: dm.c:__xadd Unexecuted instantiation: asid.c:__xadd Unexecuted instantiation: probe.c:__xadd Unexecuted instantiation: delivery.c:__xadd Unexecuted instantiation: default.c:__xadd Unexecuted instantiation: x2apic.c:__xadd Unexecuted instantiation: bigsmp.c:__xadd Unexecuted instantiation: main.c:__xadd Unexecuted instantiation: generic.c:__xadd Unexecuted instantiation: vmce.c:__xadd Unexecuted instantiation: util.c:__xadd Unexecuted instantiation: non-fatal.c:__xadd Unexecuted instantiation: mce_intel.c:__xadd Unexecuted instantiation: mce-apei.c:__xadd Unexecuted instantiation: mce.c:__xadd Unexecuted instantiation: mctelem.c:__xadd Unexecuted instantiation: barrier.c:__xadd Unexecuted instantiation: mcaction.c:__xadd Unexecuted instantiation: mce_amd.c:__xadd Unexecuted instantiation: amd_nonfatal.c:__xadd Unexecuted instantiation: vpmu_intel.c:__xadd Unexecuted instantiation: vpmu_amd.c:__xadd Unexecuted instantiation: vpmu.c:__xadd Unexecuted instantiation: mwait-idle.c:__xadd Unexecuted instantiation: intel.c:__xadd Unexecuted instantiation: common.c:__xadd Unexecuted instantiation: amd.c:__xadd Unexecuted instantiation: powernow.c:__xadd Unexecuted instantiation: cpuidle_menu.c:__xadd Unexecuted instantiation: cpu_idle.c:__xadd Unexecuted instantiation: suspend.c:__xadd Unexecuted instantiation: power.c:__xadd Unexecuted instantiation: lib.c:__xadd Unexecuted instantiation: xstate.c:__xadd Unexecuted instantiation: hpet.c:__xadd Unexecuted instantiation: tboot.c:__xadd Unexecuted instantiation: x86_emulate.c:__xadd Unexecuted instantiation: usercopy.c:__xadd Unexecuted instantiation: traps.c:__xadd Unexecuted instantiation: srat.c:__xadd Unexecuted instantiation: smpboot.c:__xadd Unexecuted instantiation: setup.c:__xadd Unexecuted instantiation: psr.c:__xadd Unexecuted instantiation: platform_hypercall.c:__xadd Unexecuted instantiation: physdev.c:__xadd Unexecuted instantiation: percpu.c:__xadd Unexecuted instantiation: nmi.c:__xadd Unexecuted instantiation: mpparse.c:__xadd Unexecuted instantiation: mm.c:__xadd Unexecuted instantiation: microcode.c:__xadd Unexecuted instantiation: microcode_intel.c:__xadd Unexecuted instantiation: microcode_amd.c:__xadd Unexecuted instantiation: machine_kexec.c:__xadd Unexecuted instantiation: ioport_emulate.c:__xadd Unexecuted instantiation: msr.c:__xadd Unexecuted instantiation: io_apic.c:__xadd Unexecuted instantiation: i8259.c:__xadd Unexecuted instantiation: i387.c:__xadd Unexecuted instantiation: hypercall.c:__xadd Unexecuted instantiation: flushtlb.c:__xadd Unexecuted instantiation: extable.c:__xadd Unexecuted instantiation: e820.c:__xadd Unexecuted instantiation: domain_page.c:__xadd Unexecuted instantiation: debug.c:__xadd Unexecuted instantiation: crash.c:__xadd Unexecuted instantiation: compat.c:__xadd Unexecuted instantiation: cpuid.c:__xadd Unexecuted instantiation: apic.c:__xadd Unexecuted instantiation: xsm_core.c:__xadd Unexecuted instantiation: vesa.c:__xadd Unexecuted instantiation: vga.c:__xadd Unexecuted instantiation: apei-io.c:__xadd Unexecuted instantiation: apei-base.c:__xadd Unexecuted instantiation: hest.c:__xadd Unexecuted instantiation: erst.c:__xadd Unexecuted instantiation: utglobal.c:__xadd Unexecuted instantiation: tbutils.c:__xadd Unexecuted instantiation: reboot.c:__xadd Unexecuted instantiation: hwregs.c:__xadd Unexecuted instantiation: pmstat.c:__xadd Unexecuted instantiation: osl.c:__xadd Unexecuted instantiation: numa.c:__xadd Unexecuted instantiation: iommu_guest.c:__xadd Unexecuted instantiation: iommu_cmd.c:__xadd Unexecuted instantiation: iommu_intr.c:__xadd Unexecuted instantiation: pci_amd_iommu.c:__xadd Unexecuted instantiation: iommu_map.c:__xadd Unexecuted instantiation: iommu_init.c:__xadd Unexecuted instantiation: ats.c:__xadd Unexecuted instantiation: vtd.c:__xadd Unexecuted instantiation: quirks.c:__xadd Unexecuted instantiation: intremap.c:__xadd Unexecuted instantiation: qinval.c:__xadd Unexecuted instantiation: utils.c:__xadd Unexecuted instantiation: dmar.c:__xadd Line | Count | Source | 128 | 594k | { | 129 | 594k | switch ( size ) | 130 | 594k | { | 131 | 0 | case 1: | 132 | 0 | asm volatile ( "lock; xaddb %b0,%1" | 133 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 134 | 0 | :: "memory"); | 135 | 0 | return v; | 136 | 0 | case 2: | 137 | 0 | asm volatile ( "lock; xaddw %w0,%1" | 138 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 139 | 0 | :: "memory"); | 140 | 0 | return v; | 141 | 593k | case 4: | 142 | 593k | asm volatile ( "lock; xaddl %k0,%1" | 143 | 593k | : "+r" (v), "+m" (*__xg(ptr)) | 144 | 593k | :: "memory"); | 145 | 593k | return v; | 146 | 0 | case 8: | 147 | 0 | asm volatile ( "lock; xaddq %q0,%1" | 148 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 149 | 0 | :: "memory"); | 150 | 0 |
| 151 | 0 | return v; | 152 | 0 | default: | 153 | 0 | return __bad_fetch_and_add_size(); | 154 | 594k | } | 155 | 594k | } |
Unexecuted instantiation: iommu.c:__xadd Unexecuted instantiation: msix.c:__xadd Unexecuted instantiation: msi.c:__xadd Unexecuted instantiation: header.c:__xadd Unexecuted instantiation: vpci.c:__xadd Unexecuted instantiation: pci.c:__xadd Unexecuted instantiation: utility.c:__xadd Unexecuted instantiation: cpufreq_misc_governors.c:__xadd Unexecuted instantiation: cpufreq_ondemand.c:__xadd Unexecuted instantiation: cpufreq.c:__xadd Unexecuted instantiation: serial.c:__xadd Unexecuted instantiation: ehci-dbgp.c:__xadd Unexecuted instantiation: ns16550.c:__xadd Unexecuted instantiation: console.c:__xadd Unexecuted instantiation: libelf-loader.c:__xadd Unexecuted instantiation: llvm.c:__xadd Unexecuted instantiation: tmem_control.c:__xadd Unexecuted instantiation: tmem_xen.c:__xadd Unexecuted instantiation: tmem.c:__xadd Unexecuted instantiation: xmalloc_tlsf.c:__xadd Unexecuted instantiation: xenoprof.c:__xadd Unexecuted instantiation: wait.c:__xadd Unexecuted instantiation: vsprintf.c:__xadd Unexecuted instantiation: vmap.c:__xadd Unexecuted instantiation: vm_event.c:__xadd Unexecuted instantiation: virtual_region.c:__xadd Unexecuted instantiation: trace.c:__xadd Unexecuted instantiation: timer.c:__xadd Unexecuted instantiation: time.c:__xadd Unexecuted instantiation: tasklet.c:__xadd Unexecuted instantiation: sysctl.c:__xadd Unexecuted instantiation: symbols.c:__xadd Unexecuted instantiation: stop_machine.c:__xadd Line | Count | Source | 128 | 50.9M | { | 129 | 50.9M | switch ( size ) | 130 | 50.9M | { | 131 | 0 | case 1: | 132 | 0 | asm volatile ( "lock; xaddb %b0,%1" | 133 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 134 | 0 | :: "memory"); | 135 | 0 | return v; | 136 | 0 | case 2: | 137 | 0 | asm volatile ( "lock; xaddw %w0,%1" | 138 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 139 | 0 | :: "memory"); | 140 | 0 | return v; | 141 | 50.8M | case 4: | 142 | 50.8M | asm volatile ( "lock; xaddl %k0,%1" | 143 | 50.8M | : "+r" (v), "+m" (*__xg(ptr)) | 144 | 50.8M | :: "memory"); | 145 | 50.8M | return v; | 146 | 0 | case 8: | 147 | 0 | asm volatile ( "lock; xaddq %q0,%1" | 148 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 149 | 0 | :: "memory"); | 150 | 0 |
| 151 | 0 | return v; | 152 | 0 | default: | 153 | 0 | return __bad_fetch_and_add_size(); | 154 | 50.9M | } | 155 | 50.9M | } |
Unexecuted instantiation: smp.c:__xadd Unexecuted instantiation: softirq.c:__xadd Unexecuted instantiation: shutdown.c:__xadd Unexecuted instantiation: schedule.c:__xadd Unexecuted instantiation: sched_null.c:__xadd Unexecuted instantiation: sched_rt.c:__xadd Unexecuted instantiation: sched_credit2.c:__xadd Unexecuted instantiation: sched_credit.c:__xadd Unexecuted instantiation: sched_arinc653.c:__xadd Line | Count | Source | 128 | 138 | { | 129 | 138 | switch ( size ) | 130 | 138 | { | 131 | 0 | case 1: | 132 | 0 | asm volatile ( "lock; xaddb %b0,%1" | 133 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 134 | 0 | :: "memory"); | 135 | 0 | return v; | 136 | 0 | case 2: | 137 | 0 | asm volatile ( "lock; xaddw %w0,%1" | 138 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 139 | 0 | :: "memory"); | 140 | 0 | return v; | 141 | 138 | case 4: | 142 | 138 | asm volatile ( "lock; xaddl %k0,%1" | 143 | 138 | : "+r" (v), "+m" (*__xg(ptr)) | 144 | 138 | :: "memory"); | 145 | 138 | return v; | 146 | 0 | case 8: | 147 | 0 | asm volatile ( "lock; xaddq %q0,%1" | 148 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 149 | 0 | :: "memory"); | 150 | 0 |
| 151 | 0 | return v; | 152 | 0 | default: | 153 | 0 | return __bad_fetch_and_add_size(); | 154 | 138 | } | 155 | 138 | } |
Unexecuted instantiation: rcupdate.c:__xadd Unexecuted instantiation: radix-tree.c:__xadd Line | Count | Source | 128 | 2.44M | { | 129 | 2.44M | switch ( size ) | 130 | 2.44M | { | 131 | 0 | case 1: | 132 | 0 | asm volatile ( "lock; xaddb %b0,%1" | 133 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 134 | 0 | :: "memory"); | 135 | 0 | return v; | 136 | 0 | case 2: | 137 | 0 | asm volatile ( "lock; xaddw %w0,%1" | 138 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 139 | 0 | :: "memory"); | 140 | 0 | return v; | 141 | 2.44M | case 4: | 142 | 2.44M | asm volatile ( "lock; xaddl %k0,%1" | 143 | 2.44M | : "+r" (v), "+m" (*__xg(ptr)) | 144 | 2.44M | :: "memory"); | 145 | 2.44M | return v; | 146 | 0 | case 8: | 147 | 0 | asm volatile ( "lock; xaddq %q0,%1" | 148 | 0 | : "+r" (v), "+m" (*__xg(ptr)) | 149 | 0 | :: "memory"); | 150 | 0 |
| 151 | 0 | return v; | 152 | 0 | default: | 153 | 0 | return __bad_fetch_and_add_size(); | 154 | 2.44M | } | 155 | 2.44M | } |
Unexecuted instantiation: preempt.c:__xadd Unexecuted instantiation: pdx.c:__xadd Unexecuted instantiation: page_alloc.c:__xadd Unexecuted instantiation: notifier.c:__xadd Unexecuted instantiation: multicall.c:__xadd Unexecuted instantiation: monitor.c:__xadd Unexecuted instantiation: memory.c:__xadd Unexecuted instantiation: mem_access.c:__xadd Unexecuted instantiation: kimage.c:__xadd Unexecuted instantiation: kexec.c:__xadd Unexecuted instantiation: keyhandler.c:__xadd Unexecuted instantiation: kernel.c:__xadd Unexecuted instantiation: irq.c:__xadd Unexecuted instantiation: guestcopy.c:__xadd Unexecuted instantiation: grant_table.c:__xadd Unexecuted instantiation: event_fifo.c:__xadd Unexecuted instantiation: event_channel.c:__xadd Unexecuted instantiation: event_2l.c:__xadd Unexecuted instantiation: domain.c:__xadd Unexecuted instantiation: domctl.c:__xadd Unexecuted instantiation: cpupool.c:__xadd Unexecuted instantiation: cpu.c:__xadd |
156 | | |
157 | | /* |
158 | | * Atomically add @v to the 1, 2, 4, or 8 byte value at @ptr. Returns |
159 | | * the previous value. |
160 | | * |
161 | | * This is a full memory barrier. |
162 | | */ |
163 | | #define arch_fetch_and_add(ptr, v) \ |
164 | 51.8M | ((typeof(*(ptr)))__xadd(ptr, (typeof(*(ptr)))(v), sizeof(*(ptr)))) |
165 | | |
166 | | /* |
167 | | * Both Intel and AMD agree that, from a programmer's viewpoint: |
168 | | * Loads cannot be reordered relative to other loads. |
169 | | * Stores cannot be reordered relative to other stores. |
170 | | * |
171 | | * Intel64 Architecture Memory Ordering White Paper |
172 | | * <http://developer.intel.com/products/processor/manuals/318147.pdf> |
173 | | * |
174 | | * AMD64 Architecture Programmer's Manual, Volume 2: System Programming |
175 | | * <http://www.amd.com/us-en/assets/content_type/\ |
176 | | * white_papers_and_tech_docs/24593.pdf> |
177 | | */ |
178 | 58.0M | #define rmb() barrier() |
179 | 6.22M | #define wmb() barrier() |
180 | | |
181 | 8.61M | #define smp_mb() mb() |
182 | 58.0M | #define smp_rmb() rmb() |
183 | 6.22M | #define smp_wmb() wmb() |
184 | | |
185 | | #define set_mb(var, value) do { xchg(&var, value); } while (0) |
186 | | #define set_wmb(var, value) do { var = value; wmb(); } while (0) |
187 | | |
188 | 57.3M | #define local_irq_disable() asm volatile ( "cli" : : : "memory" ) |
189 | 20.9M | #define local_irq_enable() asm volatile ( "sti" : : : "memory" ) |
190 | | |
191 | | /* used in the idle loop; sti takes one instruction cycle to complete */ |
192 | 0 | #define safe_halt() asm volatile ( "sti; hlt" : : : "memory" ) |
193 | | /* used when interrupts are already enabled or to shutdown the processor */ |
194 | 0 | #define halt() asm volatile ( "hlt" : : : "memory" ) |
195 | | |
196 | 130M | #define local_save_flags(x) \ |
197 | 130M | ({ \ |
198 | 130M | BUILD_BUG_ON(sizeof(x) != sizeof(long)); \ |
199 | 130M | asm volatile ( "pushf" __OS " ; pop" __OS " %0" : "=g" (x)); \ |
200 | 130M | }) |
201 | 41.7M | #define local_irq_save(x) \ |
202 | 41.7M | ({ \ |
203 | 41.7M | local_save_flags(x); \ |
204 | 41.7M | local_irq_disable(); \ |
205 | 41.7M | }) |
206 | 41.8M | #define local_irq_restore(x) \ |
207 | 41.8M | ({ \ |
208 | 41.8M | BUILD_BUG_ON(sizeof(x) != sizeof(long)); \ |
209 | 41.8M | asm volatile ( "pushfq\n\t" \ |
210 | 41.8M | "andq %0, (%%rsp)\n\t" \ |
211 | 41.8M | "orq %1, (%%rsp)\n\t" \ |
212 | 41.8M | "popfq" \ |
213 | 41.8M | : : "i?r" ( ~X86_EFLAGS_IF ), \ |
214 | 41.8M | "ri" ( (x) & X86_EFLAGS_IF ) ); \ |
215 | 41.8M | }) |
216 | | |
217 | | static inline int local_irq_is_enabled(void) |
218 | 88.9M | { |
219 | 88.9M | unsigned long flags; |
220 | 88.9M | local_save_flags(flags); |
221 | 88.9M | return !!(flags & X86_EFLAGS_IF); |
222 | 88.9M | } Unexecuted instantiation: mmconfig-shared.c:local_irq_is_enabled Unexecuted instantiation: cpu.c:local_irq_is_enabled Unexecuted instantiation: cpupool.c:local_irq_is_enabled Unexecuted instantiation: domctl.c:local_irq_is_enabled domain.c:local_irq_is_enabled Line | Count | Source | 218 | 164k | { | 219 | 164k | unsigned long flags; | 220 | 164k | local_save_flags(flags); | 221 | 164k | return !!(flags & X86_EFLAGS_IF); | 222 | 164k | } |
Unexecuted instantiation: event_2l.c:local_irq_is_enabled Unexecuted instantiation: event_channel.c:local_irq_is_enabled Unexecuted instantiation: event_fifo.c:local_irq_is_enabled Unexecuted instantiation: grant_table.c:local_irq_is_enabled Unexecuted instantiation: guestcopy.c:local_irq_is_enabled irq.c:local_irq_is_enabled Line | Count | Source | 218 | 112k | { | 219 | 112k | unsigned long flags; | 220 | 112k | local_save_flags(flags); | 221 | 112k | return !!(flags & X86_EFLAGS_IF); | 222 | 112k | } |
Unexecuted instantiation: kernel.c:local_irq_is_enabled Unexecuted instantiation: keyhandler.c:local_irq_is_enabled Unexecuted instantiation: kexec.c:local_irq_is_enabled Unexecuted instantiation: kimage.c:local_irq_is_enabled Unexecuted instantiation: mem_access.c:local_irq_is_enabled Unexecuted instantiation: memory.c:local_irq_is_enabled Unexecuted instantiation: monitor.c:local_irq_is_enabled Unexecuted instantiation: multicall.c:local_irq_is_enabled Unexecuted instantiation: notifier.c:local_irq_is_enabled page_alloc.c:local_irq_is_enabled Line | Count | Source | 218 | 1 | { | 219 | 1 | unsigned long flags; | 220 | 1 | local_save_flags(flags); | 221 | 1 | return !!(flags & X86_EFLAGS_IF); | 222 | 1 | } |
Unexecuted instantiation: pdx.c:local_irq_is_enabled preempt.c:local_irq_is_enabled Line | Count | Source | 218 | 20.7M | { | 219 | 20.7M | unsigned long flags; | 220 | 20.7M | local_save_flags(flags); | 221 | 20.7M | return !!(flags & X86_EFLAGS_IF); | 222 | 20.7M | } |
Unexecuted instantiation: rangeset.c:local_irq_is_enabled Unexecuted instantiation: radix-tree.c:local_irq_is_enabled Unexecuted instantiation: rcupdate.c:local_irq_is_enabled Unexecuted instantiation: rwlock.c:local_irq_is_enabled Unexecuted instantiation: sched_arinc653.c:local_irq_is_enabled Unexecuted instantiation: sched_credit.c:local_irq_is_enabled Unexecuted instantiation: sched_credit2.c:local_irq_is_enabled Unexecuted instantiation: sched_rt.c:local_irq_is_enabled Unexecuted instantiation: sched_null.c:local_irq_is_enabled Unexecuted instantiation: schedule.c:local_irq_is_enabled Unexecuted instantiation: shutdown.c:local_irq_is_enabled softirq.c:local_irq_is_enabled Line | Count | Source | 218 | 1.91M | { | 219 | 1.91M | unsigned long flags; | 220 | 1.91M | local_save_flags(flags); | 221 | 1.91M | return !!(flags & X86_EFLAGS_IF); | 222 | 1.91M | } |
smp.c:local_irq_is_enabled Line | Count | Source | 218 | 223k | { | 219 | 223k | unsigned long flags; | 220 | 223k | local_save_flags(flags); | 221 | 223k | return !!(flags & X86_EFLAGS_IF); | 222 | 223k | } |
spinlock.c:local_irq_is_enabled Line | Count | Source | 218 | 63.9M | { | 219 | 63.9M | unsigned long flags; | 220 | 63.9M | local_save_flags(flags); | 221 | 63.9M | return !!(flags & X86_EFLAGS_IF); | 222 | 63.9M | } |
Unexecuted instantiation: stop_machine.c:local_irq_is_enabled Unexecuted instantiation: symbols.c:local_irq_is_enabled Unexecuted instantiation: sysctl.c:local_irq_is_enabled Unexecuted instantiation: tasklet.c:local_irq_is_enabled time.c:local_irq_is_enabled Line | Count | Source | 218 | 146 | { | 219 | 146 | unsigned long flags; | 220 | 146 | local_save_flags(flags); | 221 | 146 | return !!(flags & X86_EFLAGS_IF); | 222 | 146 | } |
Unexecuted instantiation: timer.c:local_irq_is_enabled Unexecuted instantiation: trace.c:local_irq_is_enabled virtual_region.c:local_irq_is_enabled Line | Count | Source | 218 | 2 | { | 219 | 2 | unsigned long flags; | 220 | 2 | local_save_flags(flags); | 221 | 2 | return !!(flags & X86_EFLAGS_IF); | 222 | 2 | } |
Unexecuted instantiation: vm_event.c:local_irq_is_enabled Unexecuted instantiation: vmap.c:local_irq_is_enabled Unexecuted instantiation: vsprintf.c:local_irq_is_enabled Unexecuted instantiation: wait.c:local_irq_is_enabled Unexecuted instantiation: xenoprof.c:local_irq_is_enabled Unexecuted instantiation: xmalloc_tlsf.c:local_irq_is_enabled Unexecuted instantiation: tmem.c:local_irq_is_enabled Unexecuted instantiation: tmem_xen.c:local_irq_is_enabled Unexecuted instantiation: tmem_control.c:local_irq_is_enabled Unexecuted instantiation: llvm.c:local_irq_is_enabled Unexecuted instantiation: libelf-loader.c:local_irq_is_enabled Unexecuted instantiation: console.c:local_irq_is_enabled Unexecuted instantiation: ns16550.c:local_irq_is_enabled Unexecuted instantiation: ehci-dbgp.c:local_irq_is_enabled Unexecuted instantiation: serial.c:local_irq_is_enabled Unexecuted instantiation: cpufreq.c:local_irq_is_enabled Unexecuted instantiation: cpufreq_ondemand.c:local_irq_is_enabled Unexecuted instantiation: cpufreq_misc_governors.c:local_irq_is_enabled Unexecuted instantiation: utility.c:local_irq_is_enabled Unexecuted instantiation: pci.c:local_irq_is_enabled Unexecuted instantiation: vpci.c:local_irq_is_enabled Unexecuted instantiation: header.c:local_irq_is_enabled Unexecuted instantiation: msi.c:local_irq_is_enabled Unexecuted instantiation: msix.c:local_irq_is_enabled Unexecuted instantiation: iommu.c:local_irq_is_enabled Unexecuted instantiation: io.c:local_irq_is_enabled Unexecuted instantiation: dmar.c:local_irq_is_enabled Unexecuted instantiation: utils.c:local_irq_is_enabled Unexecuted instantiation: qinval.c:local_irq_is_enabled Unexecuted instantiation: intremap.c:local_irq_is_enabled Unexecuted instantiation: quirks.c:local_irq_is_enabled Unexecuted instantiation: vtd.c:local_irq_is_enabled Unexecuted instantiation: ats.c:local_irq_is_enabled Unexecuted instantiation: iommu_init.c:local_irq_is_enabled Unexecuted instantiation: iommu_map.c:local_irq_is_enabled Unexecuted instantiation: pci_amd_iommu.c:local_irq_is_enabled Unexecuted instantiation: iommu_intr.c:local_irq_is_enabled Unexecuted instantiation: iommu_cmd.c:local_irq_is_enabled Unexecuted instantiation: iommu_guest.c:local_irq_is_enabled Unexecuted instantiation: numa.c:local_irq_is_enabled Unexecuted instantiation: osl.c:local_irq_is_enabled Unexecuted instantiation: pmstat.c:local_irq_is_enabled Unexecuted instantiation: hwregs.c:local_irq_is_enabled Unexecuted instantiation: reboot.c:local_irq_is_enabled Unexecuted instantiation: tbutils.c:local_irq_is_enabled Unexecuted instantiation: utglobal.c:local_irq_is_enabled Unexecuted instantiation: erst.c:local_irq_is_enabled Unexecuted instantiation: hest.c:local_irq_is_enabled Unexecuted instantiation: apei-base.c:local_irq_is_enabled Unexecuted instantiation: apei-io.c:local_irq_is_enabled Unexecuted instantiation: vga.c:local_irq_is_enabled Unexecuted instantiation: vesa.c:local_irq_is_enabled Unexecuted instantiation: xsm_core.c:local_irq_is_enabled Unexecuted instantiation: apic.c:local_irq_is_enabled Unexecuted instantiation: cpuid.c:local_irq_is_enabled Unexecuted instantiation: compat.c:local_irq_is_enabled Unexecuted instantiation: crash.c:local_irq_is_enabled Unexecuted instantiation: debug.c:local_irq_is_enabled domain_page.c:local_irq_is_enabled Line | Count | Source | 218 | 12 | { | 219 | 12 | unsigned long flags; | 220 | 12 | local_save_flags(flags); | 221 | 12 | return !!(flags & X86_EFLAGS_IF); | 222 | 12 | } |
Unexecuted instantiation: e820.c:local_irq_is_enabled Unexecuted instantiation: extable.c:local_irq_is_enabled Unexecuted instantiation: flushtlb.c:local_irq_is_enabled Unexecuted instantiation: hypercall.c:local_irq_is_enabled Unexecuted instantiation: i387.c:local_irq_is_enabled Unexecuted instantiation: i8259.c:local_irq_is_enabled Unexecuted instantiation: io_apic.c:local_irq_is_enabled Unexecuted instantiation: msr.c:local_irq_is_enabled Unexecuted instantiation: ioport_emulate.c:local_irq_is_enabled Unexecuted instantiation: machine_kexec.c:local_irq_is_enabled Unexecuted instantiation: microcode_amd.c:local_irq_is_enabled Unexecuted instantiation: microcode_intel.c:local_irq_is_enabled Unexecuted instantiation: microcode.c:local_irq_is_enabled mm.c:local_irq_is_enabled Line | Count | Source | 218 | 59 | { | 219 | 59 | unsigned long flags; | 220 | 59 | local_save_flags(flags); | 221 | 59 | return !!(flags & X86_EFLAGS_IF); | 222 | 59 | } |
Unexecuted instantiation: mpparse.c:local_irq_is_enabled Unexecuted instantiation: nmi.c:local_irq_is_enabled Unexecuted instantiation: percpu.c:local_irq_is_enabled Unexecuted instantiation: physdev.c:local_irq_is_enabled Unexecuted instantiation: platform_hypercall.c:local_irq_is_enabled Unexecuted instantiation: psr.c:local_irq_is_enabled Unexecuted instantiation: setup.c:local_irq_is_enabled Unexecuted instantiation: smpboot.c:local_irq_is_enabled Unexecuted instantiation: srat.c:local_irq_is_enabled Unexecuted instantiation: traps.c:local_irq_is_enabled Unexecuted instantiation: usercopy.c:local_irq_is_enabled Unexecuted instantiation: x86_emulate.c:local_irq_is_enabled Unexecuted instantiation: tboot.c:local_irq_is_enabled Unexecuted instantiation: hpet.c:local_irq_is_enabled Unexecuted instantiation: xstate.c:local_irq_is_enabled Unexecuted instantiation: lib.c:local_irq_is_enabled Unexecuted instantiation: power.c:local_irq_is_enabled Unexecuted instantiation: suspend.c:local_irq_is_enabled cpu_idle.c:local_irq_is_enabled Line | Count | Source | 218 | 1.90M | { | 219 | 1.90M | unsigned long flags; | 220 | 1.90M | local_save_flags(flags); | 221 | 1.90M | return !!(flags & X86_EFLAGS_IF); | 222 | 1.90M | } |
Unexecuted instantiation: cpuidle_menu.c:local_irq_is_enabled Unexecuted instantiation: powernow.c:local_irq_is_enabled Unexecuted instantiation: amd.c:local_irq_is_enabled Unexecuted instantiation: common.c:local_irq_is_enabled Unexecuted instantiation: intel.c:local_irq_is_enabled Unexecuted instantiation: mwait-idle.c:local_irq_is_enabled Unexecuted instantiation: vpmu.c:local_irq_is_enabled Unexecuted instantiation: vpmu_amd.c:local_irq_is_enabled Unexecuted instantiation: vpmu_intel.c:local_irq_is_enabled Unexecuted instantiation: amd_nonfatal.c:local_irq_is_enabled Unexecuted instantiation: mce_amd.c:local_irq_is_enabled Unexecuted instantiation: mcaction.c:local_irq_is_enabled Unexecuted instantiation: barrier.c:local_irq_is_enabled Unexecuted instantiation: mctelem.c:local_irq_is_enabled Unexecuted instantiation: mce.c:local_irq_is_enabled Unexecuted instantiation: mce-apei.c:local_irq_is_enabled Unexecuted instantiation: mce_intel.c:local_irq_is_enabled Unexecuted instantiation: non-fatal.c:local_irq_is_enabled Unexecuted instantiation: util.c:local_irq_is_enabled Unexecuted instantiation: vmce.c:local_irq_is_enabled Unexecuted instantiation: generic.c:local_irq_is_enabled Unexecuted instantiation: main.c:local_irq_is_enabled Unexecuted instantiation: bigsmp.c:local_irq_is_enabled Unexecuted instantiation: x2apic.c:local_irq_is_enabled Unexecuted instantiation: default.c:local_irq_is_enabled Unexecuted instantiation: delivery.c:local_irq_is_enabled Unexecuted instantiation: probe.c:local_irq_is_enabled Unexecuted instantiation: asid.c:local_irq_is_enabled Unexecuted instantiation: dm.c:local_irq_is_enabled Unexecuted instantiation: emulate.c:local_irq_is_enabled Unexecuted instantiation: hvm.c:local_irq_is_enabled Unexecuted instantiation: i8254.c:local_irq_is_enabled Unexecuted instantiation: intercept.c:local_irq_is_enabled Unexecuted instantiation: ioreq.c:local_irq_is_enabled Unexecuted instantiation: mtrr.c:local_irq_is_enabled Unexecuted instantiation: nestedhvm.c:local_irq_is_enabled Unexecuted instantiation: pmtimer.c:local_irq_is_enabled Unexecuted instantiation: rtc.c:local_irq_is_enabled Unexecuted instantiation: save.c:local_irq_is_enabled Unexecuted instantiation: stdvga.c:local_irq_is_enabled Unexecuted instantiation: vioapic.c:local_irq_is_enabled Unexecuted instantiation: viridian.c:local_irq_is_enabled Unexecuted instantiation: vlapic.c:local_irq_is_enabled Unexecuted instantiation: vmsi.c:local_irq_is_enabled Unexecuted instantiation: vpic.c:local_irq_is_enabled Unexecuted instantiation: vpt.c:local_irq_is_enabled Unexecuted instantiation: intr.c:local_irq_is_enabled Unexecuted instantiation: nestedsvm.c:local_irq_is_enabled Unexecuted instantiation: svm.c:local_irq_is_enabled Unexecuted instantiation: svmdebug.c:local_irq_is_enabled Unexecuted instantiation: vmcb.c:local_irq_is_enabled Unexecuted instantiation: realmode.c:local_irq_is_enabled vmcs.c:local_irq_is_enabled Line | Count | Source | 218 | 3.69k | { | 219 | 3.69k | unsigned long flags; | 220 | 3.69k | local_save_flags(flags); | 221 | 3.69k | return !!(flags & X86_EFLAGS_IF); | 222 | 3.69k | } |
Unexecuted instantiation: vmx.c:local_irq_is_enabled Unexecuted instantiation: vvmx.c:local_irq_is_enabled Unexecuted instantiation: paging.c:local_irq_is_enabled Unexecuted instantiation: p2m.c:local_irq_is_enabled Unexecuted instantiation: p2m-pt.c:local_irq_is_enabled Unexecuted instantiation: p2m-ept.c:local_irq_is_enabled Unexecuted instantiation: p2m-pod.c:local_irq_is_enabled Unexecuted instantiation: altp2m.c:local_irq_is_enabled Unexecuted instantiation: guest_walk.c:local_irq_is_enabled Unexecuted instantiation: mem_paging.c:local_irq_is_enabled Unexecuted instantiation: mem_sharing.c:local_irq_is_enabled Unexecuted instantiation: multi.c:local_irq_is_enabled Unexecuted instantiation: hap.c:local_irq_is_enabled Unexecuted instantiation: nested_hap.c:local_irq_is_enabled Unexecuted instantiation: nested_ept.c:local_irq_is_enabled Unexecuted instantiation: nmi_int.c:local_irq_is_enabled Unexecuted instantiation: op_model_p4.c:local_irq_is_enabled Unexecuted instantiation: op_model_ppro.c:local_irq_is_enabled Unexecuted instantiation: op_model_athlon.c:local_irq_is_enabled Unexecuted instantiation: backtrace.c:local_irq_is_enabled Unexecuted instantiation: callback.c:local_irq_is_enabled Unexecuted instantiation: descriptor-tables.c:local_irq_is_enabled Unexecuted instantiation: emul-gate-op.c:local_irq_is_enabled Unexecuted instantiation: emul-inv-op.c:local_irq_is_enabled Unexecuted instantiation: emul-priv-op.c:local_irq_is_enabled Unexecuted instantiation: iret.c:local_irq_is_enabled Unexecuted instantiation: misc-hypercalls.c:local_irq_is_enabled Unexecuted instantiation: ro-page-fault.c:local_irq_is_enabled Unexecuted instantiation: acpi_mmcfg.c:local_irq_is_enabled Unexecuted instantiation: mmconf-fam10h.c:local_irq_is_enabled Unexecuted instantiation: mmconfig_64.c:local_irq_is_enabled Unexecuted instantiation: core_parking.c:local_irq_is_enabled |
223 | | |
224 | | #define BROKEN_ACPI_Sx 0x0001 |
225 | | #define BROKEN_INIT_AFTER_S1 0x0002 |
226 | | |
227 | | void trap_init(void); |
228 | | void init_idt_traps(void); |
229 | | void load_system_tables(void); |
230 | | void percpu_traps_init(void); |
231 | | void subarch_percpu_traps_init(void); |
232 | | |
233 | | #endif |