bionic/libc/private
David 'Digit' Turner e31bfae2ba bionic: Do not use <sys/atomics.h> for platform code.
We're going to modify the __atomic_xxx implementation to provide
full memory barriers, to avoid problems for NDK machine code that
link to these functions.

First step is to remove their usage from our platform code.
We now use inlined versions of the same functions for a slight
performance boost.

+ remove obsolete atomics_x86.c (was never compiled)

NOTE: This improvement was benchmarked on various devices.
      Comparing a pthread mutex lock + atomic increment + unlock
      we get:

  - ARMv7 emulator, running on a 2.4 GHz Xeon:
       before: 396 ns    after: 288 ns

  - x86 emulator in KVM mode on same machine:
       before: 27 ns     after: 27 ns

  - Google Nexus S, in ARMv7 mode (single-core):
       before: 82 ns     after: 76 ns

  - Motorola Xoom, in ARMv7 mode (multi-core):
       before: 121 ns    after: 120 ns

The code has also been rebuilt in ARMv5TE mode for correctness.

Change-Id: Ic1dc72b173d59b2e7af901dd70d6a72fb2f64b17
2011-11-16 16:28:10 +01:00
..
isc auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
__dso_handle_so.S Enable functional DSO object destruction 2011-06-20 14:44:44 -07:00
__dso_handle.S Enable functional DSO object destruction 2011-06-20 14:44:44 -07:00
arpa_nameser_compat.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
arpa_nameser.h Fix spurious DNS lookups in the C library. 2010-03-08 15:22:13 -08:00
bionic_atomic_arm.h bionic: Do not use <sys/atomics.h> for platform code. 2011-11-16 16:28:10 +01:00
bionic_atomic_gcc_builtin.h bionic: Do not use <sys/atomics.h> for platform code. 2011-11-16 16:28:10 +01:00
bionic_atomic_inline.h bionic: Do not use <sys/atomics.h> for platform code. 2011-11-16 16:28:10 +01:00
bionic_atomic_x86.h bionic: Do not use <sys/atomics.h> for platform code. 2011-11-16 16:28:10 +01:00
bionic_futex.h Use private futexes for semaphores, unless they are initialized with pshared != 0. 2010-06-08 17:04:49 -07:00
bionic_pthread.h Add non-NDK internal API __pthread_gettid 2011-09-16 12:38:28 -07:00
bionic_tls.h Fix __get_tls() in static C library to use kernel helpers. 2010-08-27 08:19:19 -07:00
cpuacct.h Remove compiler warnings when building Bionic. 2010-06-22 17:51:41 -07:00
ctype_private.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
logd.h Revert "Revert "libc: Add logcat error message for memory corruption"" 2011-07-06 12:58:56 -07:00
nsswitch.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
rand48.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
resolv_cache.h Add support for a dns cache per interface 2011-06-08 15:39:29 +02:00
resolv_private.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
resolv_static.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
syscommon.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
thread_private.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00