Compare commits

..

5 Commits

Author SHA1 Message Date
Chad Brubaker
081db840be Allow overlap in resolv uid => DNS iface mapping
When multiple rules exist covering a given uid the one added most
recently will be used.

This allows us to handle the simultaneous tuns case where a new tun is
coming online for an already running VPN.

_resolv_clear_iface_for_uid_range now also takes the iface and removes
only that matching (iface, uid range) entry.

Bug: 12134439
Change-Id: I9b9cfcfae2f38c409022a8c76ccadad7e2babd78
2014-03-15 15:29:01 -07:00
Elliott Hughes
04583ce9b9 Upgrade to tzdata2014a.
From the release notes:

  Changes affecting near-future time stamps

    Turkey begins DST on 2014-03-31, not 03-30.  (Thanks to Faruk Pasin
    for the heads-up, and to Tim Parenti for simplifying the update.)

  Changes affecting past time stamps

    Fiji ended DST on 2014-01-19 at 02:00, not the previously-scheduled
    03:00.  (Thanks to Steffen Thorsen.)

    Ukraine switched from Moscow to Eastern European time on 1990-07-01
    (not 1992-01-01), and observed DST during the entire next winter.
    (Thanks to Vladimir in Moscow via Alois Treindl.)

    In 1988 Israel observed DST from 04-10 to 09-04, not 04-09 to
    09-03.  (Thanks to Avigdor Finkelstein.)

(cherry picked from commit 159b28eb46)

Bug: 13193205
Change-Id: I3d302039f7e057a97c9d307ce8d32efa056481ed
2014-03-10 15:23:02 -07:00
Robert Greenwalt
abf91850f9 Merge "Fix dns searchdomain use in gethostbyname." into klp-dev 2014-03-05 18:26:27 +00:00
Elliott Hughes
806f3bd7aa Upgrade to tzdata2013i.
From the release notes:

  Changes affecting near-future time stamps:

    Jordan switches back to standard time at 00:00 on December 20, 2013.
    The 2006-2011 transition schedule is planned to resume in 2014.
    (Thanks to Steffen Thorsen.)

  Changes affecting past time stamps:

    In 2004, Cuba began DST on March 28, not April 4.
    (Thanks to Steffen Thorsen.)

Bug: 13193205
Change-Id: I8f26cc50f6b571804a18ff2113b4a47a22bc56dd
2014-02-25 22:47:29 +00:00
Robert Greenwalt
5fddfb8915 Fix dns searchdomain use in gethostbyname.
Need to load search domain data before we attempt to use it.
This is a cherry pick of an AOSP change c11f6f0f39.

bug:6799630

Change-Id: I4ea1131f06ffdf4037fe67f82af5a0349469b609
2013-12-12 21:34:36 +00:00
2385 changed files with 31127 additions and 106544 deletions

View File

