Merge "Refresh 64-bit headers/libs (WW36)"

This commit is contained in:
Andrew Hsieh
2014-09-04 17:57:42 +00:00
committed by Gerrit Code Review
59 changed files with 343 additions and 268 deletions

View File

@@ -19,18 +19,6 @@ _Unwind_VRS_Get
_Unwind_VRS_Pop
_Unwind_VRS_Set
_Z16__libc_init_vdsov
_ZN11ScopedTraceC1EPKc
_ZN11ScopedTraceC2EPKc
_ZN11ScopedTraceD1Ev
_ZN11ScopedTraceD2Ev
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znaj
_ZnajRKSt9nothrow_t
_Znwj
_ZnwjRKSt9nothrow_t
__FD_CLR_chk
__FD_ISSET_chk
__FD_SET_chk
@@ -39,7 +27,6 @@ ___Unwind_ForcedUnwind
___Unwind_RaiseException
___Unwind_Resume
___Unwind_Resume_or_Rethrow
___mtctxres
__accept4
__adddf3
__addsf3
@@ -104,7 +91,6 @@ __aeabi_uldivmod
__aeabi_unwind_cpp_pr0
__aeabi_unwind_cpp_pr1
__aeabi_unwind_cpp_pr2
__android_set_abort_message
__ashldi3
__ashrdi3
__assert
@@ -119,12 +105,9 @@ __brk
__cmpdf2
__cmsg_nxthdr
__connect
__ctype_get_mb_cur_max
__cxa_atexit
__cxa_finalize
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
__divdf3
__divdi3
__divsf3
@@ -277,7 +260,6 @@ __sched_cpualloc
__sched_cpucount
__sched_cpufree
__sched_getaffinity
__set_errno
__set_tid_address
__set_tls
__sigaction
@@ -340,6 +322,7 @@ _exit
_getlong
_getshort
_longjmp
_resolv_delete_cache_for_net
_resolv_flush_cache_for_net
_resolv_set_nameservers_for_net
_setjmp
@@ -357,6 +340,7 @@ alphasort64
android_getaddrinfofornet
android_gethostbyaddrfornet
android_gethostbynamefornet
android_set_abort_message
arc4random
arc4random_buf
arc4random_uniform
@@ -997,6 +981,8 @@ setbuffer
setegid
setenv
seteuid
setfsgid
setfsuid
setgid
setgroups
setitimer

View File

@@ -1,9 +1,7 @@
_ZSt7nothrow
__bionic_brk
__bionic_libgcc_compat_symbols
__dso_handle
__isthreaded
__libc_malloc_dispatch
__p_class_syms
__p_type_syms
__page_shift

View File

@@ -1 +1,13 @@
__this_library_is_now_part_of_libc
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znaj
_ZnajRKSt9nothrow_t
_Znwj
_ZnwjRKSt9nothrow_t
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
android_set_abort_message

View File

@@ -1,33 +1,16 @@
_Exit
_Z16__libc_init_vdsov
_ZN11ScopedTraceC1EPKc
_ZN11ScopedTraceC2EPKc
_ZN11ScopedTraceD1Ev
_ZN11ScopedTraceD2Ev
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znam
_ZnamRKSt9nothrow_t
_Znwm
_ZnwmRKSt9nothrow_t
__FD_CLR_chk
__FD_ISSET_chk
__FD_SET_chk
___mtctxres
__android_set_abort_message
__assert
__assert2
__b64_ntop
__b64_pton
__cmsg_nxthdr
__ctype_get_mb_cur_max
__cxa_atexit
__cxa_finalize
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
__dn_comp
__dn_count_labels
__dn_skipname
@@ -144,6 +127,7 @@ _exit
_getlong
_getshort
_longjmp
_resolv_delete_cache_for_net
_resolv_flush_cache_for_net
_resolv_set_nameservers_for_net
_setjmp
@@ -161,6 +145,7 @@ alphasort64
android_getaddrinfofornet
android_gethostbyaddrfornet
android_gethostbynamefornet
android_set_abort_message
arc4random
arc4random_buf
arc4random_uniform
@@ -771,6 +756,8 @@ setbuffer
setegid
setenv
seteuid
setfsgid
setfsuid
setgid
setgroups
setitimer

View File

@@ -1,6 +1,4 @@
_ZSt7nothrow
__isthreaded
__libc_malloc_dispatch
__p_class_syms
__p_type_syms
__progname

View File

@@ -1 +1,13 @@
__this_library_is_now_part_of_libc
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znam
_ZnamRKSt9nothrow_t
_Znwm
_ZnwmRKSt9nothrow_t
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
android_set_abort_message

View File

