am 7beaa502: am 16c61f08: Merge "Reduce the exposure of the __set_errno implementation detail."

* commit '7beaa5024f083431ca74ee73b01f5ad1e5b4198f':
  Reduce the exposure of the __set_errno implementation detail.
This commit is contained in:
Elliott Hughes 2012-11-30 14:46:50 -08:00 committed by Android Git Automerger
commit dcb8209409
4 changed files with 19 additions and 28 deletions

View File

@ -211,7 +211,6 @@ libc_common_src_files := \
bionic/semaphore.c \
bionic/send.c \
bionic/setegid.c \
bionic/__set_errno.c \
bionic/seteuid.c \
bionic/setpgrp.c \
bionic/setresuid.c \
@ -283,6 +282,7 @@ libc_bionic_src_files := \
bionic/__memcpy_chk.cpp \
bionic/__memmove_chk.cpp \
bionic/__memset_chk.cpp \
bionic/__set_errno.cpp \
bionic/setlocale.cpp \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \

View File

@ -28,26 +28,22 @@
#include <errno.h>
// These functions are called from our assembler syscall stubs.
// C/C++ code should just assign 'errno' instead.
int __set_errno(int n)
{
// TODO: should be __LIBC_HIDDEN__, but already exported by NDK :-(
// TODO: this isn't used on ARM.
extern "C" int __set_errno(int n) {
errno = n;
return -1;
}
/*
* this function is called from syscall stubs,
* (tail-called in the case of 0-4 arg versions)
*/
__LIBC_HIDDEN__
int __set_syscall_errno(int n)
{
/* some syscalls, mmap() for example, have valid return
** values that are "negative". Since errno values are not
** greater than 131 on Linux, we will just consider
** anything significantly out of range as not-an-error
*/
// TODO: this is only used on ARM, but is exported by NDK on all platforms :-(
extern "C" __LIBC_HIDDEN__ int __set_syscall_errno(int n) {
// Some syscalls, mmap() for example, have valid return
// values that are "negative". Since errno values are not
// greater than 131 on Linux, we will just consider
// anything significantly out of range as not-an-error.
if(n > -256) {
return __set_errno(-n);
} else {

View File

@ -59,7 +59,6 @@ extern void pthread_debug_mutex_unlock_check(pthread_mutex_t *mutex);
extern int __pthread_clone(int (*fn)(void*), void *child_stack, int flags, void *arg);
extern void _exit_with_stack_teardown(void * stackBase, int stackSize, int retCode);
extern void _exit_thread(int retCode);
extern int __set_errno(int);
int __futex_wake_ex(volatile void *ftx, int pshared, int val)
{

View File

@ -40,10 +40,6 @@ __BEGIN_DECLS
#define ENOTSUP EOPNOTSUPP
#endif
/* internal function that should *only* be called from system calls */
/* use errno = xxxx instead in C code */
extern int __set_errno(int error);
/* internal function returning the address of the thread-specific errno */
extern volatile int* __errno(void);