@@ -2,11 +2,6 @@ LOCAL_PATH:= $(call my-dir)
include $(LOCAL_PATH)/arch-$(TARGET_ARCH)/syscalls.mk include $(LOCAL_PATH)/arch-$(TARGET_ARCH)/syscalls.mk
# Make everything depend on any changes to included makefiles.
libc_common_additional_dependencies := \
$(LOCAL_PATH)/arch-$(TARGET_ARCH)/syscalls.mk \
$(LOCAL_PATH)/Android.mk \
# Define the common source files for all the libc instances # Define the common source files for all the libc instances
# ========================================================= # =========================================================
libc_common_src_files := \ libc_common_src_files := \
@@ -50,6 +45,7 @@ libc_common_src_files := \
stdio/wbuf.c \ stdio/wbuf.c \
stdlib/atexit.c \ stdlib/atexit.c \
stdlib/ctype_.c \ stdlib/ctype_.c \
stdlib/exit.c \
stdlib/getenv.c \ stdlib/getenv.c \
stdlib/putenv.c \ stdlib/putenv.c \
stdlib/setenv.c \ stdlib/setenv.c \
@@ -77,13 +73,18 @@ libc_common_src_files := \
bionic/atol.c \ bionic/atol.c \
bionic/atoll.c \ bionic/atoll.c \
bionic/bindresvport.c \ bionic/bindresvport.c \
bionic/bionic_clone.c \
bionic/clearenv.c \ bionic/clearenv.c \
bionic/cpuacct.c \
bionic/daemon.c \ bionic/daemon.c \
bionic/err.c \ bionic/err.c \
bionic/ether_aton.c \ bionic/ether_aton.c \
bionic/ether_ntoa.c \ bionic/ether_ntoa.c \
bionic/fcntl.c \
bionic/fdprintf.c \ bionic/fdprintf.c \
bionic/flockfile.c \ bionic/flockfile.c \
bionic/fork.c \
bionic/fstatfs.c \
bionic/ftime.c \ bionic/ftime.c \
bionic/ftok.c \ bionic/ftok.c \
bionic/fts.c \ bionic/fts.c \
@@ -99,15 +100,21 @@ libc_common_src_files := \
bionic/isatty.c \ bionic/isatty.c \
bionic/issetugid.c \ bionic/issetugid.c \
bionic/ldexp.c \ bionic/ldexp.c \
bionic/lseek64.c \
bionic/md5.c \ bionic/md5.c \
bionic/memmem.c \ bionic/memmem.c \
bionic/memswap.c \ bionic/memswap.c \
bionic/name_mem.c \ bionic/name_mem.c \
bionic/openat.c \
bionic/open.c \
bionic/pathconf.c \ bionic/pathconf.c \
bionic/perror.c \ bionic/perror.c \
bionic/pread.c \
bionic/pselect.c \
bionic/ptsname.c \ bionic/ptsname.c \
bionic/ptsname_r.c \ bionic/ptsname_r.c \
bionic/pututline.c \ bionic/pututline.c \
bionic/pwrite.c \
bionic/reboot.c \ bionic/reboot.c \
bionic/recv.c \ bionic/recv.c \
bionic/sched_cpualloc.c \ bionic/sched_cpualloc.c \
@@ -115,12 +122,21 @@ libc_common_src_files := \
bionic/sched_getcpu.c \ bionic/sched_getcpu.c \
bionic/semaphore.c \ bionic/semaphore.c \
bionic/send.c \ bionic/send.c \
bionic/setegid.c \
bionic/seteuid.c \
bionic/setpgrp.c \ bionic/setpgrp.c \
bionic/setresuid.c \
bionic/setreuid.c \
bionic/setuid.c \
bionic/sigblock.c \ bionic/sigblock.c \
bionic/siginterrupt.c \ bionic/siginterrupt.c \
bionic/siglist.c \ bionic/siglist.c \
bionic/signal.c \
bionic/signame.c \ bionic/signame.c \
bionic/sigsetmask.c \ bionic/sigsetmask.c \
bionic/sigsuspend.c \
bionic/sleep.c \
bionic/statfs.c \
bionic/strndup.c \ bionic/strndup.c \
bionic/strntoimax.c \ bionic/strntoimax.c \
bionic/strntoumax.c \ bionic/strntoumax.c \
@@ -129,61 +145,48 @@ libc_common_src_files := \
bionic/system_properties_compat.c \ bionic/system_properties_compat.c \
bionic/tcgetpgrp.c \ bionic/tcgetpgrp.c \
bionic/tcsetpgrp.c \ bionic/tcsetpgrp.c \
bionic/thread_atexit.c \
bionic/time64.c \ bionic/time64.c \
bionic/umount.c \ bionic/umount.c \
bionic/unlockpt.c \ bionic/unlockpt.c \
bionic/usleep.c \
bionic/utmp.c \ bionic/utmp.c \
bionic/wcscoll.c \ bionic/wcscoll.c \
libc_dns_src_files += \
netbsd/gethnamaddr.c \ netbsd/gethnamaddr.c \
netbsd/inet/nsap_addr.c \ netbsd/inet/nsap_addr.c \
netbsd/nameser/ns_name.c \
netbsd/nameser/ns_netint.c \
netbsd/nameser/ns_parse.c \
netbsd/nameser/ns_print.c \
netbsd/nameser/ns_samedomain.c \
netbsd/nameser/ns_ttl.c \
netbsd/net/base64.c \
netbsd/net/getaddrinfo.c \
netbsd/net/getnameinfo.c \
netbsd/net/getservbyname.c \
netbsd/net/getservbyport.c \
netbsd/net/getservent.c \
netbsd/net/nsdispatch.c \
netbsd/resolv/__dn_comp.c \ netbsd/resolv/__dn_comp.c \
netbsd/resolv/herror.c \
netbsd/resolv/res_cache.c \
netbsd/resolv/__res_close.c \ netbsd/resolv/__res_close.c \
netbsd/resolv/__res_send.c \
netbsd/resolv/herror.c \
netbsd/resolv/res_comp.c \ netbsd/resolv/res_comp.c \
netbsd/resolv/res_data.c \ netbsd/resolv/res_data.c \
netbsd/resolv/res_debug.c \ netbsd/resolv/res_debug.c \
netbsd/resolv/res_init.c \ netbsd/resolv/res_init.c \
netbsd/resolv/res_mkquery.c \ netbsd/resolv/res_mkquery.c \
netbsd/resolv/res_query.c \ netbsd/resolv/res_query.c \
netbsd/resolv/__res_send.c \
netbsd/resolv/res_send.c \ netbsd/resolv/res_send.c \
netbsd/resolv/res_state.c \ netbsd/resolv/res_state.c \
netbsd/resolv/res_cache.c \
netbsd/net/nsdispatch.c \
# These are used by the 32-bit targets, but not the 64-bit ones. netbsd/net/getaddrinfo.c \
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm mips x86)) netbsd/net/getnameinfo.c \
libc_common_src_files += \ netbsd/net/getservbyname.c \
bionic/legacy_32_bit_support.cpp \ netbsd/net/getservent.c \
bionic/ndk_cruft.cpp \ netbsd/net/base64.c \
netbsd/net/getservbyport.c \
endif netbsd/nameser/ns_name.c \
netbsd/nameser/ns_parse.c \
netbsd/nameser/ns_ttl.c \
netbsd/nameser/ns_netint.c \
netbsd/nameser/ns_print.c \
netbsd/nameser/ns_samedomain.c \
# Fortify implementations of libc functions. # Fortify implementations of libc functions.
libc_common_src_files += \ libc_common_src_files += \
bionic/__FD_chk.cpp \
bionic/__fgets_chk.cpp \ bionic/__fgets_chk.cpp \
bionic/__memcpy_chk.cpp \ bionic/__memcpy_chk.cpp \
bionic/__memmove_chk.cpp \ bionic/__memmove_chk.cpp \
bionic/__memset_chk.cpp \ bionic/__memset_chk.cpp \
bionic/__read_chk.cpp \
bionic/__recvfrom_chk.cpp \
bionic/__strcat_chk.cpp \ bionic/__strcat_chk.cpp \
bionic/__strchr_chk.cpp \ bionic/__strchr_chk.cpp \
bionic/__strcpy_chk.cpp \ bionic/__strcpy_chk.cpp \
@@ -199,108 +202,50 @@ libc_common_src_files += \
libc_bionic_src_files := \ libc_bionic_src_files := \
bionic/abort.cpp \ bionic/abort.cpp \
bionic/access.cpp \
bionic/assert.cpp \ bionic/assert.cpp \
bionic/bionic_time_conversions.cpp \
bionic/brk.cpp \ bionic/brk.cpp \
bionic/chmod.cpp \
bionic/chown.cpp \
bionic/clone.cpp \
bionic/dirent.cpp \ bionic/dirent.cpp \
bionic/dup2.cpp \ bionic/__errno.c \
bionic/epoll_create.cpp \
bionic/epoll_wait.cpp \
bionic/epoll_pwait.cpp \
bionic/__errno.cpp \
bionic/eventfd_read.cpp \ bionic/eventfd_read.cpp \
bionic/eventfd_write.cpp \ bionic/eventfd_write.cpp \
bionic/ffs.cpp \
bionic/fork.cpp \
bionic/futimens.cpp \ bionic/futimens.cpp \
bionic/getauxval.cpp \ bionic/getauxval.cpp \
bionic/getcwd.cpp \ bionic/getcwd.cpp \
bionic/inotify_init.cpp \
bionic/lchown.cpp \
bionic/libc_init_common.cpp \ bionic/libc_init_common.cpp \
bionic/libc_logging.cpp \ bionic/libc_logging.cpp \
bionic/libgen.cpp \ bionic/libgen.cpp \
bionic/link.cpp \ bionic/mmap.cpp \
bionic/lstat.cpp \
bionic/mkdir.cpp \
bionic/mkfifo.cpp \
bionic/mknod.cpp \
bionic/open.cpp \
bionic/pause.cpp \
bionic/pipe.cpp \
bionic/poll.cpp \
bionic/pthread_atfork.cpp \
bionic/pthread_attr.cpp \ bionic/pthread_attr.cpp \
bionic/pthread_cond.cpp \
bionic/pthread_create.cpp \
bionic/pthread_detach.cpp \ bionic/pthread_detach.cpp \
bionic/pthread_equal.cpp \ bionic/pthread_equal.cpp \
bionic/pthread_exit.cpp \
bionic/pthread_getcpuclockid.cpp \ bionic/pthread_getcpuclockid.cpp \
bionic/pthread_getschedparam.cpp \ bionic/pthread_getschedparam.cpp \
bionic/pthread_internals.cpp \ bionic/pthread_internals.cpp \
bionic/pthread_join.cpp \ bionic/pthread_join.cpp \
bionic/pthread_key.cpp \
bionic/pthread_kill.cpp \ bionic/pthread_kill.cpp \
bionic/pthread_mutex.cpp \
bionic/pthread_once.cpp \
bionic/pthread_rwlock.cpp \
bionic/pthread_self.cpp \ bionic/pthread_self.cpp \
bionic/pthread_setname_np.cpp \ bionic/pthread_setname_np.cpp \
bionic/pthread_setschedparam.cpp \ bionic/pthread_setschedparam.cpp \
bionic/pthread_sigmask.cpp \ bionic/pthread_sigmask.cpp \
bionic/ptrace.cpp \
bionic/raise.cpp \ bionic/raise.cpp \
bionic/readlink.cpp \
bionic/rename.cpp \
bionic/rmdir.cpp \
bionic/sbrk.cpp \ bionic/sbrk.cpp \
bionic/scandir.cpp \ bionic/scandir.cpp \
bionic/sched_getaffinity.cpp \ bionic/sched_getaffinity.cpp \
bionic/setegid.cpp \
bionic/__set_errno.cpp \ bionic/__set_errno.cpp \
bionic/seteuid.cpp \
bionic/setlocale.cpp \ bionic/setlocale.cpp \
bionic/signalfd.cpp \ bionic/signalfd.cpp \
bionic/sigaction.cpp \
bionic/sigaddset.cpp \
bionic/sigdelset.cpp \
bionic/sigemptyset.cpp \
bionic/sigfillset.cpp \
bionic/sigismember.cpp \
bionic/signal.cpp \
bionic/sigpending.cpp \
bionic/sigprocmask.cpp \
bionic/sigsuspend.cpp \
bionic/sigwait.cpp \ bionic/sigwait.cpp \
bionic/stat.cpp \
bionic/statvfs.cpp \ bionic/statvfs.cpp \
bionic/strerror.cpp \ bionic/strerror.cpp \
bionic/strerror_r.cpp \ bionic/strerror_r.cpp \
bionic/strsignal.cpp \ bionic/strsignal.cpp \
bionic/stubs.cpp \ bionic/stubs.cpp \
bionic/symlink.cpp \
bionic/sysconf.cpp \ bionic/sysconf.cpp \
bionic/thread_atexit.cpp \
bionic/tdestroy.cpp \ bionic/tdestroy.cpp \
bionic/timer.cpp \
bionic/tmpfile.cpp \ bionic/tmpfile.cpp \
bionic/unlink.cpp \
bionic/utimes.cpp \
bionic/wait.cpp \ bionic/wait.cpp \
bionic/wchar.cpp \ bionic/wchar.cpp \
# These are shared by all the 32-bit targets, but not the 64-bit ones.
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm mips x86))
libc_bionic_src_files += \
bionic/mmap.cpp \
endif
libc_tzcode_src_files := \ libc_tzcode_src_files := \
tzcode/asctime.c \ tzcode/asctime.c \
tzcode/difftime.c \ tzcode/difftime.c \
@@ -309,8 +254,6 @@ libc_tzcode_src_files := \
tzcode/strptime.c \ tzcode/strptime.c \
libc_upstream_freebsd_src_files := \ libc_upstream_freebsd_src_files := \
upstream-freebsd/lib/libc/gen/sleep.c \
upstream-freebsd/lib/libc/gen/usleep.c \
upstream-freebsd/lib/libc/stdio/clrerr.c \ upstream-freebsd/lib/libc/stdio/clrerr.c \
upstream-freebsd/lib/libc/stdio/fclose.c \ upstream-freebsd/lib/libc/stdio/fclose.c \
upstream-freebsd/lib/libc/stdio/fdopen.c \ upstream-freebsd/lib/libc/stdio/fdopen.c \
@@ -399,7 +342,6 @@ libc_upstream_netbsd_src_files := \
upstream-netbsd/libc/stdlib/div.c \ upstream-netbsd/libc/stdlib/div.c \
upstream-netbsd/libc/stdlib/drand48.c \ upstream-netbsd/libc/stdlib/drand48.c \
upstream-netbsd/libc/stdlib/erand48.c \ upstream-netbsd/libc/stdlib/erand48.c \
upstream-netbsd/libc/stdlib/exit.c \
upstream-netbsd/libc/stdlib/jrand48.c \ upstream-netbsd/libc/stdlib/jrand48.c \
upstream-netbsd/libc/stdlib/ldiv.c \ upstream-netbsd/libc/stdlib/ldiv.c \
upstream-netbsd/libc/stdlib/lldiv.c \ upstream-netbsd/libc/stdlib/lldiv.c \
@@ -416,100 +358,104 @@ libc_upstream_netbsd_src_files := \
upstream-netbsd/libc/string/strcasestr.c \ upstream-netbsd/libc/string/strcasestr.c \
upstream-netbsd/libc/string/strcoll.c \ upstream-netbsd/libc/string/strcoll.c \
upstream-netbsd/libc/string/strxfrm.c \ upstream-netbsd/libc/string/strxfrm.c \
upstream-netbsd/libc/thread-stub/__isthreaded.c \
upstream-netbsd/libc/unistd/killpg.c \ upstream-netbsd/libc/unistd/killpg.c \
# Architecture specific source files go here # Architecture specific source files go here
# ========================================================= # =========================================================
ifeq ($(TARGET_ARCH),arm) ifeq ($(TARGET_ARCH),arm)
libc_common_src_files += \ libc_common_src_files += \
bionic/memchr.c \
bionic/memmove.c.arm \ bionic/memmove.c.arm \
bionic/memrchr.c \
bionic/strchr.cpp \
bionic/strnlen.c \
string/bcopy.c \ string/bcopy.c \
string/strncmp.c \
string/strncat.c \
string/strncpy.c \
bionic/strchr.cpp \
string/strrchr.c \
bionic/memchr.c \
bionic/memrchr.c \
string/index.c \ string/index.c \
bionic/strnlen.c \
string/strlcat.c \ string/strlcat.c \
string/strlcpy.c \ string/strlcpy.c \
string/strncat.c \
string/strncmp.c \
string/strncpy.c \
string/strrchr.c \
upstream-freebsd/lib/libc/string/wcscat.c \
upstream-freebsd/lib/libc/string/wcschr.c \ upstream-freebsd/lib/libc/string/wcschr.c \
upstream-freebsd/lib/libc/string/wcsrchr.c \
upstream-freebsd/lib/libc/string/wcscmp.c \ upstream-freebsd/lib/libc/string/wcscmp.c \
upstream-freebsd/lib/libc/string/wcscpy.c \ upstream-freebsd/lib/libc/string/wcscpy.c \
upstream-freebsd/lib/libc/string/wcslen.c \
upstream-freebsd/lib/libc/string/wcsrchr.c \
upstream-freebsd/lib/libc/string/wmemcmp.c \ upstream-freebsd/lib/libc/string/wmemcmp.c \
upstream-freebsd/lib/libc/string/wcslen.c \
upstream-freebsd/lib/libc/string/wcscat.c
# These files need to be arm so that gdbserver
# can set breakpoints in them without messing
# up any thumb code.
libc_common_src_files += \
bionic/pthread-atfork.c.arm \
bionic/pthread-rwlocks.c.arm \
bionic/pthread-timers.c.arm \
bionic/ptrace.c.arm
libc_static_common_src_files += \
bionic/pthread.c.arm \
bionic/pthread_create.cpp.arm \
bionic/pthread_key.cpp.arm \
endif # arm endif # arm
ifeq ($(TARGET_ARCH),x86)
libc_common_src_files += \
bionic/pthread-atfork.c \
bionic/pthread-rwlocks.c \
bionic/pthread-timers.c \
bionic/ptrace.c \
libc_static_common_src_files += \
bionic/pthread.c \
bionic/pthread_create.cpp \
bionic/pthread_key.cpp \
endif # x86
ifeq ($(TARGET_ARCH),mips) ifeq ($(TARGET_ARCH),mips)
libc_common_src_files += \ libc_common_src_files += \
bionic/memchr.c \
bionic/memcmp.c \ bionic/memcmp.c \
bionic/memrchr.c \
bionic/strchr.cpp \
bionic/strnlen.c \
string/bcopy.c \ string/bcopy.c \
string/index.c \
string/strcat.c \
string/strcmp.c \ string/strcmp.c \
string/strcpy.c \ string/strcpy.c \
string/strncmp.c \
string/strcat.c \
string/strncat.c \
string/strncpy.c \
bionic/strchr.cpp \
string/strrchr.c \
bionic/memchr.c \
bionic/memrchr.c \
string/index.c \
bionic/strnlen.c \
string/strlcat.c \ string/strlcat.c \
string/strlcpy.c \ string/strlcpy.c \
string/strncat.c \
string/strncmp.c \
string/strncpy.c \
string/strrchr.c \
upstream-freebsd/lib/libc/string/wcscat.c \
upstream-freebsd/lib/libc/string/wcschr.c \ upstream-freebsd/lib/libc/string/wcschr.c \
upstream-freebsd/lib/libc/string/wcsrchr.c \
upstream-freebsd/lib/libc/string/wcscmp.c \ upstream-freebsd/lib/libc/string/wcscmp.c \
upstream-freebsd/lib/libc/string/wcscpy.c \ upstream-freebsd/lib/libc/string/wcscpy.c \
upstream-freebsd/lib/libc/string/wcslen.c \
upstream-freebsd/lib/libc/string/wcsrchr.c \
upstream-freebsd/lib/libc/string/wmemcmp.c \ upstream-freebsd/lib/libc/string/wmemcmp.c \
upstream-freebsd/lib/libc/string/wcslen.c \
upstream-freebsd/lib/libc/string/wcscat.c
libc_common_src_files += \
bionic/pthread-atfork.c \
bionic/pthread-rwlocks.c \
bionic/pthread-timers.c \
bionic/ptrace.c
libc_static_common_src_files += \
bionic/pthread.c \
bionic/pthread_create.cpp \
bionic/pthread_key.cpp \
endif # mips endif # mips
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86_64))
libc_common_src_files += \
bionic/memchr.c \
bionic/memcmp.c \
bionic/memcpy.c \
bionic/memmove.c \
bionic/memrchr.c \
bionic/memset.c \
bionic/strchr.cpp \
bionic/strnlen.c \
string/bcopy.c \
string/index.c \
string/strcat.c \
string/strcmp.c \
string/strcpy.c \
string/strlcat.c \
string/strlcpy.c \
string/strlen.c \
string/strncat.c \
string/strncmp.c \
string/strncpy.c \
string/strrchr.c \
upstream-freebsd/lib/libc/string/wcscat.c \
upstream-freebsd/lib/libc/string/wcschr.c \
upstream-freebsd/lib/libc/string/wcscmp.c \
upstream-freebsd/lib/libc/string/wcscpy.c \
upstream-freebsd/lib/libc/string/wcslen.c \
upstream-freebsd/lib/libc/string/wcsrchr.c \
upstream-freebsd/lib/libc/string/wmemcmp.c \
endif # x86_64
ifeq ($(TARGET_ARCH),arm)
ifeq ($(strip $(TARGET_CPU_VARIANT)),) ifeq ($(strip $(TARGET_CPU_VARIANT)),)
$(warning TARGET_ARCH is arm, but TARGET_CPU_VARIANT is not defined) $(warning TARGET_CPU_VARIANT is not defined)
endif
endif endif
########################################################### ###########################################################
@@ -535,30 +481,25 @@ _LIBC_ARCH_COMMON_SRC_FILES :=
_LIBC_ARCH_CPU_VARIANT_SRC_FILES := _LIBC_ARCH_CPU_VARIANT_SRC_FILES :=
_LIBC_ARCH_STATIC_SRC_FILES := _LIBC_ARCH_STATIC_SRC_FILES :=
_LIBC_ARCH_DYNAMIC_SRC_FILES := _LIBC_ARCH_DYNAMIC_SRC_FILES :=
_LIBC_ARCH_ADDITIONAL_DEPENDENCIES := include bionic/libc/arch-$(TARGET_ARCH)/$(TARGET_ARCH).mk
libc_common_additional_dependencies += \ libc_common_src_files += $(_LIBC_ARCH_COMMON_SRC_FILES)
$(LOCAL_PATH)/arch-$(TARGET_ARCH)/$(TARGET_ARCH).mk libc_common_src_files += $(_LIBC_ARCH_CPU_VARIANT_SRC_FILES)
include $(LOCAL_PATH)/arch-$(TARGET_ARCH)/$(TARGET_ARCH).mk
libc_bionic_src_files += $(_LIBC_ARCH_COMMON_SRC_FILES)
libc_bionic_src_files += $(_LIBC_ARCH_CPU_VARIANT_SRC_FILES)
libc_arch_static_src_files := $(_LIBC_ARCH_STATIC_SRC_FILES) libc_arch_static_src_files := $(_LIBC_ARCH_STATIC_SRC_FILES)
libc_arch_dynamic_src_files := $(_LIBC_ARCH_DYNAMIC_SRC_FILES) libc_arch_dynamic_src_files := $(_LIBC_ARCH_DYNAMIC_SRC_FILES)
libc_common_additional_dependencies += $(_LIBC_ARCH_ADDITIONAL_DEPENDENCIES)
# Define some common cflags # Define some common cflags
# ======================================================== # ========================================================
libc_common_cflags := \ libc_common_cflags := \
-DWITH_ERRLIST \
-DANDROID_CHANGES \ -DANDROID_CHANGES \
-D_LIBC=1 \ -D_LIBC=1 \
-Wall -Wextra \ -DFLOATING_POINT \
-DINET6 \
# Try to catch typical 32-bit assumptions that break with 64-bit pointers. -I$(LOCAL_PATH)/private \
libc_common_cflags += \ -DPOSIX_MISTAKE \
-Werror=pointer-to-int-cast \ -DLOG_ON_HEAP_ERROR \
-Werror=int-to-pointer-cast \ -Wall -Wextra
-Werror=type-limits \
ifeq ($(strip $(DEBUG_BIONIC_LIBC)),true) ifeq ($(strip $(DEBUG_BIONIC_LIBC)),true)
libc_common_cflags += -DDEBUG libc_common_cflags += -DDEBUG
@@ -575,7 +516,18 @@ ifeq ($(TARGET_ARCH),arm)
libc_common_cflags += -DSOFTFLOAT libc_common_cflags += -DSOFTFLOAT
libc_common_cflags += -fstrict-aliasing libc_common_cflags += -fstrict-aliasing
libc_crt_target_cflags := -mthumb-interwork libc_crt_target_cflags := -mthumb-interwork
endif # arm endif # !arm
ifeq ($(TARGET_ARCH),x86)
libc_common_cflags += -DSOFTFLOAT
libc_crt_target_cflags :=
ifeq ($(ARCH_X86_HAVE_SSE2),true)
libc_crt_target_cflags += -DUSE_SSE2=1
endif
ifeq ($(ARCH_X86_HAVE_SSSE3),true)
libc_crt_target_cflags += -DUSE_SSSE3=1
endif
endif # x86
ifeq ($(TARGET_ARCH),mips) ifeq ($(TARGET_ARCH),mips)
ifneq ($(ARCH_MIPS_HAS_FPU),true) ifneq ($(ARCH_MIPS_HAS_FPU),true)
@@ -585,16 +537,6 @@ ifeq ($(TARGET_ARCH),mips)
libc_crt_target_cflags := $(TARGET_GLOBAL_CFLAGS) libc_crt_target_cflags := $(TARGET_GLOBAL_CFLAGS)
endif # mips endif # mips
ifeq ($(TARGET_ARCH),x86)
libc_crt_target_cflags := -m32
libc_crt_target_ldflags := -melf_i386
endif # x86
ifeq ($(TARGET_ARCH),x86_64)
libc_crt_target_cflags := -m64
libc_crt_target_ldflags := -melf_x86_64
endif # x86_64
# Define ANDROID_SMP appropriately. # Define ANDROID_SMP appropriately.
ifeq ($(TARGET_CPU_SMP),true) ifeq ($(TARGET_CPU_SMP),true)
libc_common_cflags += -DANDROID_SMP=1 libc_common_cflags += -DANDROID_SMP=1
@@ -605,16 +547,7 @@ endif
# crtbrand.c needs <stdint.h> and a #define for the platform SDK version. # crtbrand.c needs <stdint.h> and a #define for the platform SDK version.
libc_crt_target_cflags += \ libc_crt_target_cflags += \
-I$(LOCAL_PATH)/include \ -I$(LOCAL_PATH)/include \
-I$(LOCAL_PATH)/arch-$(TARGET_ARCH)/include \ -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
-DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) \
# Define some common conlyflags
libc_common_conlyflags := \
-std=gnu99
# Define some common cppflags
libc_common_cppflags := \
-std=gnu++11
# Define some common includes # Define some common includes
# ======================================================== # ========================================================
@@ -624,6 +557,12 @@ libc_common_c_includes := \
$(LOCAL_PATH)/stdio \ $(LOCAL_PATH)/stdio \
external/safe-iop/include external/safe-iop/include
# Needed to access private/__dso_handle.h from
# crtbegin_xxx.S and crtend_xxx.S
libc_crt_target_cflags += \
-I$(LOCAL_PATH)/private \
-I$(LOCAL_PATH)/arch-$(TARGET_ARCH)/include
# Define the libc run-time (crt) support object files that must be built, # Define the libc run-time (crt) support object files that must be built,
# which are needed to build all other objects (shared/static libs and # which are needed to build all other objects (shared/static libs and
# executables) # executables)
@@ -638,20 +577,18 @@ libc_common_c_includes := \
# that will call __cxa_finalize(&__dso_handle) in order to ensure that # that will call __cxa_finalize(&__dso_handle) in order to ensure that
# static C++ destructors are properly called on dlclose(). # static C++ destructors are properly called on dlclose().
# #
libc_crt_target_crtbegin_file := $(LOCAL_PATH)/arch-common/bionic/crtbegin.c
libc_crt_target_crtbegin_so_file := $(LOCAL_PATH)/arch-common/bionic/crtbegin_so.c
ifeq ($(TARGET_ARCH),arm) ifeq ($(TARGET_ARCH),arm)
libc_crt_target_so_cflags := libc_crt_target_so_cflags :=
endif endif
ifeq ($(TARGET_ARCH),mips) ifeq ($(TARGET_ARCH),mips)
libc_crt_target_so_cflags := -fPIC libc_crt_target_so_cflags := -fPIC
libc_crt_target_crtbegin_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin.c
endif endif
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64)) ifeq ($(TARGET_ARCH),x86)
libc_crt_target_so_cflags := -fPIC libc_crt_target_so_cflags := -fPIC
endif endif
libc_crt_target_so_cflags += $(libc_crt_target_cflags) libc_crt_target_so_cflags += $(libc_crt_target_cflags)
libc_crt_target_crtbegin_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin.c
libc_crt_target_crtbegin_so_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.c
# See the comment in crtbrand.c for the reason why we need to generate # See the comment in crtbrand.c for the reason why we need to generate
# crtbrand.s before generating crtbrand.o. # crtbrand.s before generating crtbrand.o.
@@ -681,7 +618,7 @@ $(GEN): $(libc_crt_target_crtbegin_so_file)
ALL_GENERATED_SOURCES += $(GEN) ALL_GENERATED_SOURCES += $(GEN)
GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
$(GEN): $(LOCAL_PATH)/arch-common/bionic/crtend_so.S $(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) \ $(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) \
-MD -MF $(@:%.o=%.d) -o $@ -c $< -MD -MF $(@:%.o=%.d) -o $@ -c $<
@@ -713,7 +650,7 @@ ALL_GENERATED_SOURCES += $(GEN)
GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static.o GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static.o
$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o $(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
$(hide) $(TARGET_LD) $(libc_crt_target_ldflags) -r -o $@ $^ $(hide) $(TARGET_LD) -r -o $@ $^
ALL_GENERATED_SOURCES += $(GEN) ALL_GENERATED_SOURCES += $(GEN)
GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o
@@ -728,13 +665,13 @@ ALL_GENERATED_SOURCES += $(GEN)
GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic.o GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic.o
$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o $(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
$(hide) $(TARGET_LD) $(libc_crt_target_ldflags) -r -o $@ $^ $(hide) $(TARGET_LD) -r -o $@ $^
ALL_GENERATED_SOURCES += $(GEN) ALL_GENERATED_SOURCES += $(GEN)
# We rename crtend.o to crtend_android.o to avoid a # We rename crtend.o to crtend_android.o to avoid a
# name clash between gcc and bionic. # name clash between gcc and bionic.
GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_android.o GEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_android.o
$(GEN): $(LOCAL_PATH)/arch-common/bionic/crtend.S $(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend.S
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \ $(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
-MD -MF $(@:%.o=%.d) -o $@ -c $< -MD -MF $(@:%.o=%.d) -o $@ -c $<
@@ -759,11 +696,9 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := bionic/__stack_chk_fail.cpp LOCAL_SRC_FILES := bionic/__stack_chk_fail.cpp
LOCAL_CFLAGS := $(libc_common_cflags) -fno-stack-protector -Werror LOCAL_CFLAGS := $(libc_common_cflags) -fno-stack-protector -Werror
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libbionic_ssp LOCAL_MODULE := libbionic_ssp
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_SYSTEM_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)
@@ -778,38 +713,14 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_tzcode_src_files) LOCAL_SRC_FILES := $(libc_tzcode_src_files)
LOCAL_CFLAGS := \ LOCAL_CFLAGS := \
$(libc_common_cflags) \ $(libc_common_cflags) \
-std=gnu99 \
-DSTD_INSPIRED=1 \ -DSTD_INSPIRED=1 \
-DTZDIR=\"/system/usr/share/zoneinfo\" \ -DTZDIR=\"/system/usr/share/zoneinfo\" \
-DTM_GMTOFF=tm_gmtoff \ -DTM_GMTOFF=tm_gmtoff \
-DUSG_COMPAT=1 -DUSG_COMPAT=1
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_tzcode LOCAL_MODULE := libc_tzcode
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SYSTEM_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY)
# ========================================================
# libc_dns.a - modified NetBSD DNS code
# ========================================================
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_dns_src_files)
LOCAL_CFLAGS := \
$(libc_common_cflags) \
-DINET6 \
-I$(LOCAL_PATH)/private \
-I$(LOCAL_PATH)/upstream-netbsd/libc/include # for NetBSD private headers
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_dns
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies)
LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_SYSTEM_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)
@@ -830,11 +741,9 @@ LOCAL_CFLAGS := \
-I$(LOCAL_PATH)/upstream-freebsd \ -I$(LOCAL_PATH)/upstream-freebsd \
-I$(LOCAL_PATH)/upstream-freebsd/libc/include \ -I$(LOCAL_PATH)/upstream-freebsd/libc/include \
-include upstream-freebsd/freebsd-compat.h -include upstream-freebsd/freebsd-compat.h
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_freebsd LOCAL_MODULE := libc_freebsd
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_SYSTEM_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)
@@ -852,15 +761,12 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_upstream_netbsd_src_files) LOCAL_SRC_FILES := $(libc_upstream_netbsd_src_files)
LOCAL_CFLAGS := \ LOCAL_CFLAGS := \
$(libc_common_cflags) \ $(libc_common_cflags) \
-DPOSIX_MISTAKE \
-I$(LOCAL_PATH)/upstream-netbsd \ -I$(LOCAL_PATH)/upstream-netbsd \
-I$(LOCAL_PATH)/upstream-netbsd/libc/include \ -I$(LOCAL_PATH)/upstream-netbsd/libc/include \
-include upstream-netbsd/netbsd-compat.h -include upstream-netbsd/netbsd-compat.h
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_netbsd LOCAL_MODULE := libc_netbsd
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_SYSTEM_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)
@@ -874,17 +780,11 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_bionic_src_files) LOCAL_SRC_FILES := $(libc_bionic_src_files)
LOCAL_CFLAGS := $(libc_common_cflags) -Werror LOCAL_CFLAGS := $(libc_common_cflags) -Werror
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_bionic LOCAL_MODULE := libc_bionic
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_SYSTEM_SHARED_LIBRARIES :=
# Set -DPTHREAD_DEBUG_ENABLED=true to enable support for pthread deadlock prediction.
# Since this code is experimental it is disabled by default.
LOCAL_CFLAGS += $(libc_common_cflags) -DPTHREAD_DEBUG_ENABLED=false
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)
@@ -895,20 +795,18 @@ include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_common_src_files) LOCAL_SRC_FILES := $(libc_common_src_files)
LOCAL_CFLAGS := $(libc_common_cflags) LOCAL_CFLAGS := $(libc_common_cflags) \
LOCAL_CONLYFLAGS := $(libc_common_conlyflags) -std=gnu99 \
LOCAL_CPPFLAGS := $(libc_common_cppflags) -I$(LOCAL_PATH)/upstream-netbsd/libc/include # for netbsd private headers
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_common LOCAL_MODULE := libc_common
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_WHOLE_STATIC_LIBRARIES := \ LOCAL_WHOLE_STATIC_LIBRARIES := \
libbionic_ssp \ libbionic_ssp \
libc_bionic \ libc_bionic \
libc_dns \
libc_freebsd \ libc_freebsd \
libc_netbsd \ libc_netbsd \
libc_tzcode \ libc_tzcode
LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_SYSTEM_SHARED_LIBRARIES :=
# TODO: split out the asflags. # TODO: split out the asflags.
@@ -936,12 +834,11 @@ LOCAL_SRC_FILES := \
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_CFLAGS := $(libc_common_cflags) \ LOCAL_CFLAGS := $(libc_common_cflags) \
-DLIBC_STATIC -DLIBC_STATIC \
LOCAL_CONLYFLAGS := $(libc_common_conlyflags) -std=gnu99
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_MODULE := libc_nomalloc LOCAL_MODULE := libc_nomalloc
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_WHOLE_STATIC_LIBRARIES := libc_common LOCAL_WHOLE_STATIC_LIBRARIES := libc_common
LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_SYSTEM_SHARED_LIBRARIES :=
@@ -961,12 +858,11 @@ LOCAL_SRC_FILES := \
bionic/libc_init_static.cpp bionic/libc_init_static.cpp
LOCAL_CFLAGS := $(libc_common_cflags) \ LOCAL_CFLAGS := $(libc_common_cflags) \
-DLIBC_STATIC -DLIBC_STATIC \
LOCAL_CONLYFLAGS := $(libc_common_conlyflags) -std=gnu99
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc LOCAL_MODULE := libc
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_WHOLE_STATIC_LIBRARIES := libc_common LOCAL_WHOLE_STATIC_LIBRARIES := libc_common
LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_SYSTEM_SHARED_LIBRARIES :=
@@ -978,9 +874,13 @@ include $(BUILD_STATIC_LIBRARY)
# ======================================================== # ========================================================
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_CFLAGS := $(libc_common_cflags) # pthread deadlock prediction:
LOCAL_CONLYFLAGS := $(libc_common_conlyflags) # set -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=1 to enable support for
LOCAL_CPPFLAGS := $(libc_common_cppflags) # pthread deadlock prediction.
# Since this code is experimental it is disabled by default.
# see libc/bionic/pthread_debug.c for details
LOCAL_CFLAGS := $(libc_common_cflags) -std=gnu99 -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=0
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
@@ -996,14 +896,14 @@ ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -DCRT_LEGACY_WORKAROUND LOCAL_CFLAGS += -DCRT_LEGACY_WORKAROUND
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
arch-common/bionic/crtbegin_so.c \ arch-arm/bionic/crtbegin_so.c \
arch-arm/bionic/atexit_legacy.c \ arch-arm/bionic/atexit_legacy.c \
$(LOCAL_SRC_FILES) \ $(LOCAL_SRC_FILES) \
arch-common/bionic/crtend_so.S arch-arm/bionic/crtend_so.S
endif endif
LOCAL_MODULE:= libc LOCAL_MODULE:= libc
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_REQUIRED_MODULES := tzdata LOCAL_REQUIRED_MODULES := tzdata
# WARNING: The only library libc.so should depend on is libdl.so! If you add other libraries, # WARNING: The only library libc.so should depend on is libdl.so! If you add other libraries,
@@ -1037,8 +937,6 @@ include $(CLEAR_VARS)
LOCAL_CFLAGS := \ LOCAL_CFLAGS := \
$(libc_common_cflags) \ $(libc_common_cflags) \
-DMALLOC_LEAK_CHECK -DMALLOC_LEAK_CHECK
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
@@ -1049,7 +947,7 @@ LOCAL_SRC_FILES := \
bionic/malloc_debug_check.cpp \ bionic/malloc_debug_check.cpp \
LOCAL_MODULE:= libc_malloc_debug_leak LOCAL_MODULE:= libc_malloc_debug_leak
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SHARED_LIBRARIES := libc libdl LOCAL_SHARED_LIBRARIES := libc libdl
LOCAL_WHOLE_STATIC_LIBRARIES := libc_common LOCAL_WHOLE_STATIC_LIBRARIES := libc_common
@@ -1070,8 +968,6 @@ include $(CLEAR_VARS)
LOCAL_CFLAGS := \ LOCAL_CFLAGS := \
$(libc_common_cflags) \ $(libc_common_cflags) \
-DMALLOC_QEMU_INSTRUMENT -DMALLOC_QEMU_INSTRUMENT
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_C_INCLUDES := $(libc_common_c_includes)
@@ -1079,7 +975,7 @@ LOCAL_SRC_FILES := \
bionic/malloc_debug_qemu.cpp bionic/malloc_debug_qemu.cpp
LOCAL_MODULE:= libc_malloc_debug_qemu LOCAL_MODULE:= libc_malloc_debug_qemu
LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SHARED_LIBRARIES := libc libdl LOCAL_SHARED_LIBRARIES := libc libdl
LOCAL_WHOLE_STATIC_LIBRARIES := libc_common LOCAL_WHOLE_STATIC_LIBRARIES := libc_common

