Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/current.h
Line
Count
Source (jump to first uncovered line)
1
/******************************************************************************
2
 * current.h
3
 * 
4
 * Information structure that lives at the bottom of the per-cpu Xen stack.
5
 */
6
7
#ifndef __X86_CURRENT_H__
8
#define __X86_CURRENT_H__
9
10
#include <xen/percpu.h>
11
#include <public/xen.h>
12
#include <asm/page.h>
13
14
/*
15
 * Xen's cpu stacks are 8 pages (8-page aligned), arranged as:
16
 *
17
 * 7 - Primary stack (with a struct cpu_info at the top)
18
 * 6 - Primary stack
19
 * 5 - Optionally not preset (MEMORY_GUARD)
20
 * 4 - unused
21
 * 3 - Syscall trampolines
22
 * 2 - MCE IST stack
23
 * 1 - NMI IST stack
24
 * 0 - Double Fault IST stack
25
 */
26
27
/*
28
 * Identify which stack page the stack pointer is on.  Returns an index
29
 * as per the comment above.
30
 */
31
static inline unsigned int get_stack_page(unsigned long sp)
32
0
{
33
0
    return (sp & (STACK_SIZE-1)) >> PAGE_SHIFT;
34
0
}
Unexecuted instantiation: core_parking.c:get_stack_page
Unexecuted instantiation: cpu.c:get_stack_page
Unexecuted instantiation: cpupool.c:get_stack_page
Unexecuted instantiation: domctl.c:get_stack_page
Unexecuted instantiation: domain.c:get_stack_page
Unexecuted instantiation: event_2l.c:get_stack_page
Unexecuted instantiation: event_channel.c:get_stack_page
Unexecuted instantiation: event_fifo.c:get_stack_page
Unexecuted instantiation: grant_table.c:get_stack_page
Unexecuted instantiation: guestcopy.c:get_stack_page
Unexecuted instantiation: irq.c:get_stack_page
Unexecuted instantiation: kernel.c:get_stack_page
Unexecuted instantiation: keyhandler.c:get_stack_page
Unexecuted instantiation: kexec.c:get_stack_page
Unexecuted instantiation: kimage.c:get_stack_page
Unexecuted instantiation: mem_access.c:get_stack_page
Unexecuted instantiation: memory.c:get_stack_page
Unexecuted instantiation: monitor.c:get_stack_page
Unexecuted instantiation: multicall.c:get_stack_page
Unexecuted instantiation: notifier.c:get_stack_page
Unexecuted instantiation: page_alloc.c:get_stack_page
Unexecuted instantiation: pdx.c:get_stack_page
Unexecuted instantiation: preempt.c:get_stack_page
Unexecuted instantiation: random.c:get_stack_page
Unexecuted instantiation: rangeset.c:get_stack_page
Unexecuted instantiation: radix-tree.c:get_stack_page
Unexecuted instantiation: rcupdate.c:get_stack_page
Unexecuted instantiation: rwlock.c:get_stack_page
Unexecuted instantiation: sched_arinc653.c:get_stack_page
Unexecuted instantiation: sched_credit.c:get_stack_page
Unexecuted instantiation: sched_credit2.c:get_stack_page
Unexecuted instantiation: sched_rt.c:get_stack_page
Unexecuted instantiation: sched_null.c:get_stack_page
Unexecuted instantiation: schedule.c:get_stack_page
Unexecuted instantiation: shutdown.c:get_stack_page
Unexecuted instantiation: softirq.c:get_stack_page
Unexecuted instantiation: smp.c:get_stack_page
Unexecuted instantiation: spinlock.c:get_stack_page
Unexecuted instantiation: stop_machine.c:get_stack_page
Unexecuted instantiation: symbols.c:get_stack_page
Unexecuted instantiation: sysctl.c:get_stack_page
Unexecuted instantiation: tasklet.c:get_stack_page
Unexecuted instantiation: time.c:get_stack_page
Unexecuted instantiation: timer.c:get_stack_page
Unexecuted instantiation: trace.c:get_stack_page
Unexecuted instantiation: virtual_region.c:get_stack_page
Unexecuted instantiation: vm_event.c:get_stack_page
Unexecuted instantiation: vmap.c:get_stack_page
Unexecuted instantiation: vsprintf.c:get_stack_page
Unexecuted instantiation: wait.c:get_stack_page
Unexecuted instantiation: xenoprof.c:get_stack_page
Unexecuted instantiation: xmalloc_tlsf.c:get_stack_page
Unexecuted instantiation: tmem.c:get_stack_page
Unexecuted instantiation: tmem_xen.c:get_stack_page
Unexecuted instantiation: tmem_control.c:get_stack_page
Unexecuted instantiation: llvm.c:get_stack_page
Unexecuted instantiation: libelf-tools.c:get_stack_page
Unexecuted instantiation: libelf-loader.c:get_stack_page
Unexecuted instantiation: libelf-dominfo.c:get_stack_page
Unexecuted instantiation: console.c:get_stack_page
Unexecuted instantiation: ns16550.c:get_stack_page
Unexecuted instantiation: ehci-dbgp.c:get_stack_page
Unexecuted instantiation: serial.c:get_stack_page
Unexecuted instantiation: cpufreq.c:get_stack_page
Unexecuted instantiation: cpufreq_ondemand.c:get_stack_page
Unexecuted instantiation: cpufreq_misc_governors.c:get_stack_page
Unexecuted instantiation: utility.c:get_stack_page
Unexecuted instantiation: pci.c:get_stack_page
Unexecuted instantiation: vpci.c:get_stack_page
Unexecuted instantiation: header.c:get_stack_page
Unexecuted instantiation: msi.c:get_stack_page
Unexecuted instantiation: msix.c:get_stack_page
Unexecuted instantiation: iommu.c:get_stack_page
Unexecuted instantiation: io.c:get_stack_page
Unexecuted instantiation: dmar.c:get_stack_page
Unexecuted instantiation: utils.c:get_stack_page
Unexecuted instantiation: qinval.c:get_stack_page
Unexecuted instantiation: intremap.c:get_stack_page
Unexecuted instantiation: quirks.c:get_stack_page
Unexecuted instantiation: vtd.c:get_stack_page
Unexecuted instantiation: ats.c:get_stack_page
Unexecuted instantiation: iommu_init.c:get_stack_page
Unexecuted instantiation: iommu_map.c:get_stack_page
Unexecuted instantiation: pci_amd_iommu.c:get_stack_page
Unexecuted instantiation: iommu_intr.c:get_stack_page
Unexecuted instantiation: iommu_cmd.c:get_stack_page
Unexecuted instantiation: iommu_guest.c:get_stack_page
Unexecuted instantiation: numa.c:get_stack_page
Unexecuted instantiation: osl.c:get_stack_page
Unexecuted instantiation: pmstat.c:get_stack_page
Unexecuted instantiation: hwregs.c:get_stack_page
Unexecuted instantiation: reboot.c:get_stack_page
Unexecuted instantiation: tbutils.c:get_stack_page
Unexecuted instantiation: utglobal.c:get_stack_page
Unexecuted instantiation: erst.c:get_stack_page
Unexecuted instantiation: hest.c:get_stack_page
Unexecuted instantiation: apei-base.c:get_stack_page
Unexecuted instantiation: apei-io.c:get_stack_page
Unexecuted instantiation: vga.c:get_stack_page
Unexecuted instantiation: vesa.c:get_stack_page
Unexecuted instantiation: xsm_core.c:get_stack_page
Unexecuted instantiation: apic.c:get_stack_page
Unexecuted instantiation: cpuid.c:get_stack_page
Unexecuted instantiation: compat.c:get_stack_page
Unexecuted instantiation: crash.c:get_stack_page
Unexecuted instantiation: debug.c:get_stack_page
Unexecuted instantiation: delay.c:get_stack_page
Unexecuted instantiation: domain_page.c:get_stack_page
Unexecuted instantiation: e820.c:get_stack_page
Unexecuted instantiation: extable.c:get_stack_page
Unexecuted instantiation: flushtlb.c:get_stack_page
Unexecuted instantiation: hypercall.c:get_stack_page
Unexecuted instantiation: i387.c:get_stack_page
Unexecuted instantiation: i8259.c:get_stack_page
Unexecuted instantiation: io_apic.c:get_stack_page
Unexecuted instantiation: msr.c:get_stack_page
Unexecuted instantiation: ioport_emulate.c:get_stack_page
Unexecuted instantiation: machine_kexec.c:get_stack_page
Unexecuted instantiation: microcode_amd.c:get_stack_page
Unexecuted instantiation: microcode_intel.c:get_stack_page
Unexecuted instantiation: microcode.c:get_stack_page
Unexecuted instantiation: mm.c:get_stack_page
Unexecuted instantiation: mpparse.c:get_stack_page
Unexecuted instantiation: nmi.c:get_stack_page
Unexecuted instantiation: percpu.c:get_stack_page
Unexecuted instantiation: physdev.c:get_stack_page
Unexecuted instantiation: platform_hypercall.c:get_stack_page
Unexecuted instantiation: psr.c:get_stack_page
Unexecuted instantiation: setup.c:get_stack_page
Unexecuted instantiation: smpboot.c:get_stack_page
Unexecuted instantiation: srat.c:get_stack_page
Unexecuted instantiation: traps.c:get_stack_page
Unexecuted instantiation: usercopy.c:get_stack_page
Unexecuted instantiation: x86_emulate.c:get_stack_page
Unexecuted instantiation: tboot.c:get_stack_page
Unexecuted instantiation: hpet.c:get_stack_page
Unexecuted instantiation: xstate.c:get_stack_page
Unexecuted instantiation: lib.c:get_stack_page
Unexecuted instantiation: power.c:get_stack_page
Unexecuted instantiation: suspend.c:get_stack_page
Unexecuted instantiation: cpu_idle.c:get_stack_page
Unexecuted instantiation: cpuidle_menu.c:get_stack_page
Unexecuted instantiation: powernow.c:get_stack_page
Unexecuted instantiation: amd.c:get_stack_page
Unexecuted instantiation: centaur.c:get_stack_page
Unexecuted instantiation: common.c:get_stack_page
Unexecuted instantiation: intel.c:get_stack_page
Unexecuted instantiation: intel_cacheinfo.c:get_stack_page
Unexecuted instantiation: mwait-idle.c:get_stack_page
Unexecuted instantiation: vpmu.c:get_stack_page
Unexecuted instantiation: vpmu_amd.c:get_stack_page
Unexecuted instantiation: vpmu_intel.c:get_stack_page
Unexecuted instantiation: amd_nonfatal.c:get_stack_page
Unexecuted instantiation: mce_amd.c:get_stack_page
Unexecuted instantiation: mcaction.c:get_stack_page
Unexecuted instantiation: barrier.c:get_stack_page
Unexecuted instantiation: mctelem.c:get_stack_page
Unexecuted instantiation: mce.c:get_stack_page
Unexecuted instantiation: mce-apei.c:get_stack_page
Unexecuted instantiation: mce_intel.c:get_stack_page
Unexecuted instantiation: non-fatal.c:get_stack_page
Unexecuted instantiation: util.c:get_stack_page
Unexecuted instantiation: vmce.c:get_stack_page
Unexecuted instantiation: generic.c:get_stack_page
Unexecuted instantiation: main.c:get_stack_page
Unexecuted instantiation: bigsmp.c:get_stack_page
Unexecuted instantiation: x2apic.c:get_stack_page
Unexecuted instantiation: default.c:get_stack_page
Unexecuted instantiation: delivery.c:get_stack_page
Unexecuted instantiation: probe.c:get_stack_page
Unexecuted instantiation: asid.c:get_stack_page
Unexecuted instantiation: dm.c:get_stack_page
Unexecuted instantiation: emulate.c:get_stack_page
Unexecuted instantiation: hvm.c:get_stack_page
Unexecuted instantiation: i8254.c:get_stack_page
Unexecuted instantiation: intercept.c:get_stack_page
Unexecuted instantiation: ioreq.c:get_stack_page
Unexecuted instantiation: mtrr.c:get_stack_page
Unexecuted instantiation: nestedhvm.c:get_stack_page
Unexecuted instantiation: pmtimer.c:get_stack_page
Unexecuted instantiation: rtc.c:get_stack_page
Unexecuted instantiation: save.c:get_stack_page
Unexecuted instantiation: stdvga.c:get_stack_page
Unexecuted instantiation: vioapic.c:get_stack_page
Unexecuted instantiation: viridian.c:get_stack_page
Unexecuted instantiation: vlapic.c:get_stack_page
Unexecuted instantiation: vmsi.c:get_stack_page
Unexecuted instantiation: vpic.c:get_stack_page
Unexecuted instantiation: vpt.c:get_stack_page
Unexecuted instantiation: intr.c:get_stack_page
Unexecuted instantiation: nestedsvm.c:get_stack_page
Unexecuted instantiation: svm.c:get_stack_page
Unexecuted instantiation: svmdebug.c:get_stack_page
Unexecuted instantiation: vmcb.c:get_stack_page
Unexecuted instantiation: realmode.c:get_stack_page
Unexecuted instantiation: vmcs.c:get_stack_page
Unexecuted instantiation: vmx.c:get_stack_page
Unexecuted instantiation: vvmx.c:get_stack_page
Unexecuted instantiation: paging.c:get_stack_page
Unexecuted instantiation: p2m.c:get_stack_page
Unexecuted instantiation: p2m-pt.c:get_stack_page
Unexecuted instantiation: p2m-ept.c:get_stack_page
Unexecuted instantiation: p2m-pod.c:get_stack_page
Unexecuted instantiation: altp2m.c:get_stack_page
Unexecuted instantiation: guest_walk.c:get_stack_page
Unexecuted instantiation: mem_paging.c:get_stack_page
Unexecuted instantiation: mem_sharing.c:get_stack_page
Unexecuted instantiation: multi.c:get_stack_page
Unexecuted instantiation: hap.c:get_stack_page
Unexecuted instantiation: nested_hap.c:get_stack_page
Unexecuted instantiation: nested_ept.c:get_stack_page
Unexecuted instantiation: nmi_int.c:get_stack_page
Unexecuted instantiation: op_model_p4.c:get_stack_page
Unexecuted instantiation: op_model_ppro.c:get_stack_page
Unexecuted instantiation: op_model_athlon.c:get_stack_page
Unexecuted instantiation: backtrace.c:get_stack_page
Unexecuted instantiation: callback.c:get_stack_page
Unexecuted instantiation: descriptor-tables.c:get_stack_page
Unexecuted instantiation: emul-gate-op.c:get_stack_page
Unexecuted instantiation: emul-inv-op.c:get_stack_page
Unexecuted instantiation: emul-priv-op.c:get_stack_page
Unexecuted instantiation: iret.c:get_stack_page
Unexecuted instantiation: misc-hypercalls.c:get_stack_page
Unexecuted instantiation: ro-page-fault.c:get_stack_page
Unexecuted instantiation: acpi_mmcfg.c:get_stack_page
Unexecuted instantiation: mmconf-fam10h.c:get_stack_page
Unexecuted instantiation: mmconfig_64.c:get_stack_page
Unexecuted instantiation: mmconfig-shared.c:get_stack_page
35
36
struct vcpu;
37
38
struct cpu_info {
39
    struct cpu_user_regs guest_cpu_user_regs;
40
    unsigned int processor_id;
41
    struct vcpu *current_vcpu;
42
    unsigned long per_cpu_offset;
43
    unsigned long cr4;
44
    /* get_stack_bottom() must be 16-byte aligned */
45
};
46
47
static inline struct cpu_info *get_cpu_info(void)
48
628M
{
49
628M
#ifdef __clang__
50
628M
    /* Clang complains that sp in the else case is not initialised. */
51
628M
    unsigned long sp;
52
628M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
628M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
628M
57
628M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
628M
}
Unexecuted instantiation: core_parking.c:get_cpu_info
Unexecuted instantiation: cpu.c:get_cpu_info
cpupool.c:get_cpu_info
Line
Count
Source
48
25
{
49
25
#ifdef __clang__
50
25
    /* Clang complains that sp in the else case is not initialised. */
51
25
    unsigned long sp;
52
25
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
25
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
25
57
25
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
25
}
domctl.c:get_cpu_info
Line
Count
Source
48
18
{
49
18
#ifdef __clang__
50
18
    /* Clang complains that sp in the else case is not initialised. */
51
18
    unsigned long sp;
52
18
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
18
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
18
57
18
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
18
}
domain.c:get_cpu_info
Line
Count
Source
48
55.3M
{
49
55.3M
#ifdef __clang__
50
55.3M
    /* Clang complains that sp in the else case is not initialised. */
51
55.3M
    unsigned long sp;
52
55.3M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
55.3M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
55.3M
57
55.3M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
55.3M
}
Unexecuted instantiation: event_2l.c:get_cpu_info
event_channel.c:get_cpu_info
Line
Count
Source
48
189k
{
49
189k
#ifdef __clang__
50
189k
    /* Clang complains that sp in the else case is not initialised. */
51
189k
    unsigned long sp;
52
189k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
189k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
189k
57
189k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
189k
}
Unexecuted instantiation: event_fifo.c:get_cpu_info
grant_table.c:get_cpu_info
Line
Count
Source
48
31
{
49
31
#ifdef __clang__
50
31
    /* Clang complains that sp in the else case is not initialised. */
51
31
    unsigned long sp;
52
31
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
31
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
31
57
31
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
31
}
Unexecuted instantiation: guestcopy.c:get_cpu_info
irq.c:get_cpu_info
Line
Count
Source
48
15.3M
{
49
15.3M
#ifdef __clang__
50
15.3M
    /* Clang complains that sp in the else case is not initialised. */
51
15.3M
    unsigned long sp;
52
15.3M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
15.3M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
15.3M
57
15.3M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
15.3M
}
kernel.c:get_cpu_info
Line
Count
Source
48
3
{
49
3
#ifdef __clang__
50
3
    /* Clang complains that sp in the else case is not initialised. */
51
3
    unsigned long sp;
52
3
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
3
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
3
57
3
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
3
}
Unexecuted instantiation: keyhandler.c:get_cpu_info
kexec.c:get_cpu_info
Line
Count
Source
48
1
{
49
1
#ifdef __clang__
50
1
    /* Clang complains that sp in the else case is not initialised. */
51
1
    unsigned long sp;
52
1
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
1
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
1
57
1
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
1
}
Unexecuted instantiation: kimage.c:get_cpu_info
Unexecuted instantiation: mem_access.c:get_cpu_info
memory.c:get_cpu_info
Line
Count
Source
48
13
{
49
13
#ifdef __clang__
50
13
    /* Clang complains that sp in the else case is not initialised. */
51
13
    unsigned long sp;
52
13
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
13
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
13
57
13
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
13
}
monitor.c:get_cpu_info
Line
Count
Source
48
6.47k
{
49
6.47k
#ifdef __clang__
50
6.47k
    /* Clang complains that sp in the else case is not initialised. */
51
6.47k
    unsigned long sp;
52
6.47k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
6.47k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
6.47k
57
6.47k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
6.47k
}
Unexecuted instantiation: multicall.c:get_cpu_info
Unexecuted instantiation: notifier.c:get_cpu_info
page_alloc.c:get_cpu_info
Line
Count
Source
48
3.79M
{
49
3.79M
#ifdef __clang__
50
3.79M
    /* Clang complains that sp in the else case is not initialised. */
51
3.79M
    unsigned long sp;
52
3.79M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
3.79M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
3.79M
57
3.79M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
3.79M
}
Unexecuted instantiation: pdx.c:get_cpu_info
preempt.c:get_cpu_info
Line
Count
Source
48
40.4M
{
49
40.4M
#ifdef __clang__
50
40.4M
    /* Clang complains that sp in the else case is not initialised. */
51
40.4M
    unsigned long sp;
52
40.4M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
40.4M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
40.4M
57
40.4M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
40.4M
}
random.c:get_cpu_info
Line
Count
Source
48
141
{
49
141
#ifdef __clang__
50
141
    /* Clang complains that sp in the else case is not initialised. */
51
141
    unsigned long sp;
52
141
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
141
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
141
57
141
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
141
}
Unexecuted instantiation: rangeset.c:get_cpu_info
Unexecuted instantiation: radix-tree.c:get_cpu_info
rcupdate.c:get_cpu_info
Line
Count
Source
48
3.77M
{
49
3.77M
#ifdef __clang__
50
3.77M
    /* Clang complains that sp in the else case is not initialised. */
51
3.77M
    unsigned long sp;
52
3.77M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
3.77M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
3.77M
57
3.77M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
3.77M
}
rwlock.c:get_cpu_info
Line
Count
Source
48
1.02M
{
49
1.02M
#ifdef __clang__
50
1.02M
    /* Clang complains that sp in the else case is not initialised. */
51
1.02M
    unsigned long sp;
52
1.02M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
1.02M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
1.02M
57
1.02M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
1.02M
}
Unexecuted instantiation: sched_arinc653.c:get_cpu_info
sched_credit.c:get_cpu_info
Line
Count
Source
48
23.0M
{
49
23.0M
#ifdef __clang__
50
23.0M
    /* Clang complains that sp in the else case is not initialised. */
51
23.0M
    unsigned long sp;
52
23.0M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
23.0M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
23.0M
57
23.0M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
23.0M
}
Unexecuted instantiation: sched_credit2.c:get_cpu_info
Unexecuted instantiation: sched_rt.c:get_cpu_info
Unexecuted instantiation: sched_null.c:get_cpu_info
schedule.c:get_cpu_info
Line
Count
Source
48
31.1M
{
49
31.1M
#ifdef __clang__
50
31.1M
    /* Clang complains that sp in the else case is not initialised. */
51
31.1M
    unsigned long sp;
52
31.1M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
31.1M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
31.1M
57
31.1M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
31.1M
}
Unexecuted instantiation: shutdown.c:get_cpu_info
softirq.c:get_cpu_info
Line
Count
Source
48
20.4M
{
49
20.4M
#ifdef __clang__
50
20.4M
    /* Clang complains that sp in the else case is not initialised. */
51
20.4M
    unsigned long sp;
52
20.4M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
20.4M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
20.4M
57
20.4M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
20.4M
}
smp.c:get_cpu_info
Line
Count
Source
48
5.79M
{
49
5.79M
#ifdef __clang__
50
5.79M
    /* Clang complains that sp in the else case is not initialised. */
51
5.79M
    unsigned long sp;
52
5.79M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
5.79M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
5.79M
57
5.79M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
5.79M
}
spinlock.c:get_cpu_info
Line
Count
Source
48
92.3M
{
49
92.3M
#ifdef __clang__
50
92.3M
    /* Clang complains that sp in the else case is not initialised. */
51
92.3M
    unsigned long sp;
52
92.3M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
92.3M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
92.3M
57
92.3M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
92.3M
}
Unexecuted instantiation: stop_machine.c:get_cpu_info
Unexecuted instantiation: symbols.c:get_cpu_info
sysctl.c:get_cpu_info
Line
Count
Source
48
33
{
49
33
#ifdef __clang__
50
33
    /* Clang complains that sp in the else case is not initialised. */
51
33
    unsigned long sp;
52
33
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
33
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
33
57
33
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
33
}
tasklet.c:get_cpu_info
Line
Count
Source
48
12.6k
{
49
12.6k
#ifdef __clang__
50
12.6k
    /* Clang complains that sp in the else case is not initialised. */
51
12.6k
    unsigned long sp;
52
12.6k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
12.6k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
12.6k
57
12.6k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
12.6k
}
time.c:get_cpu_info
Line
Count
Source
48
20.8M
{
49
20.8M
#ifdef __clang__
50
20.8M
    /* Clang complains that sp in the else case is not initialised. */
51
20.8M
    unsigned long sp;
52
20.8M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
20.8M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
20.8M
57
20.8M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
20.8M
}
timer.c:get_cpu_info
Line
Count
Source
48
32.5M
{
49
32.5M
#ifdef __clang__
50
32.5M
    /* Clang complains that sp in the else case is not initialised. */
51
32.5M
    unsigned long sp;
52
32.5M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
32.5M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
32.5M
57
32.5M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
32.5M
}
Unexecuted instantiation: trace.c:get_cpu_info
virtual_region.c:get_cpu_info
Line
Count
Source
48
28
{
49
28
#ifdef __clang__
50
28
    /* Clang complains that sp in the else case is not initialised. */
51
28
    unsigned long sp;
52
28
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
28
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
28
57
28
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
28
}
Unexecuted instantiation: vm_event.c:get_cpu_info
Unexecuted instantiation: vmap.c:get_cpu_info
Unexecuted instantiation: vsprintf.c:get_cpu_info
wait.c:get_cpu_info
Line
Count
Source
48
4.57M
{
49
4.57M
#ifdef __clang__
50
4.57M
    /* Clang complains that sp in the else case is not initialised. */
51
4.57M
    unsigned long sp;
52
4.57M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
4.57M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
4.57M
57
4.57M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
4.57M
}
Unexecuted instantiation: xenoprof.c:get_cpu_info
xmalloc_tlsf.c:get_cpu_info
Line
Count
Source
48
2.66k
{
49
2.66k
#ifdef __clang__
50
2.66k
    /* Clang complains that sp in the else case is not initialised. */
51
2.66k
    unsigned long sp;
52
2.66k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
2.66k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
2.66k
57
2.66k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
2.66k
}
Unexecuted instantiation: tmem.c:get_cpu_info
Unexecuted instantiation: tmem_xen.c:get_cpu_info
Unexecuted instantiation: tmem_control.c:get_cpu_info
llvm.c:get_cpu_info
Line
Count
Source
48
3
{
49
3
#ifdef __clang__
50
3
    /* Clang complains that sp in the else case is not initialised. */
51
3
    unsigned long sp;
52
3
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
3
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
3
57
3
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
3
}
Unexecuted instantiation: libelf-tools.c:get_cpu_info
Unexecuted instantiation: libelf-loader.c:get_cpu_info
Unexecuted instantiation: libelf-dominfo.c:get_cpu_info
console.c:get_cpu_info
Line
Count
Source
48
356k
{
49
356k
#ifdef __clang__
50
356k
    /* Clang complains that sp in the else case is not initialised. */
51
356k
    unsigned long sp;
52
356k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
356k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
356k
57
356k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
356k
}
ns16550.c:get_cpu_info
Line
Count
Source
48
2
{
49
2
#ifdef __clang__
50
2
    /* Clang complains that sp in the else case is not initialised. */
51
2
    unsigned long sp;
52
2
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
2
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
2
57
2
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
2
}
Unexecuted instantiation: ehci-dbgp.c:get_cpu_info
Unexecuted instantiation: serial.c:get_cpu_info
Unexecuted instantiation: cpufreq.c:get_cpu_info
cpufreq_ondemand.c:get_cpu_info
Line
Count
Source
48
3.62M
{
49
3.62M
#ifdef __clang__
50
3.62M
    /* Clang complains that sp in the else case is not initialised. */
51
3.62M
    unsigned long sp;
52
3.62M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
3.62M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
3.62M
57
3.62M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
3.62M
}
Unexecuted instantiation: cpufreq_misc_governors.c:get_cpu_info
Unexecuted instantiation: utility.c:get_cpu_info
Unexecuted instantiation: pci.c:get_cpu_info
vpci.c:get_cpu_info
Line
Count
Source
48
58.3k
{
49
58.3k
#ifdef __clang__
50
58.3k
    /* Clang complains that sp in the else case is not initialised. */
51
58.3k
    unsigned long sp;
52
58.3k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
58.3k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
58.3k
57
58.3k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
58.3k
}
header.c:get_cpu_info
Line
Count
Source
48
22.2k
{
49
22.2k
#ifdef __clang__
50
22.2k
    /* Clang complains that sp in the else case is not initialised. */
51
22.2k
    unsigned long sp;
52
22.2k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
22.2k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
22.2k
57
22.2k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
22.2k
}
msi.c:get_cpu_info
Line
Count
Source
48
46
{
49
46
#ifdef __clang__
50
46
    /* Clang complains that sp in the else case is not initialised. */
51
46
    unsigned long sp;
52
46
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
46
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
46
57
46
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
46
}
Unexecuted instantiation: msix.c:get_cpu_info
iommu.c:get_cpu_info
Line
Count
Source
48
4.56M
{
49
4.56M
#ifdef __clang__
50
4.56M
    /* Clang complains that sp in the else case is not initialised. */
51
4.56M
    unsigned long sp;
52
4.56M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
4.56M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
4.56M
57
4.56M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
4.56M
}
io.c:get_cpu_info
Line
Count
Source
48
249k
{
49
249k
#ifdef __clang__
50
249k
    /* Clang complains that sp in the else case is not initialised. */
51
249k
    unsigned long sp;
52
249k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
249k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
249k
57
249k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
249k
}
Unexecuted instantiation: dmar.c:get_cpu_info
Unexecuted instantiation: utils.c:get_cpu_info
Unexecuted instantiation: qinval.c:get_cpu_info
Unexecuted instantiation: intremap.c:get_cpu_info
Unexecuted instantiation: quirks.c:get_cpu_info
Unexecuted instantiation: vtd.c:get_cpu_info
Unexecuted instantiation: ats.c:get_cpu_info
Unexecuted instantiation: iommu_init.c:get_cpu_info
Unexecuted instantiation: iommu_map.c:get_cpu_info
Unexecuted instantiation: pci_amd_iommu.c:get_cpu_info
Unexecuted instantiation: iommu_intr.c:get_cpu_info
Unexecuted instantiation: iommu_cmd.c:get_cpu_info
Unexecuted instantiation: iommu_guest.c:get_cpu_info
Unexecuted instantiation: numa.c:get_cpu_info
Unexecuted instantiation: osl.c:get_cpu_info
Unexecuted instantiation: pmstat.c:get_cpu_info
Unexecuted instantiation: hwregs.c:get_cpu_info
Unexecuted instantiation: reboot.c:get_cpu_info
Unexecuted instantiation: tbutils.c:get_cpu_info
Unexecuted instantiation: utglobal.c:get_cpu_info
Unexecuted instantiation: erst.c:get_cpu_info
Unexecuted instantiation: hest.c:get_cpu_info
Unexecuted instantiation: apei-base.c:get_cpu_info
Unexecuted instantiation: apei-io.c:get_cpu_info
Unexecuted instantiation: vga.c:get_cpu_info
Unexecuted instantiation: vesa.c:get_cpu_info
Unexecuted instantiation: xsm_core.c:get_cpu_info
apic.c:get_cpu_info
Line
Count
Source
48
24
{
49
24
#ifdef __clang__
50
24
    /* Clang complains that sp in the else case is not initialised. */
51
24
    unsigned long sp;
52
24
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
24
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
24
57
24
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
24
}
cpuid.c:get_cpu_info
Line
Count
Source
48
2.65k
{
49
2.65k
#ifdef __clang__
50
2.65k
    /* Clang complains that sp in the else case is not initialised. */
51
2.65k
    unsigned long sp;
52
2.65k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
2.65k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
2.65k
57
2.65k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
2.65k
}
Unexecuted instantiation: compat.c:get_cpu_info
Unexecuted instantiation: crash.c:get_cpu_info
Unexecuted instantiation: debug.c:get_cpu_info
Unexecuted instantiation: delay.c:get_cpu_info
domain_page.c:get_cpu_info
Line
Count
Source
48
141M
{
49
141M
#ifdef __clang__
50
141M
    /* Clang complains that sp in the else case is not initialised. */
51
141M
    unsigned long sp;
52
141M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
141M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
141M
57
141M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
141M
}
Unexecuted instantiation: e820.c:get_cpu_info
extable.c:get_cpu_info
Line
Count
Source
48
13
{
49
13
#ifdef __clang__
50
13
    /* Clang complains that sp in the else case is not initialised. */
51
13
    unsigned long sp;
52
13
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
13
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
13
57
13
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
13
}
flushtlb.c:get_cpu_info
Line
Count
Source
48
159k
{
49
159k
#ifdef __clang__
50
159k
    /* Clang complains that sp in the else case is not initialised. */
51
159k
    unsigned long sp;
52
159k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
159k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
159k
57
159k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
159k
}
hypercall.c:get_cpu_info
Line
Count
Source
48
608k
{
49
608k
#ifdef __clang__
50
608k
    /* Clang complains that sp in the else case is not initialised. */
51
608k
    unsigned long sp;
52
608k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
608k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
608k
57
608k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
608k
}
Unexecuted instantiation: i387.c:get_cpu_info
i8259.c:get_cpu_info
Line
Count
Source
48
1
{
49
1
#ifdef __clang__
50
1
    /* Clang complains that sp in the else case is not initialised. */
51
1
    unsigned long sp;
52
1
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
1
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
1
57
1
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
1
}
Unexecuted instantiation: io_apic.c:get_cpu_info
Unexecuted instantiation: msr.c:get_cpu_info
Unexecuted instantiation: ioport_emulate.c:get_cpu_info
Unexecuted instantiation: machine_kexec.c:get_cpu_info
Unexecuted instantiation: microcode_amd.c:get_cpu_info
Unexecuted instantiation: microcode_intel.c:get_cpu_info
Unexecuted instantiation: microcode.c:get_cpu_info
mm.c:get_cpu_info
Line
Count
Source
48
44
{
49
44
#ifdef __clang__
50
44
    /* Clang complains that sp in the else case is not initialised. */
51
44
    unsigned long sp;
52
44
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
44
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
44
57
44
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
44
}
Unexecuted instantiation: mpparse.c:get_cpu_info
Unexecuted instantiation: nmi.c:get_cpu_info
Unexecuted instantiation: percpu.c:get_cpu_info
Unexecuted instantiation: physdev.c:get_cpu_info
Unexecuted instantiation: platform_hypercall.c:get_cpu_info
psr.c:get_cpu_info
Line
Count
Source
48
39.5k
{
49
39.5k
#ifdef __clang__
50
39.5k
    /* Clang complains that sp in the else case is not initialised. */
51
39.5k
    unsigned long sp;
52
39.5k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
39.5k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
39.5k
57
39.5k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
39.5k
}
setup.c:get_cpu_info
Line
Count
Source
48
21
{
49
21
#ifdef __clang__
50
21
    /* Clang complains that sp in the else case is not initialised. */
51
21
    unsigned long sp;
52
21
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
21
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
21
57
21
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
21
}
smpboot.c:get_cpu_info
Line
Count
Source
48
68
{
49
68
#ifdef __clang__
50
68
    /* Clang complains that sp in the else case is not initialised. */
51
68
    unsigned long sp;
52
68
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
68
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
68
57
68
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
68
}
Unexecuted instantiation: srat.c:get_cpu_info
traps.c:get_cpu_info
Line
Count
Source
48
37.1k
{
49
37.1k
#ifdef __clang__
50
37.1k
    /* Clang complains that sp in the else case is not initialised. */
51
37.1k
    unsigned long sp;
52
37.1k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
37.1k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
37.1k
57
37.1k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
37.1k
}
Unexecuted instantiation: usercopy.c:get_cpu_info
Unexecuted instantiation: x86_emulate.c:get_cpu_info
Unexecuted instantiation: tboot.c:get_cpu_info
hpet.c:get_cpu_info
Line
Count
Source
48
35
{
49
35
#ifdef __clang__
50
35
    /* Clang complains that sp in the else case is not initialised. */
51
35
    unsigned long sp;
52
35
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
35
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
35
57
35
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
35
}
xstate.c:get_cpu_info
Line
Count
Source
48
38.2k
{
49
38.2k
#ifdef __clang__
50
38.2k
    /* Clang complains that sp in the else case is not initialised. */
51
38.2k
    unsigned long sp;
52
38.2k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
38.2k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
38.2k
57
38.2k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
38.2k
}
Unexecuted instantiation: lib.c:get_cpu_info
Unexecuted instantiation: power.c:get_cpu_info
Unexecuted instantiation: suspend.c:get_cpu_info
cpu_idle.c:get_cpu_info
Line
Count
Source
48
1.92M
{
49
1.92M
#ifdef __clang__
50
1.92M
    /* Clang complains that sp in the else case is not initialised. */
51
1.92M
    unsigned long sp;
52
1.92M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
1.92M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
1.92M
57
1.92M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
1.92M
}
cpuidle_menu.c:get_cpu_info
Line
Count
Source
48
8.50M
{
49
8.50M
#ifdef __clang__
50
8.50M
    /* Clang complains that sp in the else case is not initialised. */
51
8.50M
    unsigned long sp;
52
8.50M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
8.50M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
8.50M
57
8.50M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
8.50M
}
Unexecuted instantiation: powernow.c:get_cpu_info
Unexecuted instantiation: amd.c:get_cpu_info
Unexecuted instantiation: centaur.c:get_cpu_info
common.c:get_cpu_info
Line
Count
Source
48
89
{
49
89
#ifdef __clang__
50
89
    /* Clang complains that sp in the else case is not initialised. */
51
89
    unsigned long sp;
52
89
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
89
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
89
57
89
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
89
}
intel.c:get_cpu_info
Line
Count
Source
48
74.0k
{
49
74.0k
#ifdef __clang__
50
74.0k
    /* Clang complains that sp in the else case is not initialised. */
51
74.0k
    unsigned long sp;
52
74.0k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
74.0k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
74.0k
57
74.0k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
74.0k
}
Unexecuted instantiation: intel_cacheinfo.c:get_cpu_info
mwait-idle.c:get_cpu_info
Line
Count
Source
48
3.75M
{
49
3.75M
#ifdef __clang__
50
3.75M
    /* Clang complains that sp in the else case is not initialised. */
51
3.75M
    unsigned long sp;
52
3.75M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
3.75M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
3.75M
57
3.75M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
3.75M
}
vpmu.c:get_cpu_info
Line
Count
Source
48
37
{
49
37
#ifdef __clang__
50
37
    /* Clang complains that sp in the else case is not initialised. */
51
37
    unsigned long sp;
52
37
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
37
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
37
57
37
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
37
}
Unexecuted instantiation: vpmu_amd.c:get_cpu_info
Unexecuted instantiation: vpmu_intel.c:get_cpu_info
Unexecuted instantiation: amd_nonfatal.c:get_cpu_info
Unexecuted instantiation: mce_amd.c:get_cpu_info
Unexecuted instantiation: mcaction.c:get_cpu_info
Unexecuted instantiation: barrier.c:get_cpu_info
Unexecuted instantiation: mctelem.c:get_cpu_info
mce.c:get_cpu_info
Line
Count
Source
48
749
{
49
749
#ifdef __clang__
50
749
    /* Clang complains that sp in the else case is not initialised. */
51
749
    unsigned long sp;
52
749
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
749
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
749
57
749
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
749
}
Unexecuted instantiation: mce-apei.c:get_cpu_info
mce_intel.c:get_cpu_info
Line
Count
Source
48
792
{
49
792
#ifdef __clang__
50
792
    /* Clang complains that sp in the else case is not initialised. */
51
792
    unsigned long sp;
52
792
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
792
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
792
57
792
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
792
}
non-fatal.c:get_cpu_info
Line
Count
Source
48
45
{
49
45
#ifdef __clang__
50
45
    /* Clang complains that sp in the else case is not initialised. */
51
45
    unsigned long sp;
52
45
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
45
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
45
57
45
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
45
}
Unexecuted instantiation: util.c:get_cpu_info
vmce.c:get_cpu_info
Line
Count
Source
48
259
{
49
259
#ifdef __clang__
50
259
    /* Clang complains that sp in the else case is not initialised. */
51
259
    unsigned long sp;
52
259
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
259
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
259
57
259
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
259
}
generic.c:get_cpu_info
Line
Count
Source
48
48
{
49
48
#ifdef __clang__
50
48
    /* Clang complains that sp in the else case is not initialised. */
51
48
    unsigned long sp;
52
48
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
48
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
48
57
48
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
48
}
main.c:get_cpu_info
Line
Count
Source
48
13
{
49
13
#ifdef __clang__
50
13
    /* Clang complains that sp in the else case is not initialised. */
51
13
    unsigned long sp;
52
13
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
13
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
13
57
13
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
13
}
Unexecuted instantiation: bigsmp.c:get_cpu_info
x2apic.c:get_cpu_info
Line
Count
Source
48
324k
{
49
324k
#ifdef __clang__
50
324k
    /* Clang complains that sp in the else case is not initialised. */
51
324k
    unsigned long sp;
52
324k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
324k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
324k
57
324k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
324k
}
Unexecuted instantiation: default.c:get_cpu_info
Unexecuted instantiation: delivery.c:get_cpu_info
Unexecuted instantiation: probe.c:get_cpu_info
asid.c:get_cpu_info
Line
Count
Source
48
5.10M
{
49
5.10M
#ifdef __clang__
50
5.10M
    /* Clang complains that sp in the else case is not initialised. */
51
5.10M
    unsigned long sp;
52
5.10M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
5.10M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
5.10M
57
5.10M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
5.10M
}
Unexecuted instantiation: dm.c:get_cpu_info
emulate.c:get_cpu_info
Line
Count
Source
48
621k
{
49
621k
#ifdef __clang__
50
621k
    /* Clang complains that sp in the else case is not initialised. */
51
621k
    unsigned long sp;
52
621k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
621k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
621k
57
621k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
621k
}
hvm.c:get_cpu_info
Line
Count
Source
48
5.26M
{
49
5.26M
#ifdef __clang__
50
5.26M
    /* Clang complains that sp in the else case is not initialised. */
51
5.26M
    unsigned long sp;
52
5.26M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
5.26M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
5.26M
57
5.26M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
5.26M
}
Unexecuted instantiation: i8254.c:get_cpu_info
intercept.c:get_cpu_info
Line
Count
Source
48
2.54M
{
49
2.54M
#ifdef __clang__
50
2.54M
    /* Clang complains that sp in the else case is not initialised. */
51
2.54M
    unsigned long sp;
52
2.54M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
2.54M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
2.54M
57
2.54M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
2.54M
}
Unexecuted instantiation: ioreq.c:get_cpu_info
mtrr.c:get_cpu_info
Line
Count
Source
48
4.85M
{
49
4.85M
#ifdef __clang__
50
4.85M
    /* Clang complains that sp in the else case is not initialised. */
51
4.85M
    unsigned long sp;
52
4.85M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
4.85M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
4.85M
57
4.85M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
4.85M
}
Unexecuted instantiation: nestedhvm.c:get_cpu_info
Unexecuted instantiation: pmtimer.c:get_cpu_info
Unexecuted instantiation: rtc.c:get_cpu_info
Unexecuted instantiation: save.c:get_cpu_info
Unexecuted instantiation: stdvga.c:get_cpu_info
vioapic.c:get_cpu_info
Line
Count
Source
48
301
{
49
301
#ifdef __clang__
50
301
    /* Clang complains that sp in the else case is not initialised. */
51
301
    unsigned long sp;
52
301
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
301
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
301
57
301
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
301
}
viridian.c:get_cpu_info
Line
Count
Source
48
50
{
49
50
#ifdef __clang__
50
50
    /* Clang complains that sp in the else case is not initialised. */
51
50
    unsigned long sp;
52
50
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
50
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
50
57
50
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
50
}
Unexecuted instantiation: vlapic.c:get_cpu_info
Unexecuted instantiation: vmsi.c:get_cpu_info
Unexecuted instantiation: vpic.c:get_cpu_info
Unexecuted instantiation: vpt.c:get_cpu_info
intr.c:get_cpu_info
Line
Count
Source
48
9.83M
{
49
9.83M
#ifdef __clang__
50
9.83M
    /* Clang complains that sp in the else case is not initialised. */
51
9.83M
    unsigned long sp;
52
9.83M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
9.83M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
9.83M
57
9.83M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
9.83M
}
Unexecuted instantiation: nestedsvm.c:get_cpu_info
Unexecuted instantiation: svm.c:get_cpu_info
Unexecuted instantiation: svmdebug.c:get_cpu_info
Unexecuted instantiation: vmcb.c:get_cpu_info
Unexecuted instantiation: realmode.c:get_cpu_info
vmcs.c:get_cpu_info
Line
Count
Source
48
14.6M
{
49
14.6M
#ifdef __clang__
50
14.6M
    /* Clang complains that sp in the else case is not initialised. */
51
14.6M
    unsigned long sp;
52
14.6M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
14.6M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
14.6M
57
14.6M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
14.6M
}
vmx.c:get_cpu_info
Line
Count
Source
48
20.7M
{
49
20.7M
#ifdef __clang__
50
20.7M
    /* Clang complains that sp in the else case is not initialised. */
51
20.7M
    unsigned long sp;
52
20.7M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
20.7M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
20.7M
57
20.7M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
20.7M
}
vvmx.c:get_cpu_info
Line
Count
Source
48
28.6M
{
49
28.6M
#ifdef __clang__
50
28.6M
    /* Clang complains that sp in the else case is not initialised. */
51
28.6M
    unsigned long sp;
52
28.6M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
28.6M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
28.6M
57
28.6M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
28.6M
}
paging.c:get_cpu_info
Line
Count
Source
48
172k
{
49
172k
#ifdef __clang__
50
172k
    /* Clang complains that sp in the else case is not initialised. */
51
172k
    unsigned long sp;
52
172k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
172k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
172k
57
172k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
172k
}
p2m.c:get_cpu_info
Line
Count
Source
48
19.2M
{
49
19.2M
#ifdef __clang__
50
19.2M
    /* Clang complains that sp in the else case is not initialised. */
51
19.2M
    unsigned long sp;
52
19.2M
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
19.2M
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
19.2M
57
19.2M
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
19.2M
}
Unexecuted instantiation: p2m-pt.c:get_cpu_info
p2m-ept.c:get_cpu_info
Line
Count
Source
48
18.9k
{
49
18.9k
#ifdef __clang__
50
18.9k
    /* Clang complains that sp in the else case is not initialised. */
51
18.9k
    unsigned long sp;
52
18.9k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
18.9k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
18.9k
57
18.9k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
18.9k
}
Unexecuted instantiation: p2m-pod.c:get_cpu_info
Unexecuted instantiation: altp2m.c:get_cpu_info
Unexecuted instantiation: guest_walk.c:get_cpu_info
Unexecuted instantiation: mem_paging.c:get_cpu_info
Unexecuted instantiation: mem_sharing.c:get_cpu_info
Unexecuted instantiation: multi.c:get_cpu_info
hap.c:get_cpu_info
Line
Count
Source
48
77.3k
{
49
77.3k
#ifdef __clang__
50
77.3k
    /* Clang complains that sp in the else case is not initialised. */
51
77.3k
    unsigned long sp;
52
77.3k
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
77.3k
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
77.3k
57
77.3k
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
77.3k
}
Unexecuted instantiation: nested_hap.c:get_cpu_info
Unexecuted instantiation: nested_ept.c:get_cpu_info
nmi_int.c:get_cpu_info
Line
Count
Source
48
54
{
49
54
#ifdef __clang__
50
54
    /* Clang complains that sp in the else case is not initialised. */
51
54
    unsigned long sp;
52
54
    asm ( "mov %%rsp, %0" : "=r" (sp) );
53
54
#else
54
    register unsigned long sp asm("rsp");
55
#endif
56
54
57
54
    return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
58
54
}
Unexecuted instantiation: op_model_p4.c:get_cpu_info
Unexecuted instantiation: op_model_ppro.c:get_cpu_info
Unexecuted instantiation: op_model_athlon.c:get_cpu_info
Unexecuted instantiation: backtrace.c:get_cpu_info
Unexecuted instantiation: callback.c:get_cpu_info
Unexecuted instantiation: descriptor-tables.c:get_cpu_info
Unexecuted instantiation: emul-gate-op.c:get_cpu_info
Unexecuted instantiation: emul-inv-op.c:get_cpu_info
Unexecuted instantiation: emul-priv-op.c:get_cpu_info
Unexecuted instantiation: iret.c:get_cpu_info
Unexecuted instantiation: misc-hypercalls.c:get_cpu_info
Unexecuted instantiation: ro-page-fault.c:get_cpu_info
Unexecuted instantiation: acpi_mmcfg.c:get_cpu_info
Unexecuted instantiation: mmconf-fam10h.c:get_cpu_info
Unexecuted instantiation: mmconfig_64.c:get_cpu_info
Unexecuted instantiation: mmconfig-shared.c:get_cpu_info
59
60
174M
#define get_current()         (get_cpu_info()->current_vcpu)
61
164k
#define set_current(vcpu)     (get_cpu_info()->current_vcpu = (vcpu))
62
174M
#define current               (get_current())
63
64
82.1M
#define get_processor_id()    (get_cpu_info()->processor_id)
65
12
#define set_processor_id(id)  do {                                      \
66
12
    struct cpu_info *ci__ = get_cpu_info();                             \
