diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-64')
4 files changed, 97 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h b/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h index f3536ed03f..57842702fd 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h +++ b/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h @@ -185,6 +185,7 @@ #define __NR_mq_timedsend 273 #define __NR_mq_unlink 272 #define __NR_mremap 163 +#define __NR_mseal 462 #define __NR_msgctl 402 #define __NR_msgget 399 #define __NR_msgrcv 401 diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index fd1cb2972d..7d860001d8 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2929,6 +2929,8 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F +GLIBC_2.41 sched_getattr F +GLIBC_2.41 sched_setattr F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 40489589a7..ee54f8d4a4 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1252,6 +1252,30 @@ GLIBC_2.4 truncl F GLIBC_2.4 y0l F GLIBC_2.4 y1l F GLIBC_2.4 ynl F +GLIBC_2.40 exp10m1 F +GLIBC_2.40 exp10m1f F +GLIBC_2.40 exp10m1f128 F +GLIBC_2.40 exp10m1f32 F +GLIBC_2.40 exp10m1f32x F +GLIBC_2.40 exp10m1f64 F +GLIBC_2.40 exp10m1f64x F +GLIBC_2.40 exp10m1l F +GLIBC_2.40 exp2m1 F +GLIBC_2.40 exp2m1f F +GLIBC_2.40 exp2m1f128 F +GLIBC_2.40 exp2m1f32 F +GLIBC_2.40 exp2m1f32x F +GLIBC_2.40 exp2m1f64 F +GLIBC_2.40 exp2m1f64x F +GLIBC_2.40 exp2m1l F +GLIBC_2.40 log10p1 F +GLIBC_2.40 log10p1f F +GLIBC_2.40 log10p1f128 F +GLIBC_2.40 log10p1f32 F +GLIBC_2.40 log10p1f32x F +GLIBC_2.40 log10p1f64 F +GLIBC_2.40 log10p1f64x F +GLIBC_2.40 log10p1l F GLIBC_2.40 log2p1 F GLIBC_2.40 log2p1f F GLIBC_2.40 log2p1f128 F @@ -1260,3 +1284,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S b/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S new file mode 100644 index 0000000000..e1620add6a --- /dev/null +++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S @@ -0,0 +1,62 @@ +/* Cancellable syscall wrapper. Linux/s390x version. + Copyright (C) 2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <descr-const.h> + +/* long int __syscall_cancel_arch (int *cancelhandling, + __syscall_arg_t nr, + __syscall_arg_t arg1, + __syscall_arg_t arg2, + __syscall_arg_t arg3, + __syscall_arg_t arg4, + __syscall_arg_t arg5, + __syscall_arg_t arg6) */ + +ENTRY (__syscall_cancel_arch) + stmg %r6,%r7,48(%r15) + cfi_offset (%r6, -112) + cfi_offset (%r7, -104) + + .globl __syscall_cancel_arch_start +__syscall_cancel_arch_start: + /* if (*cancelhandling & CANCELED_BITMASK) + __syscall_do_cancel() */ + tm 3(%r2),TCB_CANCELED_BITMASK + jne 1f + + /* Issue a 6 argument syscall, the nr [%r1] being the syscall + number. */ + lgr %r1,%r3 + lgr %r2,%r4 + lgr %r3,%r5 + lgr %r4,%r6 + lmg %r5,%r7,160(%r15) + svc 0 + + .globl __syscall_cancel_arch_end +__syscall_cancel_arch_end: + lmg %r6,%r7,48(%r15) + cfi_remember_state + cfi_restore (%r7) + cfi_restore (%r6) + br %r14 +1: + cfi_restore_state + jg __syscall_do_cancel +END (__syscall_cancel_arch) |