26
libc/CAVEATS Normal file
View File

@@ -0,0 +1,26 @@
Bionic is a very small C library because we have decided to *not* implement various features
of the POSIX standard. we only add functions on a as-needed basis, and there are a few things
we wish we'll never put in there.
this file is here to document explicitely what we don't want to support in Bionic:
- C++ exceptions are not supported. on embedded systems, they lead to extremely larger and
slower code for no good reason (even when so-called zero-cost exception schemes are
implemented, they enforce very large numbers of registers spills to the stack, even
in functions that do not throw an exception themselves).
- pthread cancellation is *not* supported. this seemingly simple "feature" is the source
of much bloat and complexity in a C library. Besides, you'd better write correct
multi-threaded code instead of relying on this stuff.
- pthread_once() doesn't support C++ exceptions thrown from the init function, or the init
function doing a fork().
- locales and wide characters are not supported. we use ICU for all this i18n stuff, which
is much better than the ill-designed related C libraries functions.
- at the moment, several user-account-related functions like getpwd are stubbed and return
the values corresponding to root. this will be fixed when we'll be able to have distinct
users on the Android filesystem. :-(
see bionic/stubs.c for the details

View File

@@ -1,305 +1,326 @@
# This file is used to automatically generate bionic's system call stubs. # This file is used to automatically generate bionic's the system calls stubs.
# #
# Each non-blank, non-comment line has the following format: # Each non comment line has the following format:
# #
# return_type func_name[|alias_list][:syscall_name[:socketcall_id]]([parameter_list]) arch_list # return_type func_name[:syscall_name[:call_id]]([parameter_list]) (1|-1|"stub")
# #
# where: # Note that:
# arch_list ::= "all" | arch+
# arch ::= "aarch64" | "arm" | "mips" | "x86" | "x86_64"
#
# Note:
# - syscall_name corresponds to the name of the syscall, which may differ from # - syscall_name corresponds to the name of the syscall, which may differ from
# the exported function name (example: the exit syscall is implemented by the _exit() # the exported function name (example: the exit syscall is implemented by the _exit()
# function, which is not the same as the standard C exit() function which calls it) # function, which is not the same as the standard C exit() function which calls it)
# # The call_id parameter, given that func_name and syscall_name have
# - alias_list is optional comma separated list of function aliases.
#
# - The call_id parameter, given that func_name and syscall_name have
# been provided, allows the user to specify dispatch style syscalls. # been provided, allows the user to specify dispatch style syscalls.
# For example, socket() syscall on i386 actually becomes: # For example, socket() syscall on i386 actually becomes:
# socketcall(__NR_socket, 1, *(rest of args on stack)). # socketcall(__NR_socket, 1, *(rest of args on stack)).
# #
# - Each parameter type is assumed to be stored in 32 bits. # - each parameter type is assumed to be stored on 32 bits, there is no plan to support
# 64-bit architectures at the moment
#
# - the final field can be "1", meaning: generate a stub for each architecture,
# taking the constants from the kernel header files.
#
# - the final field can be "stub" meaning: do not generate any stubs ---
# in this case, a hand-written custom stub must be provided.
# TODO: replace this with something like "custom" or "none", or remove
# it entirely.
#
# - the final field can be a three-element list of 1s and -1 meaning:
# this system call is only available on some of the architectures (1),
# and no stub should be generated for those architectures marked with -1.
# the order is arm,x86,mips.
# TODO: replace this with something more readable like "-arm,-mips" (meaning x86 only).
# #
# This file is processed by a python script named gensyscalls.py. # This file is processed by a python script named gensyscalls.py.
#
int execve(const char*, char* const*, char* const*) all # process management
void _exit:exit_group (int) 1
void _exit_thread:exit (int) 1
pid_t __fork:fork (void) 1
pid_t _waitpid:waitpid (pid_t, int*, int, struct rusage*) -1,1,1
int __waitid:waitid(int, pid_t, struct siginfo_t*, int,void*) 1
pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage) 1
uid_t getuid:getuid32() arm,x86 # NOTE: this system call is never called directly, but we list it there
uid_t getuid:getuid() aarch64,mips,x86_64 # to have __NR_clone properly defined.
gid_t getgid:getgid32() arm,x86 #
gid_t getgid:getgid() aarch64,mips,x86_64 pid_t __sys_clone:clone (int, void*, int*, void*, int*) 1
uid_t geteuid:geteuid32() arm,x86
uid_t geteuid:geteuid() aarch64,mips,x86_64 int execve (const char*, char* const*, char* const*) 1
gid_t getegid:getegid32() arm,x86
gid_t getegid:getegid() aarch64,mips,x86_64 int __setuid:setuid32 (uid_t) 1,1,-1
uid_t getresuid:getresuid32(uid_t* ruid, uid_t* euid, uid_t* suid) arm,x86 int __setuid:setuid (uid_t) -1,-1,1
uid_t getresuid:getresuid(uid_t* ruid, uid_t* euid, uid_t* suid) aarch64,mips,x86_64 uid_t getuid:getuid32 () 1,1,-1
gid_t getresgid:getresgid32(gid_t* rgid, gid_t* egid, gid_t* sgid) arm,x86 uid_t getuid:getuid () -1,-1,1
gid_t getresgid:getresgid(gid_t* rgid, gid_t* egid, gid_t* sgid) aarch64,mips,x86_64 gid_t getgid:getgid32 () 1,1,-1
pid_t gettid() all gid_t getgid:getgid () -1,-1,1
ssize_t readahead(int, off64_t, size_t) all uid_t geteuid:geteuid32 () 1,1,-1
int getgroups:getgroups32(int, gid_t*) arm,x86 uid_t geteuid:geteuid () -1,-1,1
int getgroups:getgroups(int, gid_t*) aarch64,mips,x86_64 gid_t getegid:getegid32 () 1,1,-1
pid_t getpgid(pid_t) all gid_t getegid:getegid () -1,-1,1
pid_t getppid() all uid_t getresuid:getresuid32 (uid_t *ruid, uid_t *euid, uid_t *suid) 1,1,-1
pid_t getsid(pid_t) all uid_t getresuid:getresuid (uid_t *ruid, uid_t *euid, uid_t *suid) -1,-1,1
pid_t setsid() all gid_t getresgid:getresgid32 (gid_t *rgid, gid_t *egid, gid_t *sgid) 1,1,-1
int setgid:setgid32(gid_t) arm,x86 gid_t getresgid:getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid) -1,-1,1
int setgid:setgid(gid_t) aarch64,mips,x86_64 pid_t gettid() 1
int setuid:setuid32(uid_t) arm,x86 ssize_t readahead(int, off64_t, size_t) 1
int setuid:setuid(uid_t) aarch64,mips,x86_64 int getgroups:getgroups32(int, gid_t *) 1,1,-1
int setreuid:setreuid32(uid_t, uid_t) arm,x86 int getgroups:getgroups(int, gid_t *) -1,-1,1
int setreuid:setreuid(uid_t, uid_t) aarch64,mips,x86_64 pid_t getpgid(pid_t) 1
int setresuid:setresuid32(uid_t, uid_t, uid_t) arm,x86 pid_t getppid() 1
int setresuid:setresuid(uid_t, uid_t, uid_t) aarch64,mips,x86_64 pid_t getsid(pid_t) 1
int setresgid:setresgid32(gid_t, gid_t, gid_t) arm,x86 pid_t setsid() 1
int setresgid:setresgid(gid_t, gid_t, gid_t) aarch64,mips,x86_64 int setgid:setgid32(gid_t) 1,1,-1
void* __brk:brk(void*) all int setgid:setgid(gid_t) -1,-1,1
int kill(pid_t, int) all int seteuid:seteuid32(uid_t) stub
int tkill(pid_t tid, int sig) all int __setreuid:setreuid32(uid_t, uid_t) 1,1,-1
int tgkill(pid_t tgid, pid_t tid, int sig) all int __setreuid:setreuid(uid_t, uid_t) -1,-1,1
int __ptrace:ptrace(int request, int pid, void* addr, void* data) all int __setresuid:setresuid32(uid_t, uid_t, uid_t) 1,1,-1
int __set_thread_area:set_thread_area(void* user_desc) mips,x86 int __setresuid:setresuid(uid_t, uid_t, uid_t) -1,-1,1
int __getpriority:getpriority(int, int) all int setresgid:setresgid32(gid_t, gid_t, gid_t) 1,1,-1
int setpriority(int, int, int) all int setresgid:setresgid(gid_t, gid_t, gid_t) -1,-1,1
int setrlimit(int resource, const struct rlimit* rlp) all void* __brk:brk(void*) 1
int getrlimit:ugetrlimit(int resource, struct rlimit* rlp) arm,x86 # see comments in arch-arm/bionic/kill.S to understand why we don't generate an ARM stub for kill/tkill
int getrlimit:getrlimit(int resource, struct rlimit* rlp) aarch64,mips,x86_64 int kill(pid_t, int) -1,1,1
int getrusage(int who, struct rusage* r_usage) all int tkill(pid_t tid, int sig) -1,1,1
int setgroups:setgroups32(int, const gid_t*) arm,x86 int tgkill(pid_t tgid, pid_t tid, int sig) -1,1,1
int setgroups:setgroups(int, const gid_t*) aarch64,mips,x86_64 int __ptrace:ptrace(int request, int pid, void* addr, void* data) 1
int setpgid(pid_t, pid_t) all int __set_thread_area:set_thread_area(void* user_desc) -1,1,1
pid_t vfork(void) arm int __getpriority:getpriority(int, int) 1
int setregid:setregid32(gid_t, gid_t) arm,x86 int setpriority(int, int, int) 1
int setregid:setregid(gid_t, gid_t) aarch64,mips,x86_64 int setrlimit(int resource, const struct rlimit *rlp) 1
int chroot(const char*) all int getrlimit:ugetrlimit(int resource, struct rlimit *rlp) 1,1,-1
int getrlimit:getrlimit(int resource, struct rlimit *rlp) -1,-1,1
int getrusage(int who, struct rusage* r_usage) 1
int setgroups:setgroups32(int, const gid_t *) 1,1,-1
int setgroups:setgroups(int, const gid_t *) -1,-1,1
pid_t getpgrp(void) stub
int setpgid(pid_t, pid_t) 1
pid_t vfork(void) 1,-1,-1
int setregid:setregid32(gid_t, gid_t) 1,1,-1
int setregid:setregid(gid_t, gid_t) -1,-1,1
int chroot(const char *) 1
# IMPORTANT: Even though <sys/prctl.h> declares prctl(int,...), the syscall stub must take 6 arguments # IMPORTANT: Even though <sys/prctl.h> declares prctl(int,...), the syscall stub must take 6 arguments
# to match the kernel implementation. # to match the kernel implementation.
int prctl(int option, unsigned int arg2, unsigned int arg3, unsigned int arg4, unsigned int arg5) all int prctl(int option, unsigned int arg2, unsigned int arg3, unsigned int arg4, unsigned int arg5) 1
long __arch_prctl:arch_prctl(int, unsigned long) x86_64 int capget(cap_user_header_t header, cap_user_data_t data) 1
int capget(cap_user_header_t header, cap_user_data_t data) all int capset(cap_user_header_t header, const cap_user_data_t data) 1
int capset(cap_user_header_t header, const cap_user_data_t data) all int sigaltstack(const stack_t*, stack_t*) 1
int sigaltstack(const stack_t*, stack_t*) all int acct(const char* filepath) 1
int acct(const char* filepath) all
# file descriptors # file descriptors
ssize_t read(int, void*, size_t) all ssize_t read (int, void*, size_t) 1
ssize_t write(int, const void*, size_t) all ssize_t write (int, const void*, size_t) 1
ssize_t pread64(int, void*, size_t, off64_t) arm,mips,x86 ssize_t pread64 (int, void *, size_t, off64_t) 1
ssize_t pread64|pread(int, void*, size_t, off_t) aarch64,x86_64 ssize_t pwrite64 (int, void *, size_t, off64_t) 1
ssize_t pwrite64(int, void*, size_t, off64_t) arm,mips,x86 int __open:open (const char*, int, mode_t) 1
ssize_t pwrite64|pwrite(int, void*, size_t, off_t) aarch64,x86_64 int __openat:openat (int, const char*, int, mode_t) 1
int close(int) all int close (int) 1
pid_t getpid() all int creat(const char*, mode_t) stub
void* mmap(void*, size_t, int, int, int, long) aarch64,x86_64 off_t lseek(int, off_t, int) 1
void* __mmap2:mmap2(void*, size_t, int, int, int, long) arm,mips,x86 int __llseek:_llseek (int, unsigned long, unsigned long, loff_t*, int) 1
int munmap(void*, size_t) all pid_t getpid () 1
void* mremap(void*, size_t, size_t, unsigned long) all void * mmap(void *, size_t, int, int, int, long) stub
int msync(const void*, size_t, int) all void * __mmap2:mmap2(void*, size_t, int, int, int, long) 1
int mprotect(const void*, size_t, int) all int munmap(void *, size_t) 1
int madvise(const void*, size_t, int) all void * mremap(void *, size_t, size_t, unsigned long) 1
int mlock(const void* addr, size_t len) all int msync(const void *, size_t, int) 1
int munlock(const void* addr, size_t len) all int mprotect(const void *, size_t, int) 1
int mlockall(int flags) all int madvise(const void *, size_t, int) 1
int munlockall() all int mlock(const void *addr, size_t len) 1
int mincore(void* start, size_t length, unsigned char* vec) all int munlock(const void *addr, size_t len) 1
int __ioctl:ioctl(int, int, void*) all int mlockall(int flags) 1
int readv(int, const struct iovec*, int) all int munlockall() 1
int writev(int, const struct iovec*, int) all int mincore(void* start, size_t length, unsigned char* vec) 1
int __fcntl64:fcntl64(int, int, void*) arm,mips,x86 int __ioctl:ioctl(int, int, void *) 1
int fcntl(int, int, void*) aarch64,x86_64 int readv(int, const struct iovec *, int) 1
int flock(int, int) all int writev(int, const struct iovec *, int) 1
int fchmod(int, mode_t) all int __fcntl:fcntl(int, int, void*) 1
int dup(int) all int flock(int, int) 1
int pipe2(int*, int) all int fchmod(int, mode_t) 1
int dup3(int, int, int) all int dup(int) 1
int getdents:getdents64(unsigned int, struct dirent*, unsigned int) all int pipe(int *) 1,1,-1
int fsync(int) all int pipe2(int *, int) 1
int fdatasync(int) all int dup2(int, int) 1
int fchown:fchown32(int, uid_t, gid_t) arm,x86 int select:_newselect(int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *) 1
int fchown:fchown(int, uid_t, gid_t) aarch64,mips,x86_64 int ftruncate(int, off_t) 1
void sync(void) all int ftruncate64(int, off64_t) 1
int __fstatfs64:fstatfs64(int, size_t, struct statfs*) arm,mips,x86 int getdents:getdents64(unsigned int, struct dirent *, unsigned int) 1
int fstatfs(int, struct statfs*) aarch64,x86_64 int fsync(int) 1
int fsetxattr(int, const char*, const void*, size_t, int) all int fdatasync(int) 1
ssize_t fgetxattr(int, const char*, void*, size_t) all int fchown:fchown32(int, uid_t, gid_t) 1,1,-1
ssize_t flistxattr(int, char*, size_t) all int fchown:fchown(int, uid_t, gid_t) -1,-1,1
int fremovexattr(int, const char*) all void sync(void) 1
int __fcntl64:fcntl64(int, int, void *) 1
int __openat:openat(int, const char*, int, mode_t) all int __fstatfs64:fstatfs64(int, size_t, struct statfs *) 1
int faccessat(int, const char*, int, int) all ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count) 1
int fchmodat(int, const char*, mode_t, int) all int fstatat:fstatat64(int dirfd, const char *path, struct stat *buf, int flags) 1
int fchownat(int, const char*, uid_t, gid_t, int) all int mkdirat(int dirfd, const char *pathname, mode_t mode) 1
int fstatat:fstatat64(int, const char*, struct stat*, int) arm,mips,x86 int fchownat(int dirfd, const char *path, uid_t owner, gid_t group, int flags) 1
int fstatat:newfstatat(int, const char*, struct stat*, int) aarch64,x86_64 int fchmodat(int dirfd, const char *path, mode_t mode, int flags) 1
int linkat(int, const char*, int, const char*, int) all int renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath) 1
int mkdirat(int, const char*, mode_t) all int fsetxattr(int, const char *, const void *, size_t, int) 1
int mknodat(int, const char*, mode_t, dev_t) all ssize_t fgetxattr(int, const char *, void *, size_t) 1
int readlinkat(int, const char*, char*, size_t) all ssize_t flistxattr(int, char *, size_t) 1
int renameat(int, const char*, int, const char*) all int fremovexattr(int, const char *) 1
int symlinkat(const char*, int, const char*) all
int unlinkat(int, const char*, int) all
int utimensat(int, const char*, const struct timespec times[2], int) all
# Paired off_t/off64_t system calls. On 64-bit systems,
# sizeof(off_t) == sizeof(off64_t), so there we emit two symbols that are
# aliases. On 32-bit systems, we have two different system calls.
# That means that every system call in this section should take three lines.
off_t lseek(int, off_t, int) arm,mips,x86
int __llseek:_llseek(int, unsigned long, unsigned long, off64_t*, int) arm,mips,x86
off_t lseek|lseek64(int, off_t, int) aarch64,x86_64
int ftruncate(int, off_t) arm,mips,x86
int ftruncate64(int, off64_t) arm,mips,x86
int ftruncate|ftruncate64(int, off_t) aarch64,x86_64
ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count) arm,mips,x86
ssize_t sendfile64(int out_fd, int in_fd, off64_t* offset, size_t count) arm,mips,x86
ssize_t sendfile|sendfile64(int out_fd, int in_fd, off_t* offset, size_t count) aarch64,x86_64
int truncate(const char*, off_t) arm,mips,x86
int truncate64(const char*, off64_t) arm,mips,x86
int truncate|truncate64(const char*, off_t) aarch64,x86_64
# file system # file system
int chdir(const char*) all int link (const char*, const char*) 1
int mount(const char*, const char*, const char*, unsigned long, const void*) all int unlink (const char*) 1
int umount2(const char*, int) all int unlinkat (int, const char *, int) 1
int fstat:fstat64(int, struct stat*) arm,mips,x86 int chdir (const char*) 1
int fstat(int, struct stat*) aarch64,x86_64 int mknod (const char*, mode_t, dev_t) 1
int __getcwd:getcwd(char* buf, size_t size) all int chmod (const char*,mode_t) 1
int fchdir(int) all int chown:chown32(const char *, uid_t, gid_t) 1,1,-1
int setxattr(const char*, const char*, const void*, size_t, int) all int chown:chown(const char *, uid_t, gid_t) -1,-1,1
int lsetxattr(const char*, const char*, const void*, size_t, int) all int lchown:lchown32 (const char*, uid_t, gid_t) 1,1,-1
ssize_t getxattr(const char*, const char*, void*, size_t) all int lchown:lchown (const char*, uid_t, gid_t) -1,-1,1
ssize_t lgetxattr(const char*, const char*, void*, size_t) all int mount (const char*, const char*, const char*, unsigned long, const void*) 1
ssize_t listxattr(const char*, char*, size_t) all int umount(const char*) stub
ssize_t llistxattr(const char*, char*, size_t) all int umount2 (const char*, int) 1
int removexattr(const char*, const char*) all int fstat:fstat64(int, struct stat*) 1
int lremovexattr(const char*, const char*) all int stat:stat64(const char *, struct stat *) 1
int __statfs64:statfs64(const char*, size_t, struct statfs*) arm,mips,x86 int lstat:lstat64(const char *, struct stat *) 1
int statfs(const char*, struct statfs*) aarch64,x86_64 int mkdir(const char *, mode_t) 1
long unshare(unsigned long) all int readlink(const char *, char *, size_t) 1
int swapon(const char*, int) all int rmdir(const char *) 1
int swapoff(const char*) all int rename(const char *, const char *) 1
int __getcwd:getcwd(char * buf, size_t size) 1
int access(const char *, int) 1
int faccessat(int, const char *, int, int) 1
int symlink(const char *, const char *) 1
int fchdir(int) 1
int truncate(const char*, off_t) 1
int setxattr(const char *, const char *, const void *, size_t, int) 1
int lsetxattr(const char *, const char *, const void *, size_t, int) 1
ssize_t getxattr(const char *, const char *, void *, size_t) 1
ssize_t lgetxattr(const char *, const char *, void *, size_t) 1
ssize_t listxattr(const char *, char *, size_t) 1
ssize_t llistxattr(const char *, char *, size_t) 1
int removexattr(const char *, const char *) 1
int lremovexattr(const char *, const char *) 1
int __statfs64:statfs64(const char *, size_t, struct statfs *) 1
long unshare(unsigned long) 1
int swapon(const char *, int) 1
int swapoff(const char *) 1
# time # time
int gettimeofday(struct timeval*, struct timezone*) all int pause () 1
int settimeofday(const struct timeval*, const struct timezone*) all int gettimeofday(struct timeval*, struct timezone*) 1
clock_t times(struct tms*) all int settimeofday(const struct timeval*, const struct timezone*) 1
int nanosleep(const struct timespec*, struct timespec*) all clock_t times(struct tms *) 1
int clock_gettime(clockid_t clk_id, struct timespec* tp) all int nanosleep(const struct timespec *, struct timespec *) 1
int clock_settime(clockid_t clk_id, const struct timespec* tp) all int clock_gettime(clockid_t clk_id, struct timespec *tp) 1
int clock_getres(clockid_t clk_id, struct timespec* res) all int clock_settime(clockid_t clk_id, const struct timespec *tp) 1
int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec* req, struct timespec* rem) all int clock_getres(clockid_t clk_id, struct timespec *res) 1
int getitimer(int, const struct itimerval*) all int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *req, struct timespec *rem) 1
int setitimer(int, const struct itimerval*, struct itimerval*) all int getitimer(int, const struct itimerval *) 1
int __timer_create:timer_create(clockid_t clockid, struct sigevent* evp, timer_t* timerid) all int setitimer(int, const struct itimerval *, struct itimerval *) 1
int __timer_settime:timer_settime(timer_t, int, const struct itimerspec*, struct itimerspec*) all int __timer_create:timer_create(clockid_t clockid, struct sigevent *evp, timer_t *timerid) 1
int __timer_gettime:timer_gettime(timer_t, struct itimerspec*) all int __timer_settime:timer_settime(timer_t, int, const struct itimerspec*, struct itimerspec*) 1
int __timer_getoverrun:timer_getoverrun(timer_t) all int __timer_gettime:timer_gettime(timer_t, struct itimerspec*) 1
int __timer_delete:timer_delete(timer_t) all int __timer_getoverrun:timer_getoverrun(timer_t) 1
int timerfd_create(clockid_t, int) all int __timer_delete:timer_delete(timer_t) 1
int timerfd_settime(int, int, const struct itimerspec*, struct itimerspec*) all int utimes(const char*, const struct timeval tvp[2]) 1
int timerfd_gettime(int, struct itimerspec*) all int utimensat(int, const char *, const struct timespec times[2], int) 1
int timerfd_create(clockid_t, int) 1
int timerfd_settime(int, int, const struct itimerspec *, struct itimerspec *) 1
int timerfd_gettime(int, struct itimerspec *) 1
# signals # signals
int __sigaction:sigaction(int, const struct sigaction*, struct sigaction*) arm,mips,x86 int sigaction(int, const struct sigaction *, struct sigaction *) 1
int __rt_sigaction:rt_sigaction(int, const struct sigaction*, struct sigaction*, size_t) all int sigprocmask(int, const sigset_t *, sigset_t *) 1
int __rt_sigpending:rt_sigpending(sigset_t*, size_t) all int __sigsuspend:sigsuspend(int unused1, int unused2, unsigned mask) 1,1,-1
int __rt_sigprocmask:rt_sigprocmask(int, const sigset_t*, sigset_t*, size_t) all int __sigsuspend:sigsuspend(const sigset_t *mask) -1,-1,1
int __rt_sigsuspend:rt_sigsuspend(const sigset_t*, size_t) all int __rt_sigaction:rt_sigaction (int sig, const struct sigaction *act, struct sigaction *oact, size_t sigsetsize) 1
int __rt_sigtimedwait:rt_sigtimedwait(const sigset_t*, struct siginfo_t*, struct timespec_t*, size_t) all int __rt_sigprocmask:rt_sigprocmask (int how, const sigset_t *set, sigset_t *oset, size_t sigsetsize) 1
int signalfd4(int, const sigset_t*, size_t, int) all int __rt_sigtimedwait:rt_sigtimedwait(const sigset_t *set, struct siginfo_t *info, struct timespec_t *timeout, size_t sigset_size) 1
int sigpending(sigset_t *) 1
int signalfd4(int fd, const sigset_t *mask, size_t sizemask, int flags) 1
# sockets # sockets
int socket(int, int, int) aarch64,arm,mips,x86_64 int socket(int, int, int) 1,-1,1
int socketpair(int, int, int, int*) aarch64,arm,mips,x86_64 int socketpair(int, int, int, int*) 1,-1,1
int bind(int, struct sockaddr*, int) aarch64,arm,mips,x86_64 int bind(int, struct sockaddr *, int) 1,-1,1
int connect(int, struct sockaddr*, socklen_t) aarch64,arm,mips,x86_64 int connect(int, struct sockaddr *, socklen_t) 1,-1,1
int listen(int, int) aarch64,arm,mips,x86_64 int listen(int, int) 1,-1,1
int accept(int, struct sockaddr*, socklen_t*) aarch64,arm,mips,x86_64 int accept(int, struct sockaddr *, socklen_t *) 1,-1,1
int getsockname(int, struct sockaddr*, socklen_t*) aarch64,arm,mips,x86_64 int getsockname(int, struct sockaddr *, socklen_t *) 1,-1,1
int getpeername(int, struct sockaddr*, socklen_t*) aarch64,arm,mips,x86_64 int getpeername(int, struct sockaddr *, socklen_t *) 1,-1,1
int sendto(int, const void*, size_t, int, const struct sockaddr*, socklen_t) aarch64,arm,mips,x86_64 int sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t) 1,-1,1
int recvfrom(int, void*, size_t, unsigned int, struct sockaddr*, socklen_t*) aarch64,arm,mips,x86_64 int recvfrom(int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *) 1,-1,1
int shutdown(int, int) aarch64,arm,mips,x86_64 int shutdown(int, int) 1,-1,1
int setsockopt(int, int, int, const void*, socklen_t) aarch64,arm,mips,x86_64 int setsockopt(int, int, int, const void *, socklen_t) 1,-1,1
int getsockopt(int, int, int, void*, socklen_t*) aarch64,arm,mips,x86_64 int getsockopt(int, int, int, void *, socklen_t *) 1,-1,1
int sendmsg(int, const struct msghdr*, unsigned int) aarch64,arm,mips,x86_64 int sendmsg(int, const struct msghdr *, unsigned int) 1,-1,1
int recvmsg(int, struct msghdr*, unsigned int) aarch64,arm,mips,x86_64 int recvmsg(int, struct msghdr *, unsigned int) 1,-1,1
# sockets for x86. These are done as an "indexed" call to socketcall syscall. # sockets for x86. These are done as an "indexed" call to socketcall syscall.
int socket:socketcall:1(int, int, int) x86 int socket:socketcall:1 (int, int, int) -1,1,-1
int bind:socketcall:2(int, struct sockaddr*, int) x86 int bind:socketcall:2 (int, struct sockaddr *, int) -1,1,-1
int connect:socketcall:3(int, struct sockaddr*, socklen_t) x86 int connect:socketcall:3(int, struct sockaddr *, socklen_t) -1,1,-1
int listen:socketcall:4(int, int) x86 int listen:socketcall:4(int, int) -1,1,-1
int accept:socketcall:5(int, struct sockaddr*, socklen_t*) x86 int accept:socketcall:5(int, struct sockaddr *, socklen_t *) -1,1,-1
int getsockname:socketcall:6(int, struct sockaddr*, socklen_t*) x86 int getsockname:socketcall:6(int, struct sockaddr *, socklen_t *) -1,1,-1
int getpeername:socketcall:7(int, struct sockaddr*, socklen_t*) x86 int getpeername:socketcall:7(int, struct sockaddr *, socklen_t *) -1,1,-1
int socketpair:socketcall:8(int, int, int, int*) x86 int socketpair:socketcall:8(int, int, int, int*) -1,1,-1
int sendto:socketcall:11(int, const void*, size_t, int, const struct sockaddr*, socklen_t) x86 int sendto:socketcall:11(int, const void *, size_t, int, const struct sockaddr *, socklen_t) -1,1,-1
int recvfrom:socketcall:12(int, void*, size_t, unsigned int, struct sockaddr*, socklen_t*) x86 int recvfrom:socketcall:12(int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *) -1,1,-1
int shutdown:socketcall:13(int, int) x86 int shutdown:socketcall:13(int, int) -1,1,-1
int setsockopt:socketcall:14(int, int, int, const void*, socklen_t) x86 int setsockopt:socketcall:14(int, int, int, const void *, socklen_t) -1,1,-1
int getsockopt:socketcall:15(int, int, int, void*, socklen_t*) x86 int getsockopt:socketcall:15(int, int, int, void *, socklen_t *) -1,1,-1
int sendmsg:socketcall:16(int, const struct msghdr*, unsigned int) x86 int sendmsg:socketcall:16(int, const struct msghdr *, unsigned int) -1,1,-1
int recvmsg:socketcall:17(int, struct msghdr*, unsigned int) x86 int recvmsg:socketcall:17(int, struct msghdr *, unsigned int) -1,1,-1
# scheduler & real-time # scheduler & real-time
int sched_setscheduler(pid_t pid, int policy, const struct sched_param* param) all int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param) 1
int sched_getscheduler(pid_t pid) all int sched_getscheduler(pid_t pid) 1
int sched_yield(void) all int sched_yield(void) 1
int sched_setparam(pid_t pid, const struct sched_param* param) all int sched_setparam(pid_t pid, const struct sched_param *param) 1
int sched_getparam(pid_t pid, struct sched_param* param) all int sched_getparam(pid_t pid, struct sched_param *param) 1
int sched_get_priority_max(int policy) all int sched_get_priority_max(int policy) 1
int sched_get_priority_min(int policy) all int sched_get_priority_min(int policy) 1
int sched_rr_get_interval(pid_t pid, struct timespec* interval) all int sched_rr_get_interval(pid_t pid, struct timespec *interval) 1
int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set) all int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set) 1
int __sched_getaffinity:sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set) all int __sched_getaffinity:sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set) 1
int __getcpu:getcpu(unsigned* cpu, unsigned* node, void* unused) all int __getcpu:getcpu(unsigned *cpu, unsigned *node, void *unused) 1
# io priorities # io priorities
int ioprio_set(int which, int who, int ioprio) all int ioprio_set(int which, int who, int ioprio) 1
int ioprio_get(int which, int who) all int ioprio_get(int which, int who) 1
# other # other
int uname(struct utsname*) all int uname(struct utsname *) 1
mode_t umask(mode_t) all mode_t umask(mode_t) 1
int __reboot:reboot(int, int, int, void*) all int __reboot:reboot(int, int, int, void *) 1
int __syslog:syslog(int, char*, int) all int __syslog:syslog(int, char *, int) 1
int init_module(void*, unsigned long, const char*) all int init_module(void *, unsigned long, const char *) 1
int delete_module(const char*, unsigned int) all int delete_module(const char*, unsigned int) 1
int klogctl:syslog(int, char*, int) all int klogctl:syslog(int, char *, int) 1
int sysinfo(struct sysinfo*) all int sysinfo(struct sysinfo *) 1
int personality(unsigned long) all int personality(unsigned long) 1
long perf_event_open(struct perf_event_attr* attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags) all long perf_event_open(struct perf_event_attr *attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags) 1
int epoll_create1(int) all # futex
int epoll_ctl(int, int op, int, struct epoll_event*) all int futex(void *, int, int, void *, void *, int) 1
int __epoll_pwait:epoll_pwait(int, struct epoll_event*, int, int, const sigset_t*, size_t) all
int eventfd:eventfd2(unsigned int, int) all # epoll
int epoll_create(int size) 1
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event) 1
int epoll_wait(int epfd, struct epoll_event *events, int max, int timeout) 1
void _exit:exit_group(int) all int inotify_init(void) 1
void __exit:exit(int) all int inotify_add_watch(int, const char *, unsigned int) 1
int inotify_rm_watch(int, unsigned int) 1
int futex(void*, int, int, void*, void*, int) all int poll(struct pollfd *, unsigned int, long) 1
int inotify_init1(int) all int eventfd:eventfd2(unsigned int, int) 1
int inotify_add_watch(int, const char*, unsigned int) all
int inotify_rm_watch(int, unsigned int) all
int __pselect6:pselect6(int, fd_set*, fd_set*, fd_set*, timespec*, void*) all # ARM-specific ARM_NR_BASE == 0x0f0000 == 983040
int __ppoll:ppoll(pollfd*, unsigned int, timespec*, const sigset_t*, size_t) all int __set_tls:__ARM_NR_set_tls(void*) 1,-1,-1
int cacheflush:__ARM_NR_cacheflush(long start, long end, long flags) 1,-1,-1
int __set_tid_address:set_tid_address(int*) all
pid_t wait4(pid_t, int*, int, struct rusage*) all
int __waitid:waitid(int, pid_t, struct siginfo_t*, int, void*) all
# ARM-specific
int __set_tls:__ARM_NR_set_tls(void*) arm
int cacheflush:__ARM_NR_cacheflush(long start, long end, long flags) arm
# MIPS-specific # MIPS-specific
int _flush_cache:cacheflush(char* addr, const int nbytes, const int op) mips int _flush_cache:cacheflush(char *addr, const int nbytes, const int op) -1,-1,1
int syscall(int number,...) -1,-1,1