@@ -4,24 +4,10 @@ SHA1Transform
SHA1Update
_Exit
_Z16__libc_init_vdsov
_ZN11ScopedTraceC1EPKc
_ZN11ScopedTraceC2EPKc
_ZN11ScopedTraceD1Ev
_ZN11ScopedTraceD2Ev
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znaj
_ZnajRKSt9nothrow_t
_Znwj
_ZnwjRKSt9nothrow_t
__FD_CLR_chk
__FD_ISSET_chk
__FD_SET_chk
___mtctxres
__accept4
__android_set_abort_message
__assert
__assert2
__b64_ntop
@@ -29,12 +15,9 @@ __b64_pton
__brk
__cmsg_nxthdr
__connect
__ctype_get_mb_cur_max
__cxa_atexit
__cxa_finalize
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
__divdi3
__dn_comp
__dn_count_labels
@@ -142,7 +125,6 @@ __sched_cpualloc
__sched_cpucount
__sched_cpufree
__sched_getaffinity
__set_errno
__set_tid_address
__set_tls
__sigaction
@@ -203,6 +185,7 @@ _getshort
_longjmp
_memset16
_memset32
_resolv_delete_cache_for_net
_resolv_flush_cache_for_net
_resolv_set_nameservers_for_net
_setjmp
@@ -220,6 +203,7 @@ alphasort64
android_getaddrinfofornet
android_gethostbyaddrfornet
android_gethostbynamefornet
android_set_abort_message
arc4random
arc4random_buf
arc4random_uniform
@@ -858,6 +842,8 @@ setbuffer
setegid
setenv
seteuid
setfsgid
setfsuid
setgid
setgroups
setitimer

View File

@@ -1,12 +1,9 @@
_ZSt7nothrow
__bionic_brk
__isthreaded
__libc_malloc_dispatch
__p_class_syms
__p_type_syms
__page_shift
__page_size
__popcount_tab
__progname
__sF
__stack_chk_guard

View File

@@ -1 +1,13 @@
__this_library_is_now_part_of_libc
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znaj
_ZnajRKSt9nothrow_t
_Znwj
_ZnwjRKSt9nothrow_t
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
android_set_abort_message

View File

@@ -1,33 +1,16 @@
_Exit
_Z16__libc_init_vdsov
_ZN11ScopedTraceC1EPKc
_ZN11ScopedTraceC2EPKc
_ZN11ScopedTraceD1Ev
_ZN11ScopedTraceD2Ev
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znam
_ZnamRKSt9nothrow_t
_Znwm
_ZnwmRKSt9nothrow_t
__FD_CLR_chk
__FD_ISSET_chk
__FD_SET_chk
___mtctxres
__android_set_abort_message
__assert
__assert2
__b64_ntop
__b64_pton
__cmsg_nxthdr
__ctype_get_mb_cur_max
__cxa_atexit
__cxa_finalize
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
__dn_comp
__dn_count_labels
__dn_skipname
@@ -145,6 +128,7 @@ _flush_cache
_getlong
_getshort
_longjmp
_resolv_delete_cache_for_net
_resolv_flush_cache_for_net
_resolv_set_nameservers_for_net
_setjmp
@@ -162,6 +146,7 @@ alphasort64
android_getaddrinfofornet
android_gethostbyaddrfornet
android_gethostbynamefornet
android_set_abort_message
arc4random
arc4random_buf
arc4random_uniform
@@ -772,6 +757,8 @@ setbuffer
setegid
setenv
seteuid
setfsgid
setfsuid
setgid
setgroups
setitimer

View File

@@ -1,6 +1,4 @@
_ZSt7nothrow
__isthreaded
__libc_malloc_dispatch
__p_class_syms
__p_type_syms
__progname

View File

@@ -1 +1,13 @@
__this_library_is_now_part_of_libc
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znam
_ZnamRKSt9nothrow_t
_Znwm
_ZnwmRKSt9nothrow_t
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
android_set_abort_message

View File

@@ -37,25 +37,17 @@
#ifndef _I386_ASM_H_
#define _I386_ASM_H_
#ifdef PIC
#define PIC_PROLOGUE \
pushl %ebx; \
call 1f; \
1: \
call 666f; \
666: \
popl %ebx; \
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
addl $_GLOBAL_OFFSET_TABLE_+[.-666b], %ebx
#define PIC_EPILOGUE \
popl %ebx
#define PIC_PLT(x) x@PLT
#define PIC_GOT(x) x@GOT(%ebx)
#define PIC_GOTOFF(x) x@GOTOFF(%ebx)
#else
#define PIC_PROLOGUE
#define PIC_EPILOGUE
#define PIC_PLT(x) x
#define PIC_GOT(x) x
#define PIC_GOTOFF(x) x
#endif
/* let kernels and others override entrypoint alignment */
#if !defined(_ALIGN_TEXT) && !defined(_KERNEL)

View File