67
12
    ci__->per_cpu_offset = __per_cpu_offset[ci__->processor_id = (id)]; \
68
12
} while (0)
69
70
17.2M
#define guest_cpu_user_regs() (&get_cpu_info()->guest_cpu_user_regs)
71
72
/*
73
 * Get the bottom-of-stack, as stored in the per-CPU TSS. This actually points
74
 * into the middle of cpu_info.guest_cpu_user_regs, at the section that
75
 * precisely corresponds to a CPU trap frame.
76
 */
77
#define get_stack_bottom()                      \
78
575
    ((unsigned long)&get_cpu_info()->guest_cpu_user_regs.es)
79
80
/*
81
 * Get the reasonable stack bounds for stack traces and stack dumps.  Stack
82
 * dumps have a slightly larger range to include exception frames in the
83
 * printed information.  The returned word is inside the interesting range.
84
 */
85
unsigned long get_stack_trace_bottom(unsigned long sp);
86
unsigned long get_stack_dump_bottom (unsigned long sp);
87
88
#ifdef CONFIG_LIVEPATCH
89
# define CHECK_FOR_LIVEPATCH_WORK "call check_for_livepatch_work;"
90
#else
91
# define CHECK_FOR_LIVEPATCH_WORK ""
92
#endif
93
94
#define reset_stack_and_jump(__fn)                                      \
95
4.58M
    ({                                                                  \
96
4.58M
        __asm__ __volatile__ (                                          \
97
4.58M
            "mov %0,%%"__OP"sp;"                                        \
98
4.58M
            CHECK_FOR_LIVEPATCH_WORK                                      \
99
4.58M
             "jmp %c1"                                                  \
100
4.58M
            : : "r" (guest_cpu_user_regs()), "i" (__fn) : "memory" );   \
101
4.58M
        unreachable();                                                  \
102
4.58M
    })
103
104
/*
105
 * Which VCPU's state is currently running on each CPU?
106
 * This is not necesasrily the same as 'current' as a CPU may be
107
 * executing a lazy state switch.
108
 */
109
DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
110
111
#endif /* __X86_CURRENT_H__ */