View File

@@ -1,188 +0,0 @@
# Generated by gensyscalls.py. Do not edit.
syscall_src :=
syscall_src += arch-aarch64/syscalls/__brk.S
syscall_src += arch-aarch64/syscalls/__epoll_pwait.S
syscall_src += arch-aarch64/syscalls/__exit.S
syscall_src += arch-aarch64/syscalls/__getcpu.S
syscall_src += arch-aarch64/syscalls/__getcwd.S
syscall_src += arch-aarch64/syscalls/__getpriority.S
syscall_src += arch-aarch64/syscalls/__ioctl.S
syscall_src += arch-aarch64/syscalls/__openat.S
syscall_src += arch-aarch64/syscalls/__ppoll.S
syscall_src += arch-aarch64/syscalls/__pselect6.S
syscall_src += arch-aarch64/syscalls/__ptrace.S
syscall_src += arch-aarch64/syscalls/__reboot.S
syscall_src += arch-aarch64/syscalls/__rt_sigaction.S
syscall_src += arch-aarch64/syscalls/__rt_sigpending.S
syscall_src += arch-aarch64/syscalls/__rt_sigprocmask.S
syscall_src += arch-aarch64/syscalls/__rt_sigsuspend.S
syscall_src += arch-aarch64/syscalls/__rt_sigtimedwait.S
syscall_src += arch-aarch64/syscalls/__sched_getaffinity.S
syscall_src += arch-aarch64/syscalls/__set_tid_address.S
syscall_src += arch-aarch64/syscalls/__syslog.S
syscall_src += arch-aarch64/syscalls/__timer_create.S
syscall_src += arch-aarch64/syscalls/__timer_delete.S
syscall_src += arch-aarch64/syscalls/__timer_getoverrun.S
syscall_src += arch-aarch64/syscalls/__timer_gettime.S
syscall_src += arch-aarch64/syscalls/__timer_settime.S
syscall_src += arch-aarch64/syscalls/__waitid.S
syscall_src += arch-aarch64/syscalls/_exit.S
syscall_src += arch-aarch64/syscalls/accept.S
syscall_src += arch-aarch64/syscalls/acct.S
syscall_src += arch-aarch64/syscalls/bind.S
syscall_src += arch-aarch64/syscalls/capget.S
syscall_src += arch-aarch64/syscalls/capset.S
syscall_src += arch-aarch64/syscalls/chdir.S
syscall_src += arch-aarch64/syscalls/chroot.S
syscall_src += arch-aarch64/syscalls/clock_getres.S
syscall_src += arch-aarch64/syscalls/clock_gettime.S
syscall_src += arch-aarch64/syscalls/clock_nanosleep.S
syscall_src += arch-aarch64/syscalls/clock_settime.S
syscall_src += arch-aarch64/syscalls/close.S
syscall_src += arch-aarch64/syscalls/connect.S
syscall_src += arch-aarch64/syscalls/delete_module.S
syscall_src += arch-aarch64/syscalls/dup.S
syscall_src += arch-aarch64/syscalls/dup3.S
syscall_src += arch-aarch64/syscalls/epoll_create1.S
syscall_src += arch-aarch64/syscalls/epoll_ctl.S
syscall_src += arch-aarch64/syscalls/eventfd.S
syscall_src += arch-aarch64/syscalls/execve.S
syscall_src += arch-aarch64/syscalls/faccessat.S
syscall_src += arch-aarch64/syscalls/fchdir.S
syscall_src += arch-aarch64/syscalls/fchmod.S
syscall_src += arch-aarch64/syscalls/fchmodat.S
syscall_src += arch-aarch64/syscalls/fchown.S
syscall_src += arch-aarch64/syscalls/fchownat.S
syscall_src += arch-aarch64/syscalls/fcntl.S
syscall_src += arch-aarch64/syscalls/fdatasync.S
syscall_src += arch-aarch64/syscalls/fgetxattr.S
syscall_src += arch-aarch64/syscalls/flistxattr.S
syscall_src += arch-aarch64/syscalls/flock.S
syscall_src += arch-aarch64/syscalls/fremovexattr.S
syscall_src += arch-aarch64/syscalls/fsetxattr.S
syscall_src += arch-aarch64/syscalls/fstat.S
syscall_src += arch-aarch64/syscalls/fstatat.S
syscall_src += arch-aarch64/syscalls/fstatfs.S
syscall_src += arch-aarch64/syscalls/fsync.S
syscall_src += arch-aarch64/syscalls/ftruncate.S
syscall_src += arch-aarch64/syscalls/futex.S
syscall_src += arch-aarch64/syscalls/getdents.S
syscall_src += arch-aarch64/syscalls/getegid.S
syscall_src += arch-aarch64/syscalls/geteuid.S
syscall_src += arch-aarch64/syscalls/getgid.S
syscall_src += arch-aarch64/syscalls/getgroups.S
syscall_src += arch-aarch64/syscalls/getitimer.S
syscall_src += arch-aarch64/syscalls/getpeername.S
syscall_src += arch-aarch64/syscalls/getpgid.S
syscall_src += arch-aarch64/syscalls/getpid.S
syscall_src += arch-aarch64/syscalls/getppid.S
syscall_src += arch-aarch64/syscalls/getresgid.S
syscall_src += arch-aarch64/syscalls/getresuid.S
syscall_src += arch-aarch64/syscalls/getrlimit.S
syscall_src += arch-aarch64/syscalls/getrusage.S
syscall_src += arch-aarch64/syscalls/getsid.S
syscall_src += arch-aarch64/syscalls/getsockname.S
syscall_src += arch-aarch64/syscalls/getsockopt.S
syscall_src += arch-aarch64/syscalls/gettid.S
syscall_src += arch-aarch64/syscalls/gettimeofday.S
syscall_src += arch-aarch64/syscalls/getuid.S
syscall_src += arch-aarch64/syscalls/getxattr.S
syscall_src += arch-aarch64/syscalls/init_module.S
syscall_src += arch-aarch64/syscalls/inotify_add_watch.S
syscall_src += arch-aarch64/syscalls/inotify_init1.S
syscall_src += arch-aarch64/syscalls/inotify_rm_watch.S
syscall_src += arch-aarch64/syscalls/ioprio_get.S
syscall_src += arch-aarch64/syscalls/ioprio_set.S
syscall_src += arch-aarch64/syscalls/kill.S
syscall_src += arch-aarch64/syscalls/klogctl.S
syscall_src += arch-aarch64/syscalls/lgetxattr.S
syscall_src += arch-aarch64/syscalls/linkat.S
syscall_src += arch-aarch64/syscalls/listen.S
syscall_src += arch-aarch64/syscalls/listxattr.S
syscall_src += arch-aarch64/syscalls/llistxattr.S
syscall_src += arch-aarch64/syscalls/lremovexattr.S
syscall_src += arch-aarch64/syscalls/lseek.S
syscall_src += arch-aarch64/syscalls/lsetxattr.S
syscall_src += arch-aarch64/syscalls/madvise.S
syscall_src += arch-aarch64/syscalls/mincore.S
syscall_src += arch-aarch64/syscalls/mkdirat.S
syscall_src += arch-aarch64/syscalls/mknodat.S
syscall_src += arch-aarch64/syscalls/mlock.S
syscall_src += arch-aarch64/syscalls/mlockall.S
syscall_src += arch-aarch64/syscalls/mmap.S
syscall_src += arch-aarch64/syscalls/mount.S
syscall_src += arch-aarch64/syscalls/mprotect.S
syscall_src += arch-aarch64/syscalls/mremap.S
syscall_src += arch-aarch64/syscalls/msync.S
syscall_src += arch-aarch64/syscalls/munlock.S
syscall_src += arch-aarch64/syscalls/munlockall.S
syscall_src += arch-aarch64/syscalls/munmap.S
syscall_src += arch-aarch64/syscalls/nanosleep.S
syscall_src += arch-aarch64/syscalls/perf_event_open.S
syscall_src += arch-aarch64/syscalls/personality.S
syscall_src += arch-aarch64/syscalls/pipe2.S
syscall_src += arch-aarch64/syscalls/prctl.S
syscall_src += arch-aarch64/syscalls/pread64.S
syscall_src += arch-aarch64/syscalls/pwrite64.S
syscall_src += arch-aarch64/syscalls/read.S
syscall_src += arch-aarch64/syscalls/readahead.S
syscall_src += arch-aarch64/syscalls/readlinkat.S
syscall_src += arch-aarch64/syscalls/readv.S
syscall_src += arch-aarch64/syscalls/recvfrom.S
syscall_src += arch-aarch64/syscalls/recvmsg.S
syscall_src += arch-aarch64/syscalls/removexattr.S
syscall_src += arch-aarch64/syscalls/renameat.S
syscall_src += arch-aarch64/syscalls/sched_get_priority_max.S
syscall_src += arch-aarch64/syscalls/sched_get_priority_min.S
syscall_src += arch-aarch64/syscalls/sched_getparam.S
syscall_src += arch-aarch64/syscalls/sched_getscheduler.S
syscall_src += arch-aarch64/syscalls/sched_rr_get_interval.S
syscall_src += arch-aarch64/syscalls/sched_setaffinity.S
syscall_src += arch-aarch64/syscalls/sched_setparam.S
syscall_src += arch-aarch64/syscalls/sched_setscheduler.S
syscall_src += arch-aarch64/syscalls/sched_yield.S
syscall_src += arch-aarch64/syscalls/sendfile.S
syscall_src += arch-aarch64/syscalls/sendmsg.S
syscall_src += arch-aarch64/syscalls/sendto.S
syscall_src += arch-aarch64/syscalls/setgid.S
syscall_src += arch-aarch64/syscalls/setgroups.S
syscall_src += arch-aarch64/syscalls/setitimer.S
syscall_src += arch-aarch64/syscalls/setpgid.S
syscall_src += arch-aarch64/syscalls/setpriority.S
syscall_src += arch-aarch64/syscalls/setregid.S
syscall_src += arch-aarch64/syscalls/setresgid.S
syscall_src += arch-aarch64/syscalls/setresuid.S
syscall_src += arch-aarch64/syscalls/setreuid.S
syscall_src += arch-aarch64/syscalls/setrlimit.S
syscall_src += arch-aarch64/syscalls/setsid.S
syscall_src += arch-aarch64/syscalls/setsockopt.S
syscall_src += arch-aarch64/syscalls/settimeofday.S
syscall_src += arch-aarch64/syscalls/setuid.S
syscall_src += arch-aarch64/syscalls/setxattr.S
syscall_src += arch-aarch64/syscalls/shutdown.S
syscall_src += arch-aarch64/syscalls/sigaltstack.S
syscall_src += arch-aarch64/syscalls/signalfd4.S
syscall_src += arch-aarch64/syscalls/socket.S
syscall_src += arch-aarch64/syscalls/socketpair.S
syscall_src += arch-aarch64/syscalls/statfs.S
syscall_src += arch-aarch64/syscalls/swapoff.S
syscall_src += arch-aarch64/syscalls/swapon.S
syscall_src += arch-aarch64/syscalls/symlinkat.S
syscall_src += arch-aarch64/syscalls/sync.S
syscall_src += arch-aarch64/syscalls/sysinfo.S
syscall_src += arch-aarch64/syscalls/tgkill.S
syscall_src += arch-aarch64/syscalls/timerfd_create.S
syscall_src += arch-aarch64/syscalls/timerfd_gettime.S
syscall_src += arch-aarch64/syscalls/timerfd_settime.S
syscall_src += arch-aarch64/syscalls/times.S
syscall_src += arch-aarch64/syscalls/tkill.S
syscall_src += arch-aarch64/syscalls/truncate.S
syscall_src += arch-aarch64/syscalls/umask.S
syscall_src += arch-aarch64/syscalls/umount2.S
syscall_src += arch-aarch64/syscalls/uname.S
syscall_src += arch-aarch64/syscalls/unlinkat.S
syscall_src += arch-aarch64/syscalls/unshare.S
syscall_src += arch-aarch64/syscalls/utimensat.S
syscall_src += arch-aarch64/syscalls/wait4.S
syscall_src += arch-aarch64/syscalls/write.S
syscall_src += arch-aarch64/syscalls/writev.S

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__brk)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_brk
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__brk)
.hidden _C_LABEL(__brk)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__epoll_pwait)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_epoll_pwait
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__epoll_pwait)
.hidden _C_LABEL(__epoll_pwait)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__exit)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_exit
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__exit)
.hidden _C_LABEL(__exit)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__getcpu)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getcpu
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__getcpu)
.hidden _C_LABEL(__getcpu)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__getcwd)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getcwd
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__getcwd)
.hidden _C_LABEL(__getcwd)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__getpriority)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getpriority
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__getpriority)
.hidden _C_LABEL(__getpriority)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__ioctl)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_ioctl
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__ioctl)
.hidden _C_LABEL(__ioctl)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__openat)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_openat
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__openat)
.hidden _C_LABEL(__openat)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__ppoll)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_ppoll
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__ppoll)
.hidden _C_LABEL(__ppoll)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__pselect6)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_pselect6
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__pselect6)
.hidden _C_LABEL(__pselect6)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__ptrace)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_ptrace
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__ptrace)
.hidden _C_LABEL(__ptrace)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__reboot)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_reboot
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__reboot)
.hidden _C_LABEL(__reboot)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__rt_sigaction)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_rt_sigaction
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__rt_sigaction)
.hidden _C_LABEL(__rt_sigaction)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__rt_sigpending)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_rt_sigpending
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__rt_sigpending)
.hidden _C_LABEL(__rt_sigpending)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__rt_sigprocmask)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_rt_sigprocmask
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__rt_sigprocmask)
.hidden _C_LABEL(__rt_sigprocmask)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__rt_sigsuspend)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_rt_sigsuspend
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__rt_sigsuspend)
.hidden _C_LABEL(__rt_sigsuspend)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__rt_sigtimedwait)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_rt_sigtimedwait
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__rt_sigtimedwait)
.hidden _C_LABEL(__rt_sigtimedwait)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__sched_getaffinity)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_sched_getaffinity
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__sched_getaffinity)
.hidden _C_LABEL(__sched_getaffinity)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__set_tid_address)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_set_tid_address
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__set_tid_address)
.hidden _C_LABEL(__set_tid_address)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__syslog)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_syslog
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__syslog)
.hidden _C_LABEL(__syslog)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__timer_create)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_timer_create
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__timer_create)
.hidden _C_LABEL(__timer_create)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__timer_delete)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_timer_delete
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__timer_delete)
.hidden _C_LABEL(__timer_delete)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__timer_getoverrun)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_timer_getoverrun
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__timer_getoverrun)
.hidden _C_LABEL(__timer_getoverrun)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__timer_gettime)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_timer_gettime
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__timer_gettime)
.hidden _C_LABEL(__timer_gettime)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__timer_settime)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_timer_settime
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__timer_settime)
.hidden _C_LABEL(__timer_settime)