@@ -4,24 +4,10 @@ SHA1Transform
SHA1Update
_Exit
_Z16__libc_init_vdsov
_ZN11ScopedTraceC1EPKc
_ZN11ScopedTraceC2EPKc
_ZN11ScopedTraceD1Ev
_ZN11ScopedTraceD2Ev
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znaj
_ZnajRKSt9nothrow_t
_Znwj
_ZnwjRKSt9nothrow_t
__FD_CLR_chk
__FD_ISSET_chk
__FD_SET_chk
___mtctxres
__accept4
__android_set_abort_message
__assert
__assert2
__b64_ntop
@@ -29,12 +15,9 @@ __b64_pton
__brk
__cmsg_nxthdr
__connect
__ctype_get_mb_cur_max
__cxa_atexit
__cxa_finalize
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
__divdi3
__dn_comp
__dn_count_labels
@@ -142,7 +125,6 @@ __sched_cpualloc
__sched_cpucount
__sched_cpufree
__sched_getaffinity
__set_errno
__set_thread_area
__set_tid_address
__sigaction
@@ -200,6 +182,7 @@ _exit
_getlong
_getshort
_longjmp
_resolv_delete_cache_for_net
_resolv_flush_cache_for_net
_resolv_set_nameservers_for_net
_setjmp
@@ -217,6 +200,7 @@ alphasort64
android_getaddrinfofornet
android_gethostbyaddrfornet
android_gethostbynamefornet
android_set_abort_message
arc4random
arc4random_buf
arc4random_uniform
@@ -854,6 +838,8 @@ setbuffer
setegid
setenv
seteuid
setfsgid
setfsuid
setgid
setgroups
setitimer

View File

@@ -1,7 +1,5 @@
_ZSt7nothrow
__bionic_brk
__isthreaded
__libc_malloc_dispatch
__p_class_syms
__p_type_syms
__page_shift

View File

@@ -1 +1,13 @@
__this_library_is_now_part_of_libc
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znaj
_ZnajRKSt9nothrow_t
_Znwj
_ZnwjRKSt9nothrow_t
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
android_set_abort_message

View File

@@ -37,13 +37,8 @@
#ifndef _AMD64_ASM_H_
#define _AMD64_ASM_H_
#ifdef __PIC__
#define PIC_PLT(x) x@PLT
#define PIC_GOT(x) x@GOTPCREL(%rip)
#else
#define PIC_PLT(x) x
#define PIC_GOT(x) x
#endif
/* let kernels and others override entrypoint alignment */
#ifndef _ALIGN_TEXT

View File

@@ -1,33 +1,16 @@
_Exit
_Z16__libc_init_vdsov
_ZN11ScopedTraceC1EPKc
_ZN11ScopedTraceC2EPKc
_ZN11ScopedTraceD1Ev
_ZN11ScopedTraceD2Ev
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znam
_ZnamRKSt9nothrow_t
_Znwm
_ZnwmRKSt9nothrow_t
__FD_CLR_chk
__FD_ISSET_chk
__FD_SET_chk
___mtctxres
__android_set_abort_message
__assert
__assert2
__b64_ntop
__b64_pton
__cmsg_nxthdr
__ctype_get_mb_cur_max
__cxa_atexit
__cxa_finalize
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
__dn_comp
__dn_count_labels
__dn_skipname
@@ -144,6 +127,7 @@ _exit
_getlong
_getshort
_longjmp
_resolv_delete_cache_for_net
_resolv_flush_cache_for_net
_resolv_set_nameservers_for_net
_setjmp
@@ -161,6 +145,7 @@ alphasort64
android_getaddrinfofornet
android_gethostbyaddrfornet
android_gethostbynamefornet
android_set_abort_message
arc4random
arc4random_buf
arc4random_uniform
@@ -771,6 +756,8 @@ setbuffer
setegid
setenv
seteuid
setfsgid
setfsuid
setgid
setgroups
setitimer

View File

@@ -1,6 +1,4 @@
_ZSt7nothrow
__isthreaded
__libc_malloc_dispatch
__p_class_syms
__p_type_syms
__progname

View File

@@ -1 +1,13 @@
__this_library_is_now_part_of_libc
_ZdaPv
_ZdaPvRKSt9nothrow_t
_ZdlPv
_ZdlPvRKSt9nothrow_t
_Znam
_ZnamRKSt9nothrow_t
_Znwm
_ZnwmRKSt9nothrow_t
__cxa_guard_abort
__cxa_guard_acquire
__cxa_guard_release
__cxa_pure_virtual
android_set_abort_message

View File

