1 /* SPDX-License-Identifier: GPL-2.0 */
3 #include <asm/unistd.h>
4 #include <asm/asm-offsets.h>
6 #include <asm/ptrace.h>
8 #define WRAPPER_FRAME_SIZE (STACK_FRAME_OVERHEAD+8)
11 * Older glibc version called vdso without allocating a stackframe. This wrapper
12 * is just used to allocate a stackframe. See
13 * https://sourceware.org/git/?p=glibc.git;a=commit;h=478593e6374f3818da39332260dc453cb19cfa1e
18 .type __kernel_\func,@function
22 aghi %r15,-WRAPPER_FRAME_SIZE
23 CFI_DEF_CFA_OFFSET (STACK_FRAME_OVERHEAD + WRAPPER_FRAME_SIZE)
24 CFI_VAL_OFFSET 15, -STACK_FRAME_OVERHEAD
25 stg %r14,STACK_FRAME_OVERHEAD(%r15)
26 brasl %r14,__s390_vdso_\func
27 lg %r14,STACK_FRAME_OVERHEAD(%r15)
28 aghi %r15,WRAPPER_FRAME_SIZE
29 CFI_DEF_CFA_OFFSET STACK_FRAME_OVERHEAD
33 .size __kernel_\func,.-__kernel_\func
36 vdso_func gettimeofday
37 vdso_func clock_getres
38 vdso_func clock_gettime