View File

@@ -1,22 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(__waitid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_waitid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(__waitid)
.hidden _C_LABEL(__waitid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(_exit)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_exit_group
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(_exit)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(accept)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_accept
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(accept)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(acct)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_acct
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(acct)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(bind)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_bind
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(bind)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(capget)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_capget
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(capget)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(capset)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_capset
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(capset)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(chdir)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_chdir
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(chdir)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(chroot)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_chroot
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(chroot)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(clock_getres)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_clock_getres
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(clock_getres)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(clock_gettime)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_clock_gettime
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(clock_gettime)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(clock_nanosleep)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_clock_nanosleep
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(clock_nanosleep)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(clock_settime)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_clock_settime
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(clock_settime)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(close)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_close
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(close)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(connect)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_connect
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(connect)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(delete_module)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_delete_module
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(delete_module)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(dup)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_dup
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(dup)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(dup3)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_dup3
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(dup3)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(epoll_create1)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_epoll_create1
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(epoll_create1)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(epoll_ctl)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_epoll_ctl
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(epoll_ctl)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(eventfd)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_eventfd2
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(eventfd)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(execve)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_execve
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(execve)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(faccessat)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_faccessat
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(faccessat)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fchdir)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fchdir
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fchdir)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fchmod)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fchmod
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fchmod)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fchmodat)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fchmodat
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fchmodat)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fchown)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fchown
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fchown)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fchownat)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fchownat
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fchownat)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fcntl)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fcntl
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fcntl)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fdatasync)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fdatasync
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fdatasync)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fgetxattr)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fgetxattr
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fgetxattr)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(flistxattr)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_flistxattr
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(flistxattr)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(flock)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_flock
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(flock)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fremovexattr)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fremovexattr
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fremovexattr)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fsetxattr)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fsetxattr
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fsetxattr)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fstat)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fstat
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fstat)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fstatat)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_newfstatat
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fstatat)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fstatfs)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fstatfs
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fstatfs)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(fsync)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_fsync
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(fsync)

