Linux Audio

Check our new training course

Loading...
v5.4
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/*
 3 * Userland implementation of getcpu() for 64 bits processes in a
 4 * s390 kernel for use in the vDSO
 5 *
 6 *  Copyright IBM Corp. 2016
 7 *  Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
 8 */
 9#include <asm/vdso.h>
10#include <asm/asm-offsets.h>
11#include <asm/dwarf.h>
12
13	.text
14	.align 4
15	.globl __kernel_getcpu
16	.type  __kernel_getcpu,@function
17__kernel_getcpu:
18	CFI_STARTPROC
 
 
 
19	la	%r4,0
20	sacf	256
 
21	l	%r5,__VDSO_CPU_NR(%r4)
22	l	%r4,__VDSO_NODE_ID(%r4)
23	sacf	0
 
 
 
 
 
 
 
24	ltgr	%r2,%r2
25	jz	2f
26	st	%r5,0(%r2)
272:	ltgr	%r3,%r3
28	jz	3f
29	st	%r4,0(%r3)
303:	lghi	%r2,0
31	br	%r14
32	CFI_ENDPROC
33	.size	__kernel_getcpu,.-__kernel_getcpu
v4.6
 
 1/*
 2 * Userland implementation of getcpu() for 64 bits processes in a
 3 * s390 kernel for use in the vDSO
 4 *
 5 *  Copyright IBM Corp. 2016
 6 *  Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
 7 */
 8#include <asm/vdso.h>
 9#include <asm/asm-offsets.h>
 
10
11	.text
12	.align 4
13	.globl __kernel_getcpu
14	.type  __kernel_getcpu,@function
15__kernel_getcpu:
16	.cfi_startproc
17	ear	%r1,%a4
18	llilh	%r4,0x0100
19	sar	%a4,%r4
20	la	%r4,0
21	epsw	%r0,0
22	sacf	512
23	l	%r5,__VDSO_CPU_NR(%r4)
24	l	%r4,__VDSO_NODE_ID(%r4)
25	tml	%r0,0x4000
26	jo	1f
27	tml	%r0,0x8000
28	jno	0f
29	sacf	256
30	j	1f
310:	sacf	0
321:	sar	%a4,%r1
33	ltgr	%r2,%r2
34	jz	2f
35	st	%r5,0(%r2)
362:	ltgr	%r3,%r3
37	jz	3f
38	st	%r4,0(%r3)
393:	lghi	%r2,0
40	br	%r14
41	.cfi_endproc
42	.size	__kernel_getcpu,.-__kernel_getcpu