@@ -16,56 +16,63 @@
***
****************************************************************************
****************************************************************************/
#ifndef _LINUX_ION_H
#define _LINUX_ION_H
#ifndef _UAPI_LINUX_ION_H
#define _UAPI_LINUX_ION_H
#include <linux/ioctl.h>
#include <linux/types.h>
struct ion_handle;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
typedef int ion_user_handle_t;
enum ion_heap_type {
ION_HEAP_TYPE_SYSTEM,
ION_HEAP_TYPE_SYSTEM_CONTIG,
ION_HEAP_TYPE_CARVEOUT,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
ION_HEAP_TYPE_CARVEOUT,
ION_HEAP_TYPE_CHUNK,
ION_HEAP_TYPE_DMA,
ION_HEAP_TYPE_CUSTOM,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
ION_NUM_HEAPS = 16,
};
#define ION_HEAP_SYSTEM_MASK (1 << ION_HEAP_TYPE_SYSTEM)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ION_HEAP_SYSTEM_CONTIG_MASK (1 << ION_HEAP_TYPE_SYSTEM_CONTIG)
#define ION_HEAP_CARVEOUT_MASK (1 << ION_HEAP_TYPE_CARVEOUT)
#define ION_FLAG_CACHED 1
#define ION_FLAG_CACHED_NEEDS_SYNC 2
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ION_HEAP_CARVEOUT_MASK (1 << ION_HEAP_TYPE_CARVEOUT)
#define ION_HEAP_TYPE_DMA_MASK (1 << ION_HEAP_TYPE_DMA)
#define ION_NUM_HEAP_IDS sizeof(unsigned int) * 8
#define ION_FLAG_CACHED 1
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ION_FLAG_CACHED_NEEDS_SYNC 2
struct ion_allocation_data {
size_t len;
size_t align;
unsigned int heap_mask;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
unsigned int heap_id_mask;
unsigned int flags;
struct ion_handle *handle;
ion_user_handle_t handle;
};
struct ion_fd_data {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct ion_handle *handle;
struct ion_fd_data {
ion_user_handle_t handle;
int fd;
};
struct ion_handle_data {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct ion_handle *handle;
struct ion_handle_data {
ion_user_handle_t handle;
};
struct ion_custom_data {
unsigned int cmd;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
unsigned int cmd;
unsigned long arg;
};
#define ION_IOC_MAGIC 'I'
#define ION_IOC_ALLOC _IOWR(ION_IOC_MAGIC, 0, struct ion_allocation_data)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ION_IOC_ALLOC _IOWR(ION_IOC_MAGIC, 0, struct ion_allocation_data)
#define ION_IOC_FREE _IOWR(ION_IOC_MAGIC, 1, struct ion_handle_data)
#define ION_IOC_MAP _IOWR(ION_IOC_MAGIC, 2, struct ion_fd_data)
#define ION_IOC_SHARE _IOWR(ION_IOC_MAGIC, 4, struct ion_fd_data)
#define ION_IOC_IMPORT _IOWR(ION_IOC_MAGIC, 5, struct ion_fd_data)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ION_IOC_IMPORT _IOWR(ION_IOC_MAGIC, 5, struct ion_fd_data)
#define ION_IOC_SYNC _IOWR(ION_IOC_MAGIC, 7, struct ion_fd_data)
#define ION_IOC_CUSTOM _IOWR(ION_IOC_MAGIC, 6, struct ion_custom_data)
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */

View File

@@ -36,11 +36,11 @@ extern const union __nan_un {
float __uf;
} __nan;
#if __GNUC_PREREQ__(3, 3) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
#if __GNUC_PREREQ(3, 3) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
#define __MATH_BUILTIN_CONSTANTS
#endif
#if __GNUC_PREREQ__(3, 0) && !defined(__INTEL_COMPILER)
#if __GNUC_PREREQ(3, 0) && !defined(__INTEL_COMPILER)
#define __MATH_BUILTIN_RELOPS
#endif

View File

@@ -1,23 +0,0 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _SHA1_H_
#define _SHA1_H_
#warning "include <sys/sha1.h> instead for better portability"
#include <sys/sha1.h>
#endif

View File

@@ -31,17 +31,142 @@
#define _STDATOMIC_H_
#include <sys/cdefs.h>
#if defined(__cplusplus) && defined(_USING_LIBCXX)
# ifdef __clang__
# if __has_feature(cxx_atomic)
# define _STDATOMIC_HAVE_ATOMIC
# endif
# else /* gcc */
# if __GNUC_PREREQ(4, 7)
# define _STDATOMIC_HAVE_ATOMIC
# endif
# endif
#endif
#ifdef _STDATOMIC_HAVE_ATOMIC
/* We have a usable C++ <atomic>; use it instead. */
#include <atomic>
#undef _Atomic
/* Also defined by <atomic> for gcc. But not used in macros. */
/* Also a clang intrinsic. */
/* Should not be used by client code before this file is */
/* included. The definitions in <atomic> themselves see */
/* the old definition, as they should. */
/* Client code sees the following definition. */
#define _Atomic(t) std::atomic<t>
using std::atomic_is_lock_free;
using std::atomic_init;
using std::atomic_store;
using std::atomic_store_explicit;
using std::atomic_load;
using std::atomic_load_explicit;
using std::atomic_exchange;
using std::atomic_exchange_explicit;
using std::atomic_compare_exchange_strong;
using std::atomic_compare_exchange_strong_explicit;
using std::atomic_compare_exchange_weak;
using std::atomic_compare_exchange_weak_explicit;
using std::atomic_fetch_add;
using std::atomic_fetch_add_explicit;
using std::atomic_fetch_sub;
using std::atomic_fetch_sub_explicit;
using std::atomic_fetch_or;
using std::atomic_fetch_or_explicit;
using std::atomic_fetch_xor;
using std::atomic_fetch_xor_explicit;
using std::atomic_fetch_and;
using std::atomic_fetch_and_explicit;
using std::atomic_thread_fence;
using std::atomic_signal_fence;
using std::memory_order;
using std::memory_order_relaxed;
using std::memory_order_consume;
using std::memory_order_release;
using std::memory_order_acq_rel;
using std::memory_order_seq_cst;
using std::atomic_bool;
using std::atomic_char;
using std::atomic_schar;
using std::atomic_uchar;
using std::atomic_short;
using std::atomic_ushort;
using std::atomic_int;
using std::atomic_uint;
using std::atomic_long;
using std::atomic_ulong;
using std::atomic_llong;
using std::atomic_ullong;
using std::atomic_char16_t;
using std::atomic_char32_t;
using std::atomic_wchar_t;
using std::atomic_int_least8_t;
using std::atomic_uint_least8_t;
using std::atomic_int_least16_t;
using std::atomic_uint_least16_t;
using std::atomic_int_least32_t;
using std::atomic_uint_least32_t;
using std::atomic_int_least64_t;
using std::atomic_uint_least64_t;
using std::atomic_int_fast8_t;
using std::atomic_uint_fast8_t;
using std::atomic_int_fast16_t;
using std::atomic_uint_fast16_t;
using std::atomic_int_fast32_t;
using std::atomic_uint_fast32_t;
using std::atomic_int_fast64_t;
using std::atomic_uint_fast64_t;
using std::atomic_intptr_t;
using std::atomic_uintptr_t;
using std::atomic_size_t;
using std::atomic_ptrdiff_t;
using std::atomic_intmax_t;
using std::atomic_uintmax_t;
#else /* <atomic> unavailable, possibly because this is C, not C++ */
#include <sys/types.h>
#include <stdbool.h>
#if __has_extension(c_atomic) || __has_extension(cxx_atomic)
#define __CLANG_ATOMICS
#elif __GNUC_PREREQ__(4, 7)
#define __GNUC_ATOMICS
#elif defined(__GNUC__)
#define __SYNC_ATOMICS
/*
* C: Do it ourselves.
* Note that the runtime representation defined here should be compatible
* with the C++ one, i.e. an _Atomic(T) needs to contain the same
* bits as a T.
*/
#include <stddef.h> /* For ptrdiff_t. */
#include <stdint.h> /* TODO: Should pollute namespace less. */
#if __STDC_VERSION__ >= 201112L
# include <uchar.h> /* For char16_t and char32_t. */
#endif
#ifdef __clang__
# if __has_extension(c_atomic) || __has_extension(cxx_atomic)
# define __CLANG_ATOMICS
# else
# error "stdatomic.h does not support your compiler"
# endif
# if __has_builtin(__sync_swap)
# define __HAS_BUILTIN_SYNC_SWAP
# endif
#else
#error "stdatomic.h does not support your compiler"
# if __GNUC_PREREQ(4, 7)
# define __GNUC_ATOMICS
# else
# define __SYNC_ATOMICS
# ifdef __cplusplus
# define __ATOMICS_AVOID_DOT_INIT
# endif
# endif
#endif
/*
@@ -50,33 +175,53 @@
#ifdef __GCC_ATOMIC_BOOL_LOCK_FREE
#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_BOOL_LOCK_FREE 2 /* For all modern platforms */
#endif
#ifdef __GCC_ATOMIC_CHAR_LOCK_FREE
#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_CHAR_LOCK_FREE 2
#endif
#ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE
#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_CHAR16_T_LOCK_FREE 2
#endif
#ifdef __GCC_ATOMIC_CHAR32_T_LOCK_FREE
#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_CHAR32_T_LOCK_FREE 2
#endif
#ifdef __GCC_ATOMIC_WCHAR_T_LOCK_FREE
#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_WCHAR_T_LOCK_FREE 2
#endif
#ifdef __GCC_ATOMIC_SHORT_LOCK_FREE
#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_SHORT_LOCK_FREE 2
#endif
#ifdef __GCC_ATOMIC_INT_LOCK_FREE
#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_INT_LOCK_FREE 2
#endif
#ifdef __GCC_ATOMIC_LONG_LOCK_FREE
#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_LONG_LOCK_FREE 2
#endif
#ifdef __GCC_ATOMIC_LLONG_LOCK_FREE
#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_LLONG_LOCK_FREE 1 /* maybe */
#endif
#ifdef __GCC_ATOMIC_POINTER_LOCK_FREE
#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE
#elif defined(__SYNC_ATOMICS)
#define ATOMIC_POINTER_LOCK_FREE 2
#endif
/*
@@ -87,7 +232,11 @@
#define ATOMIC_VAR_INIT(value) (value)
#define atomic_init(obj, value) __c11_atomic_init(obj, value)
#else
#ifdef __ATOMICS_AVOID_DOT_INIT
#define ATOMIC_VAR_INIT(value) { value }
#else
#define ATOMIC_VAR_INIT(value) { .__val = (value) }
#endif
#define atomic_init(obj, value) ((void)((obj)->__val = (value)))
#endif
@@ -121,6 +270,8 @@
*
* The memory_order_* constants that denote the barrier behaviour of the
* atomic operations.
* The enum values must be identical to those used by the
* C++ <atomic> header.
*/
typedef enum {
@@ -137,7 +288,7 @@ typedef enum {
*/
static __inline void
atomic_thread_fence(memory_order __order __unused)
atomic_thread_fence(memory_order __order __attribute__((unused)))
{
#ifdef __CLANG_ATOMICS
@@ -150,7 +301,7 @@ atomic_thread_fence(memory_order __order __unused)
}
static __inline void
atomic_signal_fence(memory_order __order __unused)
atomic_signal_fence(memory_order __order __attribute__((unused)))
{
#ifdef __CLANG_ATOMICS
@@ -172,7 +323,7 @@ atomic_signal_fence(memory_order __order __unused)
((void)(obj), (_Bool)1)
#elif defined(__CLANG_ATOMICS)
#define atomic_is_lock_free(obj) \
__atomic_is_lock_free(sizeof(*(obj)), obj)
__c11_atomic_is_lock_free(sizeof(*(obj)))
#elif defined(__GNUC_ATOMICS)
#define atomic_is_lock_free(obj) \
__atomic_is_lock_free(sizeof((obj)->__val), &(obj)->__val)
@@ -185,7 +336,7 @@ atomic_signal_fence(memory_order __order __unused)
* 7.17.6 Atomic integer types.
*/
#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic)
#ifndef __CLANG_ATOMICS
/*
* No native support for _Atomic(). Place object in structure to prevent
* most forms of direct non-atomic access.
@@ -306,7 +457,7 @@ typedef _Atomic(uintmax_t) atomic_uintmax_t;
desired, success, failure) \
atomic_compare_exchange_strong_explicit(object, expected, \
desired, success, failure)
#if __has_builtin(__sync_swap)
#ifdef __HAS_BUILTIN_SYNC_SWAP
/* Clang provides a full-barrier atomic exchange - use it if available. */
#define atomic_exchange_explicit(object, desired, order) \
((void)(order), __sync_swap(&(object)->__val, desired))
@@ -386,7 +537,7 @@ typedef struct {
atomic_bool __flag;
} atomic_flag;
#define ATOMIC_FLAG_INIT { ATOMIC_VAR_INIT(0) }
#define ATOMIC_FLAG_INIT { ATOMIC_VAR_INIT(false) }
static __inline bool
atomic_flag_test_and_set_explicit(volatile atomic_flag *__object,
@@ -419,4 +570,6 @@ atomic_flag_clear(volatile atomic_flag *__object)
}
#endif /* !_KERNEL */
#endif /* <atomic> unavailable */
#endif /* !_STDATOMIC_H_ */

View File

@@ -58,10 +58,17 @@ typedef off_t fpos_t; /* stdio file position type */
*/
/* stdio buffers */
#if defined(__LP64__)
struct __sbuf {
unsigned char* _base;
size_t _size;
};
#else
struct __sbuf {
unsigned char *_base;
int _size;
};
#endif
/*
* stdio state variables.
@@ -94,8 +101,13 @@ typedef struct __sFILE {
unsigned char *_p; /* current position in (some) buffer */
int _r; /* read space left for getc() */
int _w; /* write space left for putc() */
#if defined(__LP64__)
int _flags; /* flags, below; this FILE is free if 0 */
int _file; /* fileno, if Unix descriptor, else -1 */
#else
short _flags; /* flags, below; this FILE is free if 0 */
short _file; /* fileno, if Unix descriptor, else -1 */
#endif
struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
int _lbfsize; /* 0 or -_bf._size, for inline putc */

View File

@@ -111,12 +111,6 @@ void arc4random_buf(void*, size_t);
#define RAND_MAX 0x7fffffff
/* Work around x86/x86-64 libvpx build breakage caused by postproc_x86.c. */
#if (defined(__i386__) || defined(__x86_64__)) && defined(rand)
#undef rand
#define __rand lrand48
#endif
int rand(void);
int rand_r(unsigned int*);
void srand(unsigned int);
@@ -167,7 +161,8 @@ extern int mbtowc(wchar_t *, const char *, size_t);
extern int wctomb(char *, wchar_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);
#define MB_CUR_MAX 4U
extern size_t __ctype_get_mb_cur_max(void);
#define MB_CUR_MAX __ctype_get_mb_cur_max()
__END_DECLS

View File

@@ -94,9 +94,6 @@ extern size_t strxfrm_l(char* __restrict, const char* __restrict, size_t, locale
#if defined(__BIONIC_FORTIFY)
__errordecl(__memcpy_dest_size_error, "memcpy: prevented write past end of buffer");
__errordecl(__memcpy_src_size_error, "memcpy: prevented read past end of buffer");
__BIONIC_FORTIFY_INLINE
void* memcpy(void* __restrict dest, const void* __restrict src, size_t copy_amount) {
char *d = (char *) dest;
@@ -104,14 +101,6 @@ void* memcpy(void* __restrict dest, const void* __restrict src, size_t copy_amou
size_t s_len = __bos0(s);
size_t d_len = __bos0(d);
if (__builtin_constant_p(copy_amount) && (copy_amount > d_len)) {
__memcpy_dest_size_error();
}
if (__builtin_constant_p(copy_amount) && (copy_amount > s_len)) {
__memcpy_src_size_error();
}
return __builtin___memcpy_chk(dest, src, copy_amount, d_len);
}
@@ -130,16 +119,12 @@ char* strcpy(char* __restrict dest, const char* __restrict src) {
return __builtin___strcpy_chk(dest, src, __bos(dest));
}
__errordecl(__stpncpy_error, "stpncpy: prevented write past end of buffer");
extern char* __stpncpy_chk2(char* __restrict, const char* __restrict, size_t, size_t, size_t);
__BIONIC_FORTIFY_INLINE
char* stpncpy(char* __restrict dest, const char* __restrict src, size_t n) {
size_t bos_dest = __bos(dest);
size_t bos_src = __bos(src);
if (__builtin_constant_p(n) && (n > bos_dest)) {
__stpncpy_error();
}
if (bos_src == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
return __builtin___stpncpy_chk(dest, src, n, bos_dest);
@@ -157,16 +142,12 @@ char* stpncpy(char* __restrict dest, const char* __restrict src, size_t n) {
return __stpncpy_chk2(dest, src, n, bos_dest, bos_src);
}
__errordecl(__strncpy_error, "strncpy: prevented write past end of buffer");
extern char* __strncpy_chk2(char* __restrict, const char* __restrict, size_t, size_t, size_t);
__BIONIC_FORTIFY_INLINE
char* strncpy(char* __restrict dest, const char* __restrict src, size_t n) {
size_t bos_dest = __bos(dest);
size_t bos_src = __bos(src);
if (__builtin_constant_p(n) && (n > bos_dest)) {
__strncpy_error();
}
if (bos_src == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
return __builtin___strncpy_chk(dest, src, n, bos_dest);
@@ -201,7 +182,6 @@ void* memset(void *s, int c, size_t n) {
extern size_t __strlcpy_real(char* __restrict, const char* __restrict, size_t)
__asm__(__USER_LABEL_PREFIX__ "strlcpy");
__errordecl(__strlcpy_error, "strlcpy: prevented write past end of buffer");
extern size_t __strlcpy_chk(char *, const char *, size_t, size_t);
__BIONIC_FORTIFY_INLINE
@@ -219,12 +199,6 @@ size_t strlcpy(char* __restrict dest, const char* __restrict src, size_t size) {
if (__builtin_constant_p(size) && (size <= bos)) {
return __strlcpy_real(dest, src, size);
}
// Compiler can prove, at compile time, that the passed in size
// is always > the actual object size. Force a compiler error.
if (__builtin_constant_p(size) && (size > bos)) {
__strlcpy_error();
}
#endif /* !defined(__clang__) */
return __strlcpy_chk(dest, src, size, bos);
@@ -232,7 +206,6 @@ size_t strlcpy(char* __restrict dest, const char* __restrict src, size_t size) {
extern size_t __strlcat_real(char* __restrict, const char* __restrict, size_t)
__asm__(__USER_LABEL_PREFIX__ "strlcat");
__errordecl(__strlcat_error, "strlcat: prevented write past end of buffer");
extern size_t __strlcat_chk(char* __restrict, const char* __restrict, size_t, size_t);
@@ -251,12 +224,6 @@ size_t strlcat(char* __restrict dest, const char* __restrict src, size_t size) {
if (__builtin_constant_p(size) && (size <= bos)) {
return __strlcat_real(dest, src, size);
}
// Compiler can prove, at compile time, that the passed in size
// is always > the actual object size. Force a compiler error.
if (__builtin_constant_p(size) && (size > bos)) {
__strlcat_error();
}
#endif /* !defined(__clang__) */
return __strlcat_chk(dest, src, size, bos);

View File

@@ -60,18 +60,18 @@
* or later, for e.g. features that appeared in a particular version
* of GNU C. Usage:
*
* #if __GNUC_PREREQ__(major, minor)
* #if __GNUC_PREREQ(major, minor)
* ...cool feature...
* #else
* ...delete feature...
* #endif
*/
#ifdef __GNUC__
#define __GNUC_PREREQ__(x, y) \
#define __GNUC_PREREQ(x, y) \
((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || \
(__GNUC__ > (x)))
#else
#define __GNUC_PREREQ__(x, y) 0
#define __GNUC_PREREQ(x, y) 0
#endif
#include <sys/cdefs_elf.h>
@@ -163,7 +163,7 @@
* GCC2 provides __extension__ to suppress warnings for various GNU C
* language extensions under "-ansi -pedantic".
*/
#if !__GNUC_PREREQ__(2, 0)
#if !__GNUC_PREREQ(2, 0)
#define __extension__ /* delete __extension__ if non-gcc or gcc1 */
#endif
@@ -175,7 +175,7 @@
* these work for GNU C++ (modulo a slight glitch in the C++ grammar
* in the distribution version of 2.5.5).
*/
#if !__GNUC_PREREQ__(2, 5)
#if !__GNUC_PREREQ(2, 5)
#define __attribute__(x) /* delete __attribute__ if non-gcc or gcc1 */
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define __dead __volatile
@@ -189,7 +189,7 @@
#define __pure
#endif
#if __GNUC_PREREQ__(2, 7)
#if __GNUC_PREREQ(2, 7)
#define __unused __attribute__((__unused__))
#else
#define __unused /* delete */
@@ -197,13 +197,13 @@
#define __pure2 __attribute__((__const__)) /* Android-added: used by FreeBSD libm */
#if __GNUC_PREREQ__(3, 1)
#if __GNUC_PREREQ(3, 1)
#define __used __attribute__((__used__))
#else
#define __used /* delete */
#endif
#if __GNUC_PREREQ__(2, 7)
#if __GNUC_PREREQ(2, 7)
#define __packed __attribute__((__packed__))
#define __aligned(x) __attribute__((__aligned__(x)))
#define __section(x) __attribute__((__section__(x)))
@@ -217,11 +217,11 @@
#define __section(x) error: no __section for this compiler
#endif
#if !__GNUC_PREREQ__(2, 8)
#if !__GNUC_PREREQ(2, 8)
#define __extension__
#endif
#if __GNUC_PREREQ__(2, 8)
#if __GNUC_PREREQ(2, 8)
#define __statement(x) __extension__(x)
#elif defined(lint)
#define __statement(x) (0)
@@ -241,7 +241,7 @@
#if defined(__STDC__VERSION__) && __STDC_VERSION__ >= 199901L
#define __restrict restrict
#else
#if !__GNUC_PREREQ__(2, 92)
#if !__GNUC_PREREQ(2, 92)
#define __restrict /* delete __restrict when not supported */
#endif
#endif
@@ -251,9 +251,9 @@
* in GCC 2.95.
*/
#if !defined(__STDC_VERSION__) || !(__STDC_VERSION__ >= 199901L)
#if __GNUC_PREREQ__(2, 6)
#if __GNUC_PREREQ(2, 6)
#define __func__ __PRETTY_FUNCTION__
#elif __GNUC_PREREQ__(2, 4)
#elif __GNUC_PREREQ(2, 4)
#define __func__ __FUNCTION__
#else
#define __func__ ""
@@ -286,7 +286,7 @@
* register values. This is gcc specific, the version is more or less
* arbitrary, might work with older compilers.
*/
#if __GNUC_PREREQ__(2, 95)
#if __GNUC_PREREQ(2, 95)
#define __insn_barrier() __asm __volatile("":::"memory")
#else
#define __insn_barrier() /* */
@@ -320,7 +320,7 @@
* basic block reordering that this affects can often generate
* larger code.
*/
#if __GNUC_PREREQ__(2, 96)
#if __GNUC_PREREQ(2, 96)
#define __predict_true(exp) __builtin_expect((exp) != 0, 1)
#define __predict_false(exp) __builtin_expect((exp) != 0, 0)
#else
@@ -328,7 +328,7 @@
#define __predict_false(exp) (exp)
#endif
#if __GNUC_PREREQ__(2, 96)
#if __GNUC_PREREQ(2, 96)
#define __noreturn __attribute__((__noreturn__))
#define __mallocfunc __attribute__((malloc))
#define __purefunc __attribute__((pure))
@@ -338,19 +338,19 @@
#define __purefunc
#endif
#if __GNUC_PREREQ__(3, 1)
#if __GNUC_PREREQ(3, 1)
#define __always_inline __attribute__((__always_inline__))
#else
#define __always_inline
#endif
#if __GNUC_PREREQ__(3, 4)
#if __GNUC_PREREQ(3, 4)
#define __wur __attribute__((__warn_unused_result__))
#else
#define __wur
#endif
#if __GNUC_PREREQ__(4, 3)
#if __GNUC_PREREQ(4, 3)
#define __errordecl(name, msg) extern void name(void) __attribute__((__error__(msg)))
#define __warnattr(msg) __attribute__((__warning__(msg)))
#else

View File

@@ -25,6 +25,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _SYS_FSUID_H_
#define _SYS_FSUID_H_
@@ -33,10 +34,8 @@
__BEGIN_DECLS
#if 0 /* MISSING FROM BIONIC */
extern int setfsuid(uid_t);
extern int setfsgid(gid_t);
#endif /* MISSING */
__END_DECLS