View File

@@ -1,24 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(ftruncate)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_ftruncate
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(ftruncate)
.globl _C_LABEL(ftruncate64)
.equ _C_LABEL(ftruncate64), _C_LABEL(ftruncate)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(futex)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_futex
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(futex)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getdents)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getdents64
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getdents)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getegid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getegid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getegid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(geteuid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_geteuid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(geteuid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getgid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getgid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getgid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getgroups)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getgroups
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getgroups)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getitimer)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getitimer
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getitimer)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getpeername)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getpeername
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getpeername)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getpgid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getpgid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getpgid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getpid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getpid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getpid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getppid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getppid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getppid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getresgid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getresgid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getresgid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getresuid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getresuid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getresuid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getrlimit)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getrlimit
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getrlimit)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getrusage)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getrusage
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getrusage)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getsid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getsid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getsid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getsockname)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getsockname
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getsockname)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getsockopt)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getsockopt
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getsockopt)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(gettid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_gettid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(gettid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(gettimeofday)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_gettimeofday
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(gettimeofday)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getuid)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getuid
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getuid)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(getxattr)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_getxattr
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(getxattr)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(init_module)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_init_module
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(init_module)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(inotify_add_watch)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_inotify_add_watch
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(inotify_add_watch)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(inotify_init1)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_inotify_init1
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(inotify_init1)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(inotify_rm_watch)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_inotify_rm_watch
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(inotify_rm_watch)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(ioprio_get)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_ioprio_get
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(ioprio_get)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(ioprio_set)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_ioprio_set
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(ioprio_set)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(kill)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_kill
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(kill)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(klogctl)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_syslog
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(klogctl)

View File

@@ -1,21 +0,0 @@
/* Generated by gensyscalls.py. Do not edit. */
#include <private/bionic_asm.h>
ENTRY(lgetxattr)
stp x29, x30, [sp, #-16]!
mov x29, sp
str x8, [sp, #-16]!
mov x8, __NR_lgetxattr
svc #0
ldr x8, [sp], #16
ldp x29, x30, [sp], #16
cmn x0, #(MAX_ERRNO + 1)
cneg x0, x0, hi
b.hi __set_errno
ret
END(lgetxattr)

Some files were not shown because too many files have changed in this diff Show More