Commit graph

17116 commits

Author SHA1 Message Date
David Turner
8ab5b02b5f Merge changes Ibdc6e3c8,I9bcb91a2
* changes:
  Correct generic memset implementation
  Generic memcpy should define MEMCOPY before including bcopy.c
2010-03-29 15:05:47 -07:00
David Turner
87ae0da817 Merge "Atom optimized string and memory routines" 2010-03-29 14:40:05 -07:00
David 'Digit' Turner
519a73f11e Merge "Update libthread_db for gdb-7.0" 2010-03-29 13:03:55 -07:00
The Android Open Source Project
62ac0dc457 merge from open-source master
Change-Id: I96d2cd063f084fd17116bf7ee08fa7109a3c1ceb
2010-03-29 11:01:59 -07:00
André Goddard Rosa
3f61212781 bionic: clear only the part of the buffer which is not overwritten afterward
Change-Id: I5ddd93f0557e5a7401460dc9fc8a55b330a79c3a
Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
2010-03-28 21:32:36 -03:00
André Goddard Rosa
acdb052030 stdlib: optimize bsearch()
... by checking most probable condition first (elements do differ)

Change-Id: I424eab9c32a6d9eb82b686ca04025ec8c9097035
Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
2010-03-28 21:18:56 -03:00
Bruce Beare
8ff1a2759a Atom optimized string and memory routines
Change-Id: I27b68bb28551c75c9ac84bb9730e2cd8254d8991
2010-03-26 10:54:07 -07:00
Bruce Beare
58f0326362 Android hack for size_t
Change-Id: I3c967fca60f542459dc17be84da47b3b6a26242b
2010-03-26 09:36:01 -07:00
David 'Digit' Turner
68b5f55671 Fix setjmp()/longjmp() to save FP registers on ARMv7.
Change-Id: I8ec684c8f8ca1ae58c8feb330b97d1e2b81caeef
2010-03-25 13:24:18 -07:00
Kenny Root
7e0bfb511e Fix comparison of IPv6 prefixes
Typo assigned prefixlen1 twice instead of to the two different variables
for comparison and difference computation.

Change-Id: I6631b8269ca6aae264c8d7d414127b756838df96
2010-03-24 18:07:26 -07:00
David 'Digit' Turner
3d4edfc599 Update libthread_db for gdb-7.0
Change-Id: If8fbcea1cf6d06fc465a22d73671e6ff6aa1f312
2010-03-24 14:51:37 -07:00
Dima Zavin
4e383b81d0 libc: kernel: update msm_kgsl.h
Change-Id: I8cd5a186071892bdc2b2b29061dd6c1fd927c0f5
Signed-off-by: Dima Zavin <dima@android.com>
2010-03-24 14:13:10 -07:00
David 'Digit' Turner
5207d78c32 Fix typo that broke recursive mutexes implementation.
Change-Id: I832901604b487c6a50304c311b5ba135e153530d
2010-03-23 05:30:55 -07:00
David 'Digit' Turner
b5e4a41606 pthread: Use private futexes by default in condition variables
Now that the system properly uses shared condvars when needed, we
can enable the use of private futexes for them too.

Change-Id: Icf8351fc0a2309f764cba45c65bc3af047720cdf
2010-03-22 17:31:50 -07:00
The Android Open Source Project
377d4c979d merge from open-source master
Change-Id: I70266ee8c520b216773f267e46c8273d2334c31d
2010-03-22 15:55:09 -07:00
David 'Digit' Turner
709a898de8 Merge "Fix strtod security bug." 2010-03-22 15:45:32 -07:00
David 'Digit' Turner
88f06cd84a Use private futexes for pthread_mutex_t.
This does not change the implementation of conditional variables
since we're waiting for other system components to properly use
pthread_condattr_init/setpshared before that.

Also remove an obsolete x86 source file.

Change-Id: Ia3e3fbac35b87a534fb04d4381c3c66b975bc8f7
2010-03-18 17:13:41 -07:00
David Turner
1825fb5d5f Merge "bionic: on pthread_join(), avoid extra check in case we find the thread" 2010-03-18 16:42:49 -07:00
David Turner
c0e464268d Merge "bionic: ftell() returns a long, not an int" 2010-03-18 16:35:42 -07:00
David 'Digit' Turner
ee7b077abf Add pthread_condattr_init/destroy/setpshared/getpshared
Note that this does not change the implementation of conditional variables
which still use shared futexes, independent on the flags being selected.

This will be fixed in a later patch, once our system is modified to use
pthread_condattr_setpshared(attr, PTHREAD_PROCESS_SHARED) properly.

