From 8b0a52444c889fd368f51ba37ad401b6ca5d40f1 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 22 Aug 2005 07:34:59 +0000 Subject: Updated to fedora-glibc-20050822T0727 --- include/atomic.h | 41 ++++++++++++++++++++++++++++++++++++++--- include/stdio.h | 1 + 2 files changed, 39 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/atomic.h b/include/atomic.h index 8a23f6ee9e..8b76435a81 100644 --- a/include/atomic.h +++ b/include/atomic.h @@ -1,5 +1,5 @@ /* Internal macros for atomic operations for GNU C Library. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -108,7 +108,7 @@ __typeof (*(mem)) __value = (newvalue); \ \ do \ - __oldval = (*__memp); \ + __oldval = *__memp; \ while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__memp, \ __value, \ __oldval),\ @@ -130,7 +130,7 @@ __typeof (*(mem)) __value = (value); \ \ do \ - __oldval = (*__memp); \ + __oldval = *__memp; \ while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__memp, \ __oldval \ + __value,\ @@ -141,6 +141,41 @@ #endif + +#ifndef atomic_max +# define atomic_max(mem, value) \ + do { \ + __typeof (*(mem)) __oldval; \ + __typeof (mem) __memp = (mem); \ + __typeof (*(mem)) __value = (value); \ + do { \ + __oldval = *__memp; \ + if (__oldval >= __value) \ + break; \ + } while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__memp, \ + __value, \ + __oldval),\ + 0)); \ + } while (0) +#endif + +#ifndef atomic_min +# define atomic_min(mem, value) \ + do { \ + __typeof (*(mem)) __oldval; \ + __typeof (mem) __memp = (mem); \ + __typeof (*(mem)) __value = (value); \ + do { \ + __oldval = *__memp; \ + if (__oldval <= __value) \ + break; \ + } while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__memp, \ + __value, \ + __oldval),\ + 0)); \ + } while (0) +#endif + #ifndef atomic_add # define atomic_add(mem, value) (void) atomic_exchange_and_add ((mem), (value)) #endif diff --git a/include/stdio.h b/include/stdio.h index 9220db5b80..e040380d79 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -128,6 +128,7 @@ libc_hidden_proto (open_memstream) libc_hidden_proto (__libc_fatal) libc_hidden_proto (__vsprintf_chk) libc_hidden_proto (__vsnprintf_chk) +libc_hidden_proto (__vfprintf_chk) # if !defined NOT_IN_libc && defined SHARED && defined DO_VERSIONING \ && defined HAVE_VISIBILITY_ATTRIBUTE && !defined HAVE_BROKEN_ALIAS_ATTRIBUTE\ -- cgit 1.4.1