1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| /* SPDX-License-Identifier: GPL-2.0 */
| /*
| * Userland implementation of getcpu() for 64 bits processes in a
| * s390 kernel for use in the vDSO
| *
| * Copyright IBM Corp. 2016
| * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
| */
| #include <asm/vdso.h>
| #include <asm/asm-offsets.h>
| #include <asm/dwarf.h>
|
| .text
| .align 4
| .globl __kernel_getcpu
| .type __kernel_getcpu,@function
| __kernel_getcpu:
| CFI_STARTPROC
| la %r4,0
| sacf 256
| l %r5,__VDSO_CPU_NR(%r4)
| l %r4,__VDSO_NODE_ID(%r4)
| sacf 0
| ltgr %r2,%r2
| jz 2f
| st %r5,0(%r2)
| 2: ltgr %r3,%r3
| jz 3f
| st %r4,0(%r3)
| 3: lghi %r2,0
| br %r14
| CFI_ENDPROC
| .size __kernel_getcpu,.-__kernel_getcpu
|
|