Change-Id: I935de50964cd41f97a13dbfd6626d3407b0406c3
2010-03-18 14:07:42 -07:00
Matt Fischer
e2a8b1fd19 Added support for dladdr()
dladdr() is a GNU extension function, which allows the caller to retrieve
symbol information for a specified memory address.  It is useful for things
like generating backtrace information at runtime.

Change-Id: I3a1def1a6c9c666d93e1e97b7d260dfa5b9b79a9
2010-03-17 16:11:37 -05:00
David Turner
ede2e75f49 Merge "x86 syscall system call implementation" 2010-03-17 14:07:27 -07:00
David Turner
b0ae864dff Merge "Fix pread()/pwrite() stubs" 2010-03-17 14:00:20 -07:00
David 'Digit' Turner
40e6b82286 Fix indentation in pthread mutex implementation.
This is preliminary work to simplify later changes to support
private futexes.

Change-Id: I06750936a93747a5e3f5a10228cbdc29e39c528c
2010-03-17 11:25:46 -07:00
David Turner
a9c41a8e0a Merge "bionic: remove unneeded variable from chk_realloc()" 2010-03-16 17:26:44 -07:00
David Turner
3f192f55f0 Merge "bionic: equalize the <unknown> program name between ssp.c and libc_init_common.c" 2010-03-16 17:25:53 -07:00
David Turner
dd8f3c80f1 Merge "improve readability of string: fix indentation and remove trailing spaces" 2010-03-16 17:25:04 -07:00
David Turner
5586838bab Merge "optimize delete/delete[] operators by removing unneeded branch" 2010-03-16 17:21:52 -07:00
Fabrice Di Meglio
8641833b62 Revert "bionic: pthread: use private futexes by default for mutexes and condvars"
This reverts commit ba9c6f0989.
2010-03-11 14:47:47 -08:00
David 'Digit' Turner
ba9c6f0989 bionic: pthread: use private futexes by default for mutexes and condvars
Private futexes are a recent kernel addition: faster futexes that cannot be
shared between processes. This patch uses them by default, unless the PROCESS_SHARED
attribute flag is used when creating a mutex and/or conditional variable.

Also introduces pthread_condattr_init/destroy/setpshared/getpshared.

