diff options
Diffstat (limited to 'ports/sysdeps/unix/sysv/linux/ia64/nptl')
15 files changed, 54 insertions, 18 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S b/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S index 41cc303c29..274f7588d5 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2013 Free Software Foundation, Inc. +/* Copyright (C) 1999-2014 Free Software Foundation, Inc. Contributed by David Mosberger-Tang <davidm@hpl.hp.com>. The GNU C Library is free software; you can redistribute it and/or @@ -75,11 +75,11 @@ LEAF(__ia64_longjmp) mov ar.unat=r25 // setup ar.unat (NaT bits for r1, r4-r7, and r12) ;; ld8.fill.nta sp=[r2],16 // r12 (sp) - ld8.fill.nta gp=[r3],16 // r1 (gp) + ld8.fill.nta gp=[r3],32 // r1 (gp) dep r11=-1,r23,3,6 // r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp) ;; ld8.nta r16=[r2],16 // caller's unat - ld8.nta r17=[r3],16 // fpsr +// ld8.nta r17=[r3],16 // fpsr ;; ld8.fill.nta r4=[r2],16 // r4 ld8.fill.nta r5=[r3],16 // r5 (gp) @@ -88,7 +88,7 @@ LEAF(__ia64_longjmp) ld8.fill.nta r7=[r3],16 // r7 ;; mov ar.unat=r16 // restore caller's unat - mov ar.fpsr=r17 // restore fpsr +// mov ar.fpsr=r17 // restore fpsr ;; ld8.nta r16=[r2],16 // b0 ld8.nta r17=[r3],16 // b1 diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c b/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c index 9d263f2852..8c6a85b3a9 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2013 Free Software Foundation, Inc. +/* Copyright (C) 2004-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger-Tang <davidm@hpl.hp.com>. diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h b/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h index c1af6db0de..4278c09bb0 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h @@ -1,5 +1,5 @@ /* Minimum guaranteed maximum values for system limits. Linux/IA-64 version. - Copyright (C) 1993-2013 Free Software Foundation, Inc. + Copyright (C) 1993-2014 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 diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h b/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h index adc8b30da5..b77b80ab22 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2013 Free Software Foundation, Inc. +/* Copyright (C) 2003-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/semaphore.h b/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/semaphore.h index e306c7b88e..a29b20ef13 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/semaphore.h +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/semaphore.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2013 Free Software Foundation, Inc. +/* Copyright (C) 2002-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/createthread.c b/ports/sysdeps/unix/sysv/linux/ia64/nptl/createthread.c index 1798cda2c1..a2d5dec040 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/createthread.c +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/createthread.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2013 Free Software Foundation, Inc. +/* Copyright (C) 2003-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/dl-sysdep.h b/ports/sysdeps/unix/sysv/linux/ia64/nptl/dl-sysdep.h index 886a4f0e50..64c6ecd4bc 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/dl-sysdep.h +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/dl-sysdep.h @@ -1,5 +1,5 @@ /* System-specific settings for dynamic linker code. IA-64 version. - Copyright (C) 2003-2013 Free Software Foundation, Inc. + Copyright (C) 2003-2014 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 diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/fork.c b/ports/sysdeps/unix/sysv/linux/ia64/nptl/fork.c index 9f4865f419..a6d319a439 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/fork.c +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/fork.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2013 Free Software Foundation, Inc. +/* Copyright (C) 2003-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/lowlevellock.h b/ports/sysdeps/unix/sysv/linux/ia64/nptl/lowlevellock.h index cd36f958cf..0105972b40 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/lowlevellock.h +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/lowlevellock.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2013 Free Software Foundation, Inc. +/* Copyright (C) 2003-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. @@ -38,6 +38,8 @@ #define FUTEX_TRYLOCK_PI 8 #define FUTEX_WAIT_BITSET 9 #define FUTEX_WAKE_BITSET 10 +#define FUTEX_WAIT_REQUEUE_PI 11 +#define FUTEX_CMP_REQUEUE_PI 12 #define FUTEX_PRIVATE_FLAG 128 #define FUTEX_CLOCK_REALTIME 256 @@ -89,6 +91,17 @@ _r10 == -1 ? -_retval : _retval; \ }) +#define lll_futex_timed_wait_bitset(ftx, val, timespec, clockbit, private) \ +({ \ + int __op = FUTEX_WAIT_BITSET | (clockbit); \ + \ + DO_INLINE_SYSCALL(futex, 4, (long) (ftx), \ + __lll_private_flag (__op, private), \ + (int) (val), (long) (timespec), NULL /* Unused. */, \ + FUTEX_BITSET_MATCH_ANY); \ + _r10 == -1 ? -_retval : _retval; \ +}) + #define lll_futex_wake(ftx, nr, private) \ ({ \ DO_INLINE_SYSCALL(futex, 3, (long) (ftx), \ @@ -127,6 +140,29 @@ while (0) _r10 == -1; \ }) +/* Priority Inheritance support. */ +#define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \ + lll_futex_timed_wait_requeue_pi (futexp, val, NULL, 0, mutex, private) + +#define lll_futex_timed_wait_requeue_pi(futexp, val, timespec, clockbit, \ + mutex, private) \ +({ \ + int __op = FUTEX_WAIT_REQUEUE_PI | (clockbit); \ + \ + DO_INLINE_SYSCALL(futex, 5, (long) (futexp), \ + __lll_private_flag (__op, private), \ + (val), (timespec), mutex); \ + _r10 == -1; \ +}) + +#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, val, priv) \ +({ \ + DO_INLINE_SYSCALL(futex, 6, (long) (futexp), \ + __lll_private_flag (FUTEX_CMP_REQUEUE_PI, priv), \ + (nr_wake), (nr_move), (mutex), (val)); \ + _r10 == -1 ? -_retval : _retval; \ +}) + #define __lll_trylock(futex) \ (atomic_compare_and_exchange_val_acq (futex, 1, 0) != 0) diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/pt-vfork.S b/ports/sysdeps/unix/sysv/linux/ia64/nptl/pt-vfork.S index 1a012dbe5f..59b5b7a704 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/pt-vfork.S +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/pt-vfork.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2013 Free Software Foundation, Inc. +/* Copyright (C) 2000-2014 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 diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/pthread_once.c b/ports/sysdeps/unix/sysv/linux/ia64/nptl/pthread_once.c index 5879f44fed..a231e55879 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/pthread_once.c +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/pthread_once.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2013 Free Software Foundation, Inc. +/* Copyright (C) 2003-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/sysdep-cancel.h b/ports/sysdeps/unix/sysv/linux/ia64/nptl/sysdep-cancel.h index c133baf54e..5b08748949 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/sysdep-cancel.h +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/sysdep-cancel.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2013 Free Software Foundation, Inc. +/* Copyright (C) 2002-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2002. diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind-forcedunwind.c b/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind-forcedunwind.c index 8562afda6f..dd5229458b 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind-forcedunwind.c +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind-forcedunwind.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2013 Free Software Foundation, Inc. +/* Copyright (C) 2003-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind_longjmp.c b/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind_longjmp.c index 371569e94b..0b55598e85 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind_longjmp.c +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind_longjmp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2013 Free Software Foundation, Inc. +/* Copyright (C) 1991-2014 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 diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/vfork.S b/ports/sysdeps/unix/sysv/linux/ia64/nptl/vfork.S index 215632ac98..f1ca305554 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/vfork.S +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/vfork.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2013 Free Software Foundation, Inc. +/* Copyright (C) 2000-2014 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 |