Additions necessary for busybox

Change-Id: I46f67991858ca1399f6b28a3a5c286b7f3ef0888
mark this as cyanogen bionic for busybox

Change-Id: I112ae59ca5e4d153d4851d8f80838cd22b03dc98
bionic: Add akm8975 header

Change-Id: I5c491a47ebc8d2e7721ce068b4bb3f6c6058fcad
bionic: Add msm_rotator.h

Add the msm_rotator header file to match the rotator driver header file
used on the msm7x30 target.

Change-Id: I208219e79c9ec5878c6078cb4cfb8b242a2f6a67
7x30: Update msm_mdp.h header from CodeAurora/HTC

Change-Id: Iea2ce3162651ed1e8be2ef8f2983a7df01323b4e
bionic: Add msm_audio_7X30 header file

Change-Id: I2d717dd63ebccad9d7a993b01993201b0eebd9e1
msm_mdp.h: ifdef the reference to sharpening_strength

The sharpening_strength field in mdp_blit_req is only in the
staging/msm version of msm_mdp.h, not in the video/msm version
which is the version currently being compiled in all of the
kernels.

As a result, I've wrapped the sharpening_strength field in a
CONFIG_MSM_MDP40 ifdef.  Note, however, it may be more appropriate
to instead check if MDP_BLIT_REQ_VERSION >= 2.

This fixes the issue of error messages similar to:
  E/copybit (  146): copyBits failed (Invalid argument)
  D/copybit (  146): 0: src={w=320, h=480, f=0, rect={0,338,13,73}}
  D/copybit (  146):     dst={w=320, h=480, f=0, rect={0,338,13,73}}
  D/copybit (  146):     flags=00020000
  D/copybit (  146): 1: src={w=320, h=480, f=0, rect={307,338,13,73}}
  D/copybit (  146):     dst={w=320, h=480, f=0, rect={307,338,13,73}}
  D/copybit (  146):     flags=00020000
  D/copybit (  146): 2: src={w=320, h=480, f=0, rect={0,411,320,69}}
  D/copybit (  146):     dst={w=320, h=480, f=0, rect={0,411,320,69}}
  D/copybit (  146):     flags=00020000
  E/libagl  (  146): copybit failed (Unknown error: -22)
which are triggered, for example, by dragging down the status bar.

Change-Id: I20e7696442e888ea1ac0c80ef1e2cc22f08028aa
bionic: Add NASTY_PTHREAD_CREATE_HACK

This is a workaround for bad linkage of proprietary libs on certain
devices. Thanks to Zinx for tracking it down.

Change-Id: Ice2da9c02c3c84b9ed417e623b248a87b8f9678e
bionic: use correct TLS code path

bionic_tls.h provides two code paths for accessing the exposed kernel TLS
variable, depending on the kernel configuration used, and uses a preprocessor
define to select the correct path. this commit ensures that the linker
specifies the preprocessor symbol correctly

Change-Id: I8b21f430a13fd09dd76232e13e53909e477a0ac7
link libthread_db against libc

libthread_db fails to load unless it is linked against libc; this
in turn cases dbgserver to incorrectly read threads

Change-Id: Ic3631d8b36e96c329d4c9b46796a3781a60d4220
[bionic] implement work around for tegra errata 657451

tegra 2 processors have a bug in the register read path of bit 20 of
the CP15 c13, 3 register (used for software thread local storage)

the kernel work-around for this bug is to mux the value from bit 20
into bit 0; since the TLS value used by Android is an aligned address,
bit 0 is known to be available.

Change-Id: If70afa52585d327f9dd5eca479c14ca92532ddd8
Reviewed-on: http://git-master/r/773
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
Posix-compliance: raise() didn't work with threads

Albeit we have threads, Bionic only implemented the first case from
raise() man page (see below). Thus, signal was always delivered to the
main thread which is what you get from getpid():

DESCRIPTION
       The raise() function sends a signal to the calling process or
       thread. In a single-threaded program it is equivalent to

           kill(getpid(), sig);

       In a multithreaded program it is equivalent to

           pthread_kill(pthread_self(), sig);

       If the signal causes a handler to be called, raise() will only
       return after the signal handler has returned.

Change-Id: Idb4f51608578584595a73be4ba5dbc3c3d508b48
Reviewed-on: http://git-master/r/871
Reviewed-by: Antti Hatala <ahatala@nvidia.com>
Tested-by: Antti Hatala <ahatala@nvidia.com>
Use ARMv6 instruction for handling byte order

ARMv6 ISA has several instructions to handle data in different byte order.
For endian conversion (byte swapping) of single data words, it might be a
good idea to use the REV/REV16 instruction simply.

Change-Id: Ic4a5ed6254e082763e54aa70d428f59a0088636e
bionic: Add ARM optimized strcpy()

Reference results of the experiments on Qualcomm MSM7x25 (524MHz):

[original C code]
             prc thr   usecs/call      samples   errors cnt/samp
size
strcpy_1k      1   1     14.56159           99        0     1000
1024

[ARM optimized code]
             prc thr   usecs/call      samples   errors cnt/samp
size
strcpy_1k      1   1      3.46653           99        0     1000
1024

The work was derived from ARM Ltd.

Change-Id: I906ac53bb7a7285e14693c77d3ce8d4ed6f98bfd
Use more optimized version of memmove

On ARM there is currently no assembler optimized memmove in libc.
There is however a more optimized bcopy which copies long instead
of bytes where possible. This almost doubles the performance in
best case.

Change-Id: I1f1cd27529443358047c385730deaf938ce4e642
Merge branch 'gingerbread' of git://android.git.kernel.org/platform/bionic into 233-merge
removing shadowing redeclaration of result

Change-Id: Ic0c67fc852a66de51b1c2696d878a2a91ed65257
bionic: Update PMEM and VIDC headers

Change-Id: I03702ec15266f7e652c66ef909d77403929f576d
Merge "removing shadowing redeclaration of result" into gingerbread
bionic: add aic3254 and msm_audio_aac header

Change-Id: I97d7e70a8768ae9e832d9d01c7bb8f44fb3a4b35