Change-Id: I3a0e2116f467072b046524cb5babc00e41057a53
2010-03-11 11:48:38 -08:00
Colin Cross
1cfbda826c Merge "Only use NEON memcpy if __ARM_NEON__ is defined" 2010-03-10 18:14:25 -08:00
Colin Cross
ecede40222 Only use NEON memcpy if __ARM_NEON__ is defined
Change-Id: I32e6b9385d46efeec15dee8e395a82eef24ba3ea
2010-03-09 16:23:51 -08:00
David 'Digit' Turner
8132626b71 Fix strtod security bug.
To avoid introducing NULL checks everytime a Bigint computation
is performed, introduce a special value (BIGINT_INVALID) and only
check for it when absolutely needed (which means when the code
needs to access the Bigint's internal structure fields).

Change-Id: Ie3954523b0985b6a8cb62340802d8dcf63cbf16f
2010-03-09 15:27:50 -08:00
David 'Digit' Turner
92e712f60d Merge "Fix spurious DNS lookups in the C library." 2010-03-09 11:13:35 -08:00
Jean-Baptiste Queru
55cd975f34 Add an empty CleanSpec.mk
Change-Id: Id233ea6f854253776f57e64196e262c5a057e654
2010-03-08 18:04:02 -08:00
David 'Digit' Turner
d378c68d74 Fix spurious DNS lookups in the C library.
The problem was that the 'defdname' field of res_state structure
was not properly initialized in __res_vinit(). This field is used
to store the default domain name, which is normally build from
calling gethostname() (see line 549 of res_init.c).

Unfortunately, in the typical Android case, gethostname() returns
an error (the hostname is configured) and a random stack string is
used later to build the DNS search list (see lines 556+ in res_init.c)

For the sake of illustration, let's say the search list is set to
a random value like 'xWLK'.

The end result is that when trying to result an unknown domain name
(e.g. 'www.ptn'), the query fails then the resolver tries to make a
new query with the DNS search list path(s) appended (e.g. 'www.ptn.xWLK').

The patch simply initializes 'defdname' to an empty string to avoid
this when the net.dns.search system property is not set.

Also contains whitespace/formatting fixes
2010-03-08 15:22:13 -08:00
David 'Digit' Turner
d7ed1ae982 Fix timezone management in the C library
Define 'timezone' and 'daylight' global variables that are already
defined in <time.h>

Properly update the 'tm_gmtoff' field in 'struct tm' values.
2010-03-05 14:17:35 -08:00
Bruce Beare
3c543e1da9 x86 syscall system call implementation 2010-03-04 10:29:38 -08:00
Gloria Wang
cb58a8221c Merge "QUalcomm H.264 encoder support." 2010-03-03 18:02:33 -08:00
Gloria Wang
f199d2d503 QUalcomm H.264 encoder support. 2010-03-03 17:16:48 -08:00
Dan Bornstein
2e5491b8f2 am 71fbeecd: (-s ours) am fd5b1bb8: Add stdlib functions mbstowcs() and wcstombs(). DO NOT MERGE.
Merge commit '71fbeecdbd7bcf2282e4b032ceb2f6ead13dc9cb'

* commit '71fbeecdbd7bcf2282e4b032ceb2f6ead13dc9cb':
  Add stdlib functions mbstowcs() and wcstombs(). DO NOT MERGE.
2010-03-03 11:07:09 -08:00
Dan Bornstein
71fbeecdbd am fd5b1bb8: Add stdlib functions mbstowcs() and wcstombs(). DO NOT MERGE.
Merge commit 'fd5b1bb85d0a971fd8469112a157380c4d3a146f' into eclair-mr2-plus-aosp

* commit 'fd5b1bb85d0a971fd8469112a157380c4d3a146f':
  Add stdlib functions mbstowcs() and wcstombs(). DO NOT MERGE.
2010-03-03 10:51:34 -08:00
Dan Bornstein
fd5b1bb85d Add stdlib functions mbstowcs() and wcstombs(). DO NOT MERGE.
As with the other wchar functions in Bionic, these are really
minimally functional stubs.
2010-03-03 10:25:29 -08:00
Mike Chan
9f6915631b bonic: libc: cpuacct support for setuid functions
Any of the setuid functions now updates /acct/uid/ with its own tid
before changing users. This is so we can properly account for cpu time
per uid.

Change-Id: I34186cf4d5228cac8439e582a9e26c01ef3011e4
Signed-off-by: Mike Chan <mike@android.com>
2010-03-02 18:18:04 -08:00
Dima Zavin
bd9a90c443 libc: kernel: update pmem header with cache flush ioctl
Change-Id: Ied08844035d4526175dcdcb7f219f9f90c4679d2
Signed-off-by: Dima Zavin <dima@android.com>
2010-03-02 16:10:34 -08:00
Andrei Popescu
eb9d5ed347 add sigaltstack syscall 2010-03-02 11:43:24 +00:00
David 'Digit' Turner
8f8b5310d2 Fix pthread_sigmask() to return correct error values.
Before that, it returned -1 on error and set errno (not Posix)
After the patch, it returns the error code and leaves errno untouched.
2010-03-01 11:30:40 -08:00
David Turner
1f6f493963 Merge "Implement support for RFC 3484 (address selection/sorting) in bionic. (The Java changes required not to mess up the ordering from bionic will arrive in a later commit.) In particular, this will give us more correct behavior when on a 6to4 network, in that IPv4 will usually be preferred over 6to4." 2010-02-24 10:04:09 -08:00
Steinar H. Gunderson
9ab75d4cc8 Implement support for RFC 3484 (address selection/sorting) in bionic. (The
Java changes required not to mess up the ordering from bionic will arrive in a
later commit.) In particular, this will give us more correct behavior when on a
6to4 network, in that IPv4 will usually be preferred over 6to4.

Most of RFC 3484 is implemented -- what's not is rule 3 (avoid deprecated
addresses), 4 (prefer home addresses) and 7 (prefer native transport) as they
require low-level access to the kernel routing table via netlink. (glibc also
started out this way, and these rules are primarily useful in pretty obscure
circumstances, so we should be fine for the time being.)

Also, rule 9 (use longest matching prefix) has been modified so it does not try
to sort IPv4 addresses; given current IPv4 addressing practice these rules are
pretty much meaningless. Finally, I've added support for Teredo as a separate
label, with slightly lower preference than 6to4. (Vista puts the preference
below IPv4 by default. glibc puts the preference together with non-tunneled
IPv6.)

Note that this patch removes support for the "sortlist" directive in
resolv.conf; I've never seen it in actual use, it's irrelevant for Android
(since we don't use resolv.conf anyway), and it's not clear how it would be
implemented alongside RFC 3484.
2010-02-24 11:49:17 +01:00
San Mehat
75c5e25ae3 bionic: syscalls: Add ioprio_set/ioprio_get syscall wrappers
Signed-off-by: San Mehat <san@google.com>
2010-02-23 15:55:29 -08:00