/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 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 | } |
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 | } |
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 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 | } |
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 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 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 | } |
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 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 | } |
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 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 | } |
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 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 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 | } |
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 | } |
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 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 | } |
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 | } |
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 | } |
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 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 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 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 | } |
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 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 | } |
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 | } |
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 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 | } |
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 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 | } |
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 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 | } |
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 | } |
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 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 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 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 | } |
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 | } |
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 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 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 | } |
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 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 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 | } |
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 | } |
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 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 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 | } |
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 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 | } |
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 | } |
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 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 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 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 | } |
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 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 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 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 | } |
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 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 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 | } |
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 | } |
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 | } |
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 | } |
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 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 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 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__ */ |