* commit '7beaa5024f083431ca74ee73b01f5ad1e5b4198f': Reduce the exposure of the __set_errno implementation detail.
This commit is contained in:
commit
dcb8209409
@ -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 \
|
||||
|
@ -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 {
|
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user