summaryrefslogtreecommitdiff
path: root/libpthread/nptl/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2011-06-24 16:24:25 +0200
committerCarmelo Amoroso <carmelo.amoroso@st.com>2011-06-24 16:24:25 +0200
commit7682323a3a798d6f15708f228f859a64cb869aa3 (patch)
tree0f3648e92245745c9828db3175651974b10c9ae4 /libpthread/nptl/sysdeps/unix/sysv
parent3004ce0c9619f89bf8e64931edd696bf4df8d2e1 (diff)
parent74da7a88552ecf518e64642c90742fddca57be00 (diff)
Merge remote-tracking branch 'origin/master' into prelink
* origin/master: (61 commits) fts: fix warning due to old-style function definition ldso_tls: fix compiler warning due to missing cast resolv: fix bug in res_init with ipv6 nameservers config: Fix passing defconfig args buildsys: pt-initfini.s depends on uClibc_config.h libdl: search for ELF_RTYPE_CLASS_DLSYM in dlsym() resolv: try next server on SERVFAIL getaddrinfo: allow numeric service without any hints bump version to 0.9.33-git nptl/pthread: Correct path for machine specific pt-initfini.c ctor/dtor nptl: Fix init and fini function compilation Rules.mak: Rearrange appending UCLIBC_EXTRA_CFLAGS to CFLAGS ARM: remove EABI/OABI selection ARM: detect BX availibility at build time ARM: #include <bits/arm_asm.h> where __USE_BX__ is used ARM: transform the EABI/OABI choice into a boolean ARM: remove sub-arch/variants selection from menuconfig ARM: introduce blind options to select & force THUMB mode ARM: reorder "Use BX" option Fix __libc_epoll_pwait compile failure on x86 ... Conflicts: ldso/libdl/libdl.c Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv')
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind.h279
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h32
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h96
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h32
4 files changed, 80 insertions, 359 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind.h b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind.h
deleted file mode 100644
index eeb9cf8b6..000000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/* Header file for the ARM EABI unwinder
- Copyright (C) 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
- Contributed by Paul Brook
-
- This file is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- In addition to the permissions in the GNU General Public License, the
- Free Software Foundation gives you unlimited permission to link the
- compiled version of this file into combinations with other programs,
- and to distribute those combinations without any restriction coming
- from the use of this file. (The General Public License restrictions
- do apply in other respects; for example, they cover modification of
- the file, and distribution when not linked into a combine
- executable.)
-
- This file 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
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; see the file COPYING. If not, write to
- the Free Software Foundation, 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* Language-independent unwinder header public defines. This contains both
- ABI defined objects, and GNU support routines. */
-
-#ifndef UNWIND_ARM_H
-#define UNWIND_ARM_H
-
-#define __ARM_EABI_UNWINDER__ 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- typedef unsigned _Unwind_Word __attribute__((__mode__(__word__)));
- typedef signed _Unwind_Sword __attribute__((__mode__(__word__)));
- typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__)));
- typedef unsigned _Unwind_Internal_Ptr __attribute__((__mode__(__pointer__)));
- typedef _Unwind_Word _uw;
- typedef unsigned _uw64 __attribute__((mode(__DI__)));
- typedef unsigned _uw16 __attribute__((mode(__HI__)));
- typedef unsigned _uw8 __attribute__((mode(__QI__)));
-
- typedef enum
- {
- _URC_OK = 0, /* operation completed successfully */
- _URC_FOREIGN_EXCEPTION_CAUGHT = 1,
- _URC_END_OF_STACK = 5,
- _URC_HANDLER_FOUND = 6,
- _URC_INSTALL_CONTEXT = 7,
- _URC_CONTINUE_UNWIND = 8,
- _URC_FAILURE = 9 /* unspecified failure of some kind */
- }
- _Unwind_Reason_Code;
-
- typedef enum
- {
- _US_VIRTUAL_UNWIND_FRAME = 0,
- _US_UNWIND_FRAME_STARTING = 1,
- _US_UNWIND_FRAME_RESUME = 2,
- _US_ACTION_MASK = 3,
- _US_FORCE_UNWIND = 8,
- _US_END_OF_STACK = 16
- }
- _Unwind_State;
-
- /* Provided only for for compatibility with existing code. */
- typedef int _Unwind_Action;
-#define _UA_SEARCH_PHASE 1
-#define _UA_CLEANUP_PHASE 2
-#define _UA_HANDLER_FRAME 4
-#define _UA_FORCE_UNWIND 8
-#define _UA_END_OF_STACK 16
-#define _URC_NO_REASON _URC_OK
-
- typedef struct _Unwind_Control_Block _Unwind_Control_Block;
- typedef struct _Unwind_Context _Unwind_Context;
- typedef _uw _Unwind_EHT_Header;
-
-
- /* UCB: */
-
- struct _Unwind_Control_Block
- {
-#ifdef _LIBC
- /* For the benefit of code which assumes this is a scalar. All
- glibc ever does is clear it. */
- _uw64 exception_class;
-#else
- char exception_class[8];
-#endif
- void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
- /* Unwinder cache, private fields for the unwinder's use */
- struct
- {
- _uw reserved1; /* Forced unwind stop fn, 0 if not forced */
- _uw reserved2; /* Personality routine address */
- _uw reserved3; /* Saved callsite address */
- _uw reserved4; /* Forced unwind stop arg */
- _uw reserved5;
- }
- unwinder_cache;
- /* Propagation barrier cache (valid after phase 1): */
- struct
- {
- _uw sp;
- _uw bitpattern[5];
- }
- barrier_cache;
- /* Cleanup cache (preserved over cleanup): */
- struct
- {
- _uw bitpattern[4];
- }
- cleanup_cache;
- /* Pr cache (for pr's benefit): */
- struct
- {
- _uw fnstart; /* function start address */
- _Unwind_EHT_Header *ehtp; /* pointer to EHT entry header word */
- _uw additional; /* additional data */
- _uw reserved1;
- }
- pr_cache;
- long long int :0; /* Force alignment to 8-byte boundary */
- };
-
- /* Virtual Register Set*/
-
- typedef enum
- {
- _UVRSC_CORE = 0, /* integer register */
- _UVRSC_VFP = 1, /* vfp */
- _UVRSC_FPA = 2, /* fpa */
- _UVRSC_WMMXD = 3, /* Intel WMMX data register */
- _UVRSC_WMMXC = 4 /* Intel WMMX control register */
- }
- _Unwind_VRS_RegClass;
-
- typedef enum
- {
- _UVRSD_UINT32 = 0,
- _UVRSD_VFPX = 1,
- _UVRSD_FPAX = 2,
- _UVRSD_UINT64 = 3,
- _UVRSD_FLOAT = 4,
- _UVRSD_DOUBLE = 5
- }
- _Unwind_VRS_DataRepresentation;
-
- typedef enum
- {
- _UVRSR_OK = 0,
- _UVRSR_NOT_IMPLEMENTED = 1,
- _UVRSR_FAILED = 2
- }
- _Unwind_VRS_Result;
-
- /* Frame unwinding state. */
- typedef struct
- {
- /* The current word (bytes packed msb first). */
- _uw data;
- /* Pointer to the next word of data. */
- _uw *next;
- /* The number of bytes left in this word. */
- _uw8 bytes_left;
- /* The number of words pointed to by ptr. */
- _uw8 words_left;
- }
- __gnu_unwind_state;
-
- typedef _Unwind_Reason_Code (*personality_routine) (_Unwind_State,
- _Unwind_Control_Block *, _Unwind_Context *);
-
- _Unwind_VRS_Result _Unwind_VRS_Set(_Unwind_Context *, _Unwind_VRS_RegClass,
- _uw, _Unwind_VRS_DataRepresentation,
- void *);
-
- _Unwind_VRS_Result _Unwind_VRS_Get(_Unwind_Context *, _Unwind_VRS_RegClass,
- _uw, _Unwind_VRS_DataRepresentation,
- void *);
-
- _Unwind_VRS_Result _Unwind_VRS_Pop(_Unwind_Context *, _Unwind_VRS_RegClass,
- _uw, _Unwind_VRS_DataRepresentation);
-
-
- /* Support functions for the PR. */
-#define _Unwind_Exception _Unwind_Control_Block
- typedef char _Unwind_Exception_Class[8];
-
- void * _Unwind_GetLanguageSpecificData (_Unwind_Context *);
- _Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *);
-
- /* These two should never be used. */
- _Unwind_Ptr _Unwind_GetDataRelBase (_Unwind_Context *);
- _Unwind_Ptr _Unwind_GetTextRelBase (_Unwind_Context *);
-
- /* Interface functions: */
- _Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Control_Block *ucbp);
- void __attribute__((noreturn)) _Unwind_Resume(_Unwind_Control_Block *ucbp);
- _Unwind_Reason_Code _Unwind_Resume_or_Rethrow (_Unwind_Control_Block *ucbp);
-
- typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
- (int, _Unwind_Action, _Unwind_Exception_Class,
- _Unwind_Control_Block *, struct _Unwind_Context *, void *);
- _Unwind_Reason_Code _Unwind_ForcedUnwind (_Unwind_Control_Block *,
- _Unwind_Stop_Fn, void *);
- _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);
- void _Unwind_Complete(_Unwind_Control_Block *ucbp);
- void _Unwind_DeleteException (_Unwind_Exception *);
-
- _Unwind_Reason_Code __gnu_unwind_frame (_Unwind_Control_Block *,
- _Unwind_Context *);
- _Unwind_Reason_Code __gnu_unwind_execute (_Unwind_Context *,
- __gnu_unwind_state *);
-
- /* Decode an R_ARM_TARGET2 relocation. */
- static inline _Unwind_Word
- _Unwind_decode_target2 (_Unwind_Word ptr)
- {
- _Unwind_Word tmp;
-
- tmp = *(_Unwind_Word *) ptr;
- /* Zero values are always NULL. */
- if (!tmp)
- return 0;
-
-#if defined(linux) || defined(__NetBSD__)
- /* Pc-relative indirect. */
- tmp += ptr;
- tmp = *(_Unwind_Word *) tmp;
-#elif defined(__symbian__)
- /* Absolute pointer. Nothing more to do. */
-#else
- /* Pc-relative pointer. */
- tmp += ptr;
-#endif
- return tmp;
- }
-
- static inline _Unwind_Word
- _Unwind_GetGR (_Unwind_Context *context, int regno)
- {
- _uw val;
- _Unwind_VRS_Get (context, _UVRSC_CORE, regno, _UVRSD_UINT32, &val);
- return val;
- }
-
- /* Return the address of the instruction, not the actual IP value. */
-#define _Unwind_GetIP(context) \
- (_Unwind_GetGR (context, 15) & ~(_Unwind_Word)1)
-
- static inline void
- _Unwind_SetGR (_Unwind_Context *context, int regno, _Unwind_Word val)
- {
- _Unwind_VRS_Set (context, _UVRSC_CORE, regno, _UVRSD_UINT32, &val);
- }
-
- /* The dwarf unwinder doesn't understand arm/thumb state. We assume the
- landing pad uses the same instruction set as the call site. */
-#define _Unwind_SetIP(context, val) \
- _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1))
-
-typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)
- (struct _Unwind_Context *, void *);
-
-extern _Unwind_Reason_Code _Unwind_Backtrace (_Unwind_Trace_Fn, void *);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* defined UNWIND_ARM_H */
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
index ab1a9395e..db951a10e 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
@@ -336,7 +336,7 @@ LLL_STUB_UNWIND_INFO_END
})
#define lll_robust_lock(futex, id, private) \
- ({ int __result, ignore1, ignore2; \
+ ({ int __ret, ignore1, ignore2; \
__asm__ __volatile__ (LOCK_INSTR "cmpxchgl %1, %2\n\t" \
"jnz _L_robust_lock_%=\n\t" \
".subsection 1\n\t" \
@@ -350,11 +350,11 @@ LLL_STUB_UNWIND_INFO_END
".previous\n" \
LLL_STUB_UNWIND_INFO_4 \
"18:" \
- : "=a" (__result), "=c" (ignore1), "=m" (futex), \
+ : "=a" (__ret), "=c" (ignore1), "=m" (futex), \
"=&d" (ignore2) \
: "0" (0), "1" (id), "m" (futex), "g" ((int) (private))\
: "memory"); \
- __result; })
+ __ret; })
/* Special version of lll_lock which causes the unlock function to
@@ -383,7 +383,7 @@ LLL_STUB_UNWIND_INFO_END
#define lll_robust_cond_lock(futex, id, private) \
- ({ int __result, ignore1, ignore2; \
+ ({ int __ret, ignore1, ignore2; \
__asm__ __volatile__ (LOCK_INSTR "cmpxchgl %1, %2\n\t" \
"jnz _L_robust_cond_lock_%=\n\t" \
".subsection 1\n\t" \
@@ -397,16 +397,16 @@ LLL_STUB_UNWIND_INFO_END
".previous\n" \
LLL_STUB_UNWIND_INFO_4 \
"18:" \
- : "=a" (__result), "=c" (ignore1), "=m" (futex), \
+ : "=a" (__ret), "=c" (ignore1), "=m" (futex), \
"=&d" (ignore2) \
: "0" (0), "1" (id | FUTEX_WAITERS), "m" (futex), \
"g" ((int) (private)) \
: "memory"); \
- __result; })
+ __ret; })
#define lll_timedlock(futex, timeout, private) \
- ({ int __result, ignore1, ignore2, ignore3; \
+ ({ int __ret, ignore1, ignore2, ignore3; \
__asm__ __volatile__ (LOCK_INSTR "cmpxchgl %1, %3\n\t" \
"jnz _L_timedlock_%=\n\t" \
".subsection 1\n\t" \
@@ -420,16 +420,16 @@ LLL_STUB_UNWIND_INFO_END
".previous\n" \
LLL_STUB_UNWIND_INFO_4 \
"18:" \
- : "=a" (__result), "=c" (ignore1), "=&d" (ignore2), \
+ : "=a" (__ret), "=c" (ignore1), "=&d" (ignore2), \
"=m" (futex), "=S" (ignore3) \
: "0" (0), "1" (1), "m" (futex), "m" (timeout), \
"4" ((int) (private)) \
: "memory"); \
- __result; })
+ __ret; })
#define lll_robust_timedlock(futex, timeout, id, private) \
- ({ int __result, ignore1, ignore2, ignore3; \
+ ({ int __ret, ignore1, ignore2, ignore3; \
__asm__ __volatile__ (LOCK_INSTR "cmpxchgl %1, %3\n\t" \
"jnz _L_robust_timedlock_%=\n\t" \
".subsection 1\n\t" \
@@ -443,12 +443,12 @@ LLL_STUB_UNWIND_INFO_END
".previous\n" \
LLL_STUB_UNWIND_INFO_4 \
"18:" \
- : "=a" (__result), "=c" (ignore1), "=&d" (ignore2), \
+ : "=a" (__ret), "=c" (ignore1), "=&d" (ignore2), \
"=m" (futex), "=S" (ignore3) \
: "0" (0), "1" (id), "m" (futex), "m" (timeout), \
"4" ((int) (private)) \
: "memory"); \
- __result; })
+ __ret; })
#if defined NOT_IN_libc || defined UP
# define __lll_unlock_asm LOCK_INSTR "subl $1, %0\n\t"
@@ -570,15 +570,15 @@ extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
__attribute__ ((regparm (2))) attribute_hidden;
#define lll_timedwait_tid(tid, abstime) \
({ \
- int __result = 0; \
+ int __ret = 0; \
if (tid != 0) \
{ \
if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000) \
- __result = EINVAL; \
+ __ret = EINVAL; \
else \
- __result = __lll_timedwait_tid (&tid, abstime); \
+ __ret = __lll_timedwait_tid (&tid, abstime); \
} \
- __result; })
+ __ret; })
#endif /* !__ASSEMBLER__ */
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
index 0ea67e0ef..d10cd6116 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
@@ -98,7 +98,7 @@ extern int __lll_unlock_wake_private (int *__futex) attribute_hidden;
extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
#define lll_trylock(futex) \
- ({ unsigned char __result; \
+ ({ unsigned char __ret; \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -112,15 +112,15 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
1: mov r1,r15\n\
mov #-1,%0\n\
negc %0,%0"\
- : "=r" (__result) \
+ : "=r" (__ret) \
: "r" (&(futex)), \
"r" (LLL_LOCK_INITIALIZER_LOCKED), \
"r" (LLL_LOCK_INITIALIZER) \
: "r0", "r1", "r2", "t", "memory"); \
- __result; })
+ __ret; })
#define lll_robust_trylock(futex, id) \
- ({ unsigned char __result; \
+ ({ unsigned char __ret; \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -134,15 +134,15 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
1: mov r1,r15\n\
mov #-1,%0\n\
negc %0,%0"\
- : "=r" (__result) \
+ : "=r" (__ret) \
: "r" (&(futex)), \
"r" (id), \
"r" (LLL_LOCK_INITIALIZER) \
: "r0", "r1", "r2", "t", "memory"); \
- __result; })
+ __ret; })
#define lll_cond_trylock(futex) \
- ({ unsigned char __result; \
+ ({ unsigned char __ret; \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -156,15 +156,15 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
1: mov r1,r15\n\
mov #-1,%0\n\
negc %0,%0"\
- : "=r" (__result) \
+ : "=r" (__ret) \
: "r" (&(futex)), \
"r" (LLL_LOCK_INITIALIZER_WAITERS), \
"r" (LLL_LOCK_INITIALIZER) \
: "r0", "r1", "r2", "t", "memory"); \
- __result; })
+ __ret; })
#define lll_lock(futex, private) \
- (void) ({ int __result, *__futex = &(futex); \
+ (void) ({ int __ret, *__futex = &(futex); \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -176,20 +176,20 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
bf 1f\n\
mov.l %1,@%2\n\
1: mov r1,r15"\
- : "=&r" (__result) : "r" (1), "r" (__futex) \
+ : "=&r" (__ret) : "r" (1), "r" (__futex) \
: "r0", "r1", "t", "memory"); \
- if (__result) \
+ if (__ret) \
{ \
if (__builtin_constant_p (private) \
&& (private) == LLL_PRIVATE) \
- __lll_lock_wait_private (__result, __futex); \
+ __lll_lock_wait_private (__ret, __futex); \
else \
- __lll_lock_wait (__result, __futex, (private)); \
+ __lll_lock_wait (__ret, __futex, (private)); \
} \
})
#define lll_robust_lock(futex, id, private) \
- ({ int __result, *__futex = &(futex); \
+ ({ int __ret, *__futex = &(futex); \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -201,16 +201,16 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
bf 1f\n\
mov.l %1,@%2\n\
1: mov r1,r15"\
- : "=&r" (__result) : "r" (id), "r" (__futex) \
+ : "=&r" (__ret) : "r" (id), "r" (__futex) \
: "r0", "r1", "t", "memory"); \
- if (__result) \
- __result = __lll_robust_lock_wait (__result, __futex, private); \
- __result; })
+ if (__ret) \
+ __ret = __lll_robust_lock_wait (__ret, __futex, private); \
+ __ret; })
/* Special version of lll_mutex_lock which causes the unlock function to
always wakeup waiters. */
#define lll_cond_lock(futex, private) \
- (void) ({ int __result, *__futex = &(futex); \
+ (void) ({ int __ret, *__futex = &(futex); \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -222,13 +222,13 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
bf 1f\n\
mov.l %1,@%2\n\
1: mov r1,r15"\
- : "=&r" (__result) : "r" (2), "r" (__futex) \
+ : "=&r" (__ret) : "r" (2), "r" (__futex) \
: "r0", "r1", "t", "memory"); \
- if (__result) \
- __lll_lock_wait (__result, __futex, private); })
+ if (__ret) \
+ __lll_lock_wait (__ret, __futex, private); })
#define lll_robust_cond_lock(futex, id, private) \
- ({ int __result, *__futex = &(futex); \
+ ({ int __ret, *__futex = &(futex); \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -240,14 +240,14 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
bf 1f\n\
mov.l %1,@%2\n\
1: mov r1,r15"\
- : "=&r" (__result) : "r" (id | FUTEX_WAITERS), "r" (__futex) \
+ : "=&r" (__ret) : "r" (id | FUTEX_WAITERS), "r" (__futex) \
: "r0", "r1", "t", "memory"); \
- if (__result) \
- __result = __lll_robust_lock_wait (__result, __futex, private); \
- __result; })
+ if (__ret) \
+ __ret = __lll_robust_lock_wait (__ret, __futex, private); \
+ __ret; })
#define lll_timedlock(futex, timeout, private) \
- ({ int __result, *__futex = &(futex); \
+ ({ int __ret, *__futex = &(futex); \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -259,14 +259,14 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
bf 1f\n\
mov.l %1,@%2\n\
1: mov r1,r15"\
- : "=&r" (__result) : "r" (1), "r" (__futex) \
+ : "=&r" (__ret) : "r" (1), "r" (__futex) \
: "r0", "r1", "t", "memory"); \
- if (__result) \
- __result = __lll_timedlock_wait (__result, __futex, timeout, private); \
- __result; })
+ if (__ret) \
+ __ret = __lll_timedlock_wait (__ret, __futex, timeout, private); \
+ __ret; })
#define lll_robust_timedlock(futex, timeout, id, private) \
- ({ int __result, *__futex = &(futex); \
+ ({ int __ret, *__futex = &(futex); \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -278,15 +278,15 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
bf 1f\n\
mov.l %1,@%2\n\
1: mov r1,r15"\
- : "=&r" (__result) : "r" (id), "r" (__futex) \
+ : "=&r" (__ret) : "r" (id), "r" (__futex) \
: "r0", "r1", "t", "memory"); \
- if (__result) \
- __result = __lll_robust_timedlock_wait (__result, __futex, \
+ if (__ret) \
+ __ret = __lll_robust_timedlock_wait (__ret, __futex, \
timeout, private); \
- __result; })
+ __ret; })
#define lll_unlock(futex, private) \
- (void) ({ int __result, *__futex = &(futex); \
+ (void) ({ int __ret, *__futex = &(futex); \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -296,9 +296,9 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
add #-1,%0\n\
mov.l %0,@%1\n\
1: mov r1,r15"\
- : "=&r" (__result) : "r" (__futex) \
+ : "=&r" (__ret) : "r" (__futex) \
: "r0", "r1", "memory"); \
- if (__result) \
+ if (__ret) \
{ \
if (__builtin_constant_p (private) \
&& (private) == LLL_PRIVATE) \
@@ -309,7 +309,7 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
})
#define lll_robust_unlock(futex, private) \
- (void) ({ int __result, *__futex = &(futex); \
+ (void) ({ int __ret, *__futex = &(futex); \
__asm__ __volatile__ ("\
.align 2\n\
mova 1f,r0\n\
@@ -319,9 +319,9 @@ extern int __lll_unlock_wake (int *__futex, int private) attribute_hidden;
and %2,%0\n\
mov.l %0,@%1\n\
1: mov r1,r15"\
- : "=&r" (__result) : "r" (__futex), "r" (FUTEX_WAITERS) \
+ : "=&r" (__ret) : "r" (__futex), "r" (FUTEX_WAITERS) \
: "r0", "r1", "memory"); \
- if (__result) \
+ if (__ret) \
__lll_unlock_wake (__futex, private); })
#define lll_robust_dead(futex, private) \
@@ -405,15 +405,15 @@ extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
attribute_hidden;
#define lll_timedwait_tid(tid, abstime) \
({ \
- int __result = 0; \
+ int __ret = 0; \
if (tid != 0) \
{ \
if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000) \
- __result = EINVAL; \
+ __ret = EINVAL; \
else \
- __result = __lll_timedwait_tid (&tid, abstime); \
+ __ret = __lll_timedwait_tid (&tid, abstime); \
} \
- __result; })
+ __ret; })
#endif /* !__ASSEMBLER__ */
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index ffab81eb5..afc40133e 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -332,7 +332,7 @@ LLL_STUB_UNWIND_INFO_END
}) \
#define lll_robust_lock(futex, id, private) \
- ({ int result, ignore1, ignore2; \
+ ({ int __ret, ignore1, ignore2; \
__asm__ __volatile__ (LOCK_INSTR "cmpxchgl %4, %2\n\t" \
"jnz 1f\n\t" \
".subsection 1\n\t" \
@@ -348,10 +348,10 @@ LLL_STUB_UNWIND_INFO_END
LLL_STUB_UNWIND_INFO_5 \
"24:" \
: "=S" (ignore1), "=D" (ignore2), "=m" (futex), \
- "=a" (result) \
+ "=a" (__ret) \
: "1" (id), "m" (futex), "3" (0), "0" (private) \
: "cx", "r11", "cc", "memory"); \
- result; })
+ __ret; })
#define lll_cond_lock(futex, private) \
(void) \
@@ -377,7 +377,7 @@ LLL_STUB_UNWIND_INFO_END
})
#define lll_robust_cond_lock(futex, id, private) \
- ({ int result, ignore1, ignore2; \
+ ({ int __ret, ignore1, ignore2; \
__asm__ __volatile__ (LOCK_INSTR "cmpxchgl %4, %2\n\t" \
"jnz 1f\n\t" \
".subsection 1\n\t" \
@@ -393,14 +393,14 @@ LLL_STUB_UNWIND_INFO_END
LLL_STUB_UNWIND_INFO_5 \
"24:" \
: "=S" (ignore1), "=D" (ignore2), "=m" (futex), \
- "=a" (result) \
+ "=a" (__ret) \
: "1" (id | FUTEX_WAITERS), "m" (futex), "3" (0), \
"0" (private) \
: "cx", "r11", "cc", "memory"); \
- result; })
+ __ret; })
#define lll_timedlock(futex, timeout, private) \
- ({ int result, ignore1, ignore2, ignore3; \
+ ({ int __ret, ignore1, ignore2, ignore3; \
__asm__ __volatile__ (LOCK_INSTR "cmpxchgl %1, %4\n\t" \
"jnz 1f\n\t" \
".subsection 1\n\t" \
@@ -416,15 +416,15 @@ LLL_STUB_UNWIND_INFO_END
".previous\n" \
LLL_STUB_UNWIND_INFO_6 \
"24:" \
- : "=a" (result), "=D" (ignore1), "=S" (ignore2), \
+ : "=a" (__ret), "=D" (ignore1), "=S" (ignore2), \
"=&d" (ignore3), "=m" (futex) \
: "0" (0), "1" (1), "m" (futex), "m" (timeout), \
"2" (private) \
: "memory", "cx", "cc", "r10", "r11"); \
- result; })
+ __ret; })
#define lll_robust_timedlock(futex, timeout, id, private) \
- ({ int result, ignore1, ignore2, ignore3; \
+ ({ int __ret, ignore1, ignore2, ignore3; \
__asm__ __volatile__ (LOCK_INSTR "cmpxchgl %1, %4\n\t" \
"jnz 1f\n\t" \
".subsection 1\n\t" \
@@ -440,12 +440,12 @@ LLL_STUB_UNWIND_INFO_END
".previous\n" \
LLL_STUB_UNWIND_INFO_6 \
"24:" \
- : "=a" (result), "=D" (ignore1), "=S" (ignore2), \
+ : "=a" (__ret), "=D" (ignore1), "=S" (ignore2), \
"=&d" (ignore3), "=m" (futex) \
: "0" (0), "1" (id), "m" (futex), "m" (timeout), \
"2" (private) \
: "memory", "cx", "cc", "r10", "r11"); \
- result; })
+ __ret; })
#if defined NOT_IN_libc || defined UP
# define __lll_unlock_asm_start LOCK_INSTR "decl %0\n\t" \
@@ -583,15 +583,15 @@ extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
attribute_hidden;
#define lll_timedwait_tid(tid, abstime) \
({ \
- int __result = 0; \
+ int __ret = 0; \
if (tid != 0) \
{ \
if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000) \
- __result = EINVAL; \
+ __ret = EINVAL; \
else \
- __result = __lll_timedwait_tid (&tid, abstime); \
+ __ret = __lll_timedwait_tid (&tid, abstime); \
} \
- __result; })
+ __ret; })
#endif /* !__ASSEMBLER__ */