Merge "Remove the always-true __INTRODUCED_IN() annotations." am: fee0b45480
Original change: https://android-review.googlesource.com/c/platform/bionic/+/2627536 Change-Id: I68ab2f603c1d0a8fab9b145d8cdbc653eaed5f5e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
7fc60f8d93
52 changed files with 221 additions and 313 deletions
|
@ -177,11 +177,8 @@ typedef struct {
|
|||
* Opens the given library. The `__filename` and `__flags` arguments are
|
||||
* the same as for [dlopen(3)](http://man7.org/linux/man-pages/man3/dlopen.3.html),
|
||||
* with the Android-specific flags supplied via the `flags` member of `__info`.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
void* _Nullable android_dlopen_ext(const char* _Nullable __filename, int __flags, const android_dlextinfo* _Nullable __info)
|
||||
__INTRODUCED_IN(21);
|
||||
void* _Nullable android_dlopen_ext(const char* _Nullable __filename, int __flags, const android_dlextinfo* _Nullable __info);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
|
|
@ -43,9 +43,7 @@ __BEGIN_DECLS
|
|||
* This is meant for use by libraries that deliberately abort so that they can
|
||||
* provide an explanation. It is used within bionic to implement assert() and
|
||||
* all FORTIFY/fdsan aborts.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
void android_set_abort_message(const char* _Nullable __msg) __INTRODUCED_IN(21);
|
||||
void android_set_abort_message(const char* _Nullable __msg);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -38,10 +38,10 @@ __BEGIN_DECLS
|
|||
|
||||
in_addr_t inet_addr(const char* _Nonnull __s);
|
||||
int inet_aton(const char* _Nonnull __s, struct in_addr* _Nullable __addr);
|
||||
in_addr_t inet_lnaof(struct in_addr __addr) __INTRODUCED_IN(21);
|
||||
struct in_addr inet_makeaddr(in_addr_t __net, in_addr_t __host) __INTRODUCED_IN(21);
|
||||
in_addr_t inet_netof(struct in_addr __addr) __INTRODUCED_IN(21);
|
||||
in_addr_t inet_network(const char* _Nonnull __s) __INTRODUCED_IN(21);
|
||||
in_addr_t inet_lnaof(struct in_addr __addr);
|
||||
struct in_addr inet_makeaddr(in_addr_t __net, in_addr_t __host);
|
||||
in_addr_t inet_netof(struct in_addr __addr);
|
||||
in_addr_t inet_network(const char* _Nonnull __s);
|
||||
char* _Nonnull inet_ntoa(struct in_addr __addr);
|
||||
const char* _Nullable inet_ntop(int __af, const void* _Nonnull __src, char* _Nonnull __dst, socklen_t __size);
|
||||
unsigned int inet_nsap_addr(const char* _Nonnull __ascii, unsigned char* _Nonnull __binary, int __n);
|
||||
|
|
|
@ -30,8 +30,8 @@
|
|||
#error "Never include this file directly; instead, include <fcntl.h>"
|
||||
#endif
|
||||
|
||||
int __open_2(const char* _Nonnull, int) __INTRODUCED_IN(17);
|
||||
int __openat_2(int, const char* _Nonnull, int) __INTRODUCED_IN(17);
|
||||
int __open_2(const char* _Nonnull, int);
|
||||
int __openat_2(int, const char* _Nonnull, int);
|
||||
/*
|
||||
* These are the easiest way to call the real open even in clang FORTIFY.
|
||||
*/
|
||||
|
|
|
@ -32,8 +32,7 @@
|
|||
|
||||
extern ssize_t __sendto_chk(int, const void* _Nonnull, size_t, size_t, int, const struct sockaddr* _Nullable,
|
||||
socklen_t) __INTRODUCED_IN(26);
|
||||
ssize_t __recvfrom_chk(int, void* _Nullable, size_t, size_t, int, struct sockaddr* _Nullable,
|
||||
socklen_t* _Nullable) __INTRODUCED_IN(21);
|
||||
ssize_t __recvfrom_chk(int, void* _Nullable, size_t, size_t, int, struct sockaddr* _Nullable, socklen_t* _Nullable);
|
||||
|
||||
#if defined(__BIONIC_FORTIFY)
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
mode_t __umask_chk(mode_t) __INTRODUCED_IN(18);
|
||||
mode_t __umask_chk(mode_t);
|
||||
mode_t __umask_real(mode_t mode) __RENAME(umask);
|
||||
|
||||
#if defined(__BIONIC_FORTIFY)
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#error "Never include this file directly; instead, include <stdio.h>"
|
||||
#endif
|
||||
|
||||
char* _Nullable __fgets_chk(char* _Nonnull, int, FILE* _Nonnull, size_t) __INTRODUCED_IN(17);
|
||||
char* _Nullable __fgets_chk(char* _Nonnull, int, FILE* _Nonnull, size_t);
|
||||
size_t __fread_chk(void* _Nonnull, size_t, size_t, FILE* _Nonnull, size_t) __INTRODUCED_IN(24);
|
||||
size_t __fwrite_chk(const void* _Nonnull, size_t, size_t, FILE* _Nonnull, size_t) __INTRODUCED_IN(24);
|
||||
|
||||
|
|
|
@ -32,10 +32,10 @@
|
|||
|
||||
void* _Nullable __memchr_chk(const void* _Nonnull, int, size_t, size_t) __INTRODUCED_IN(23);
|
||||
void* _Nullable __memrchr_chk(const void* _Nonnull, int, size_t, size_t) __INTRODUCED_IN(23);
|
||||
char* _Nonnull __stpncpy_chk2(char* _Nonnull, const char* _Nonnull, size_t, size_t, size_t) __INTRODUCED_IN(21);
|
||||
char* _Nonnull __strncpy_chk2(char* _Nonnull, const char* _Nonnull, size_t, size_t, size_t) __INTRODUCED_IN(21);
|
||||
size_t __strlcpy_chk(char* _Nonnull, const char* _Nonnull, size_t, size_t) __INTRODUCED_IN(17);
|
||||
size_t __strlcat_chk(char* _Nonnull, const char* _Nonnull, size_t, size_t) __INTRODUCED_IN(17);
|
||||
char* _Nonnull __stpncpy_chk2(char* _Nonnull, const char* _Nonnull, size_t, size_t, size_t);
|
||||
char* _Nonnull __strncpy_chk2(char* _Nonnull, const char* _Nonnull, size_t, size_t, size_t);
|
||||
size_t __strlcpy_chk(char* _Nonnull, const char* _Nonnull, size_t, size_t);
|
||||
size_t __strlcat_chk(char* _Nonnull, const char* _Nonnull, size_t, size_t);
|
||||
|
||||
#if defined(__BIONIC_FORTIFY)
|
||||
extern void* _Nullable __memrchr_real(const void* _Nonnull, int, size_t) __RENAME(memrchr);
|
||||
|
|
|
@ -43,7 +43,7 @@ ssize_t __pwrite_real(int, const void* _Nonnull, size_t, off_t) __RENAME(pwrite)
|
|||
ssize_t __pwrite64_chk(int, const void* _Nonnull, size_t, off64_t, size_t) __INTRODUCED_IN(24);
|
||||
ssize_t __pwrite64_real(int, const void* _Nonnull, size_t, off64_t) __RENAME(pwrite64);
|
||||
|
||||
ssize_t __read_chk(int, void* __BIONIC_COMPLICATED_NULLNESS, size_t, size_t) __INTRODUCED_IN(21);
|
||||
ssize_t __read_chk(int, void* __BIONIC_COMPLICATED_NULLNESS, size_t, size_t);
|
||||
ssize_t __write_chk(int, const void* __BIONIC_COMPLICATED_NULLNESS, size_t, size_t) __INTRODUCED_IN(24);
|
||||
ssize_t __readlink_chk(const char* _Nonnull, char* _Nonnull, size_t, size_t) __INTRODUCED_IN(23);
|
||||
ssize_t __readlinkat_chk(int dirfd, const char* _Nonnull, char* _Nonnull, size_t, size_t) __INTRODUCED_IN(23);
|
||||
|
|
|
@ -39,7 +39,7 @@ typedef __WINT_TYPE__ wint_t;
|
|||
|
||||
int iswalnum(wint_t __wc);
|
||||
int iswalpha(wint_t __wc);
|
||||
int iswblank(wint_t __wc) __INTRODUCED_IN(21);
|
||||
int iswblank(wint_t __wc);
|
||||
int iswcntrl(wint_t __wc);
|
||||
int iswdigit(wint_t __wc);
|
||||
int iswgraph(wint_t __wc);
|
||||
|
|
|
@ -123,10 +123,10 @@ struct dirent* _Nullable readdir(DIR* _Nonnull __dir);
|
|||
* or returns null and leaves `errno` unchanged at the end of the directory,
|
||||
* or returns null and sets `errno` on failure.
|
||||
*/
|
||||
struct dirent64* _Nullable readdir64(DIR* _Nonnull __dir) __INTRODUCED_IN(21);
|
||||
struct dirent64* _Nullable readdir64(DIR* _Nonnull __dir);
|
||||
|
||||
int readdir_r(DIR* _Nonnull __dir, struct dirent* _Nonnull __entry, struct dirent* _Nullable * _Nonnull __buffer) __attribute__((__deprecated__("readdir_r is deprecated; use readdir instead")));
|
||||
int readdir64_r(DIR* _Nonnull __dir, struct dirent64* _Nonnull __entry, struct dirent64* _Nullable * _Nonnull __buffer) __INTRODUCED_IN(21) __attribute__((__deprecated__("readdir64_r is deprecated; use readdir64 instead")));
|
||||
int readdir64_r(DIR* _Nonnull __dir, struct dirent64* _Nonnull __entry, struct dirent64* _Nullable * _Nonnull __buffer) __attribute__((__deprecated__("readdir64_r is deprecated; use readdir64 instead")));
|
||||
|
||||
/**
|
||||
* [closedir(3)](http://man7.org/linux/man-pages/man3/closedir.3.html)
|
||||
|
@ -179,10 +179,8 @@ int alphasort(const struct dirent* _Nonnull * _Nonnull __lhs, const struct diren
|
|||
/**
|
||||
* [alphasort64](http://man7.org/linux/man-pages/man3/alphasort.3.html) is a
|
||||
* comparator for use with scandir64() that uses strcmp().
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int alphasort64(const struct dirent64* _Nonnull * _Nonnull __lhs, const struct dirent64* _Nonnull * _Nonnull __rhs) __INTRODUCED_IN(21);
|
||||
int alphasort64(const struct dirent64* _Nonnull * _Nonnull __lhs, const struct dirent64* _Nonnull * _Nonnull __rhs);
|
||||
|
||||
/**
|
||||
* [scandir(3)](http://man7.org/linux/man-pages/man3/scandir.3.html)
|
||||
|
@ -205,10 +203,8 @@ int scandir(const char* _Nonnull __path, struct dirent* _Nonnull * _Nonnull * _N
|
|||
*
|
||||
* Returns the number of entries returned in the list on success,
|
||||
* and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int scandir64(const char* _Nonnull __path, struct dirent64* _Nonnull * _Nonnull * _Nonnull __name_list, int (* _Nullable __filter)(const struct dirent64* _Nonnull), int (* _Nullable __comparator)(const struct dirent64* _Nonnull * _Nonnull, const struct dirent64* _Nonnull * _Nonnull)) __INTRODUCED_IN(21);
|
||||
int scandir64(const char* _Nonnull __path, struct dirent64* _Nonnull * _Nonnull * _Nonnull __name_list, int (* _Nullable __filter)(const struct dirent64* _Nonnull), int (* _Nullable __comparator)(const struct dirent64* _Nonnull * _Nonnull, const struct dirent64* _Nonnull * _Nonnull));
|
||||
|
||||
#if defined(__USE_GNU)
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ __BEGIN_DECLS
|
|||
*/
|
||||
int creat(const char* _Nonnull __path, mode_t __mode);
|
||||
/** See creat(). */
|
||||
int creat64(const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(21);
|
||||
int creat64(const char* _Nonnull __path, mode_t __mode);
|
||||
|
||||
/**
|
||||
* [openat(2)](http://man7.org/linux/man-pages/man2/openat.2.html)
|
||||
|
@ -122,7 +122,7 @@ int creat64(const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(21);
|
|||
*/
|
||||
int openat(int __dir_fd, const char* _Nonnull __path, int __flags, ...);
|
||||
/** See openat(). */
|
||||
int openat64(int __dir_fd, const char* _Nonnull __path, int __flags, ...) __INTRODUCED_IN(21);
|
||||
int openat64(int __dir_fd, const char* _Nonnull __path, int __flags, ...);
|
||||
|
||||
/**
|
||||
* [open(2)](http://man7.org/linux/man-pages/man2/open.2.html)
|
||||
|
@ -133,7 +133,7 @@ int openat64(int __dir_fd, const char* _Nonnull __path, int __flags, ...) __INTR
|
|||
*/
|
||||
int open(const char* _Nonnull __path, int __flags, ...);
|
||||
/** See open(). */
|
||||
int open64(const char* _Nonnull __path, int __flags, ...) __INTRODUCED_IN(21);
|
||||
int open64(const char* _Nonnull __path, int __flags, ...);
|
||||
|
||||
/**
|
||||
* [splice(2)](http://man7.org/linux/man-pages/man2/splice.2.html)
|
||||
|
@ -144,10 +144,8 @@ int open64(const char* _Nonnull __path, int __flags, ...) __INTRODUCED_IN(21);
|
|||
*
|
||||
* Returns the number of bytes spliced on success and returns -1 and sets
|
||||
* `errno` on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
ssize_t splice(int __in_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __in_offset, int __out_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __out_offset, size_t __length, unsigned int __flags) __INTRODUCED_IN(21);
|
||||
ssize_t splice(int __in_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __in_offset, int __out_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __out_offset, size_t __length, unsigned int __flags);
|
||||
|
||||
/**
|
||||
* [tee(2)](http://man7.org/linux/man-pages/man2/tee.2.html)
|
||||
|
@ -158,10 +156,8 @@ ssize_t splice(int __in_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __in_offset,
|
|||
*
|
||||
* Returns the number of bytes duplicated on success and returns -1 and sets
|
||||
* `errno` on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
ssize_t tee(int __in_fd, int __out_fd, size_t __length, unsigned int __flags) __INTRODUCED_IN(21);
|
||||
ssize_t tee(int __in_fd, int __out_fd, size_t __length, unsigned int __flags);
|
||||
|
||||
/**
|
||||
* [vmsplice(2)](http://man7.org/linux/man-pages/man2/vmsplice.2.html)
|
||||
|
@ -172,10 +168,8 @@ ssize_t tee(int __in_fd, int __out_fd, size_t __length, unsigned int __flags) __
|
|||
*
|
||||
* Returns the number of bytes spliced on success and returns -1 and sets
|
||||
* `errno` on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
ssize_t vmsplice(int __fd, const struct iovec* _Nonnull __iov, size_t __count, unsigned int __flags) __INTRODUCED_IN(21);
|
||||
ssize_t vmsplice(int __fd, const struct iovec* _Nonnull __iov, size_t __count, unsigned int __flags);
|
||||
|
||||
/**
|
||||
* [fallocate(2)](http://man7.org/linux/man-pages/man2/fallocate.2.html)
|
||||
|
@ -187,12 +181,10 @@ ssize_t vmsplice(int __fd, const struct iovec* _Nonnull __iov, size_t __count, u
|
|||
* `FALLOC_FL_UNSHARE_RANGE`.
|
||||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int fallocate(int __fd, int __mode, off_t __offset, off_t __length) __RENAME_IF_FILE_OFFSET64(fallocate64) __INTRODUCED_IN(21);
|
||||
int fallocate(int __fd, int __mode, off_t __offset, off_t __length) __RENAME_IF_FILE_OFFSET64(fallocate64);
|
||||
/** See fallocate(). */
|
||||
int fallocate64(int __fd, int __mode, off64_t __offset, off64_t __length) __INTRODUCED_IN(21);
|
||||
int fallocate64(int __fd, int __mode, off64_t __offset, off64_t __length);
|
||||
|
||||
/**
|
||||
* [posix_fadvise(2)](http://man7.org/linux/man-pages/man2/posix_fadvise.2.html)
|
||||
|
@ -203,24 +195,20 @@ int fallocate64(int __fd, int __mode, off64_t __offset, off64_t __length) __INTR
|
|||
* and `POSIX_FADV_NOREUSE`.
|
||||
*
|
||||
* Returns 0 on success and returns an error number on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int posix_fadvise(int __fd, off_t __offset, off_t __length, int __advice) __RENAME_IF_FILE_OFFSET64(posix_fadvise64) __INTRODUCED_IN(21);
|
||||
int posix_fadvise(int __fd, off_t __offset, off_t __length, int __advice) __RENAME_IF_FILE_OFFSET64(posix_fadvise64);
|
||||
/** See posix_fadvise(). */
|
||||
int posix_fadvise64(int __fd, off64_t __offset, off64_t __length, int __advice) __INTRODUCED_IN(21);
|
||||
int posix_fadvise64(int __fd, off64_t __offset, off64_t __length, int __advice);
|
||||
|
||||
/**
|
||||
* [posix_fallocate(2)](http://man7.org/linux/man-pages/man2/posix_fallocate.2.html)
|
||||
* allocates file space.
|
||||
*
|
||||
* Returns 0 on success and returns an error number on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int posix_fallocate(int __fd, off_t __offset, off_t __length) __RENAME_IF_FILE_OFFSET64(posix_fallocate64) __INTRODUCED_IN(21);
|
||||
int posix_fallocate(int __fd, off_t __offset, off_t __length) __RENAME_IF_FILE_OFFSET64(posix_fallocate64);
|
||||
/** See posix_fallocate(). */
|
||||
int posix_fallocate64(int __fd, off64_t __offset, off64_t __length) __INTRODUCED_IN(21);
|
||||
int posix_fallocate64(int __fd, off64_t __offset, off64_t __length);
|
||||
|
||||
#if defined(__USE_GNU)
|
||||
|
||||
|
|
|
@ -117,16 +117,11 @@ typedef struct _ftsent {
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*
|
||||
* Strictly these functions were available before Lollipop/21, but there was an accidental ABI
|
||||
* breakage in 21 that means you can't write code that runs on current devices and pre-21 devices,
|
||||
* so we break the tie in favor of current and future devices.
|
||||
*/
|
||||
FTSENT* _Nullable fts_children(FTS* _Nonnull __fts, int __options) __INTRODUCED_IN(21);
|
||||
int fts_close(FTS* _Nonnull __fts) __INTRODUCED_IN(21);
|
||||
FTS* _Nullable fts_open(char* _Nonnull const* _Nonnull __path, int __options, int (* _Nullable __comparator)(const FTSENT* _Nonnull * _Nonnull __lhs, const FTSENT* _Nonnull * _Nonnull __rhs)) __INTRODUCED_IN(21);
|
||||
FTSENT* _Nullable fts_read(FTS* _Nonnull __fts) __INTRODUCED_IN(21);
|
||||
int fts_set(FTS* _Nonnull __fts, FTSENT* _Nonnull __entry, int __options) __INTRODUCED_IN(21);
|
||||
FTSENT* _Nullable fts_children(FTS* _Nonnull __fts, int __options);
|
||||
int fts_close(FTS* _Nonnull __fts);
|
||||
FTS* _Nullable fts_open(char* _Nonnull const* _Nonnull __path, int __options, int (* _Nullable __comparator)(const FTSENT* _Nonnull * _Nonnull __lhs, const FTSENT* _Nonnull * _Nonnull __rhs));
|
||||
FTSENT* _Nullable fts_read(FTS* _Nonnull __fts);
|
||||
int fts_set(FTS* _Nonnull __fts, FTSENT* _Nonnull __entry, int __options);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
|
|
@ -55,10 +55,10 @@ struct FTW {
|
|||
};
|
||||
|
||||
__BEGIN_DECLS
|
||||
int ftw(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat* _Nonnull, int), int __max_fd_count) __INTRODUCED_IN(17);
|
||||
int nftw(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat* _Nonnull, int, struct FTW* _Nonnull), int __max_fd_count, int __flags) __INTRODUCED_IN(17);
|
||||
int ftw64(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat64* _Nonnull, int), int __max_fd_count) __INTRODUCED_IN(21);
|
||||
int nftw64(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat64* _Nonnull, int, struct FTW* _Nonnull), int __max_fd_count, int __flags) __INTRODUCED_IN(21);
|
||||
int ftw(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat* _Nonnull, int), int __max_fd_count);
|
||||
int nftw(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat* _Nonnull, int, struct FTW* _Nonnull), int __max_fd_count, int __flags);
|
||||
int ftw64(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat64* _Nonnull, int), int __max_fd_count);
|
||||
int nftw64(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat64* _Nonnull, int, struct FTW* _Nonnull), int __max_fd_count, int __flags);
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -327,12 +327,12 @@ typedef struct {
|
|||
} imaxdiv_t;
|
||||
|
||||
__BEGIN_DECLS
|
||||
intmax_t imaxabs(intmax_t __i) __attribute_const__ __INTRODUCED_IN(19);
|
||||
imaxdiv_t imaxdiv(intmax_t __numerator, intmax_t __denominator) __attribute_const__ __INTRODUCED_IN(19);
|
||||
intmax_t imaxabs(intmax_t __i) __attribute_const__;
|
||||
imaxdiv_t imaxdiv(intmax_t __numerator, intmax_t __denominator) __attribute_const__;
|
||||
intmax_t strtoimax(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
|
||||
uintmax_t strtoumax(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
|
||||
intmax_t wcstoimax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base) __INTRODUCED_IN(21);
|
||||
uintmax_t wcstoumax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base) __INTRODUCED_IN(21);
|
||||
intmax_t wcstoimax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base);
|
||||
uintmax_t wcstoumax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base);
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -55,11 +55,7 @@ struct dl_phdr_info {
|
|||
void* _Nullable dlpi_tls_data;
|
||||
};
|
||||
|
||||
#if defined(__arm__)
|
||||
int dl_iterate_phdr(int (* _Nonnull __callback)(struct dl_phdr_info* _Nonnull, size_t, void* _Nullable), void* _Nullable __data) __INTRODUCED_IN(21);
|
||||
#else
|
||||
int dl_iterate_phdr(int (* _Nonnull __callback)(struct dl_phdr_info* _Nonnull, size_t, void*_Nullable ), void* _Nullable __data);
|
||||
#endif
|
||||
int dl_iterate_phdr(int (* _Nonnull __callback)(struct dl_phdr_info* _Nonnull, size_t, void* _Nullable), void* _Nullable __data);
|
||||
|
||||
#ifdef __arm__
|
||||
typedef uintptr_t _Unwind_Ptr;
|
||||
|
|
|
@ -98,11 +98,11 @@ struct lconv {
|
|||
|
||||
struct lconv* _Nonnull localeconv(void) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
|
||||
|
||||
locale_t _Nullable duplocale(locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
void freelocale(locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
locale_t _Nullable newlocale(int __category_mask, const char* _Nonnull __locale_name, locale_t _Nullable __base) __INTRODUCED_IN(21);
|
||||
locale_t _Nullable duplocale(locale_t _Nonnull __l);
|
||||
void freelocale(locale_t _Nonnull __l);
|
||||
locale_t _Nullable newlocale(int __category_mask, const char* _Nonnull __locale_name, locale_t _Nullable __base);
|
||||
char* _Nullable setlocale(int __category, const char* _Nullable __locale_name);
|
||||
locale_t _Nullable uselocale(locale_t _Nullable __l) __INTRODUCED_IN(21);
|
||||
locale_t _Nullable uselocale(locale_t _Nullable __l);
|
||||
|
||||
#define LC_GLOBAL_LOCALE __BIONIC_CAST(reinterpret_cast, locale_t, -1L)
|
||||
|
||||
|
|
|
@ -92,10 +92,8 @@ void* _Nullable memalign(size_t __alignment, size_t __byte_count) __mallocfunc _
|
|||
/**
|
||||
* [malloc_usable_size(3)](http://man7.org/linux/man-pages/man3/malloc_usable_size.3.html)
|
||||
* returns the actual size of the given heap block.
|
||||
*
|
||||
* Available since API level 17.
|
||||
*/
|
||||
size_t malloc_usable_size(const void* _Nullable __ptr) __INTRODUCED_IN(17);
|
||||
size_t malloc_usable_size(const void* _Nullable __ptr);
|
||||
|
||||
#define __MALLINFO_BODY \
|
||||
/** Total number of non-mmapped bytes currently allocated from OS. */ \
|
||||
|
|
|
@ -161,8 +161,8 @@ double log1p(double __x);
|
|||
float log1pf(float __x);
|
||||
long double log1pl(long double __x);
|
||||
|
||||
double log2(double __x) __INTRODUCED_IN(18);
|
||||
float log2f(float __x) __INTRODUCED_IN(18);
|
||||
double log2(double __x);
|
||||
float log2f(float __x);
|
||||
long double log2l(long double __x);
|
||||
|
||||
double logb(double __x);
|
||||
|
@ -319,7 +319,7 @@ long double fmal(long double __x, long double __y, long double __z);
|
|||
* to the std namespace, making it impossible to use both <cmath> (which gets
|
||||
* included by a lot of other standard headers) and ::isnan.
|
||||
*/
|
||||
int (isinf)(double __x) __attribute_const__ __INTRODUCED_IN(21);
|
||||
int (isinf)(double __x) __attribute_const__;
|
||||
int (isnan)(double __x) __attribute_const__;
|
||||
|
||||
/* POSIX extensions. */
|
||||
|
@ -367,7 +367,7 @@ double gamma_r(double __x, int* _Nonnull __sign);
|
|||
double lgamma_r(double __x, int* _Nonnull __sign);
|
||||
double significand(double __x);
|
||||
long double lgammal_r(long double __x, int* _Nonnull __sign) __INTRODUCED_IN(23);
|
||||
long double significandl(long double __x) __INTRODUCED_IN(21);
|
||||
long double significandl(long double __x);
|
||||
float dremf(float __x, float __y);
|
||||
int finitef(float __x) __attribute_const__;
|
||||
float gammaf(float __x);
|
||||
|
|
|
@ -57,10 +57,10 @@ struct mntent {
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
int endmntent(FILE* _Nullable __fp) __INTRODUCED_IN(21);
|
||||
int endmntent(FILE* _Nullable __fp);
|
||||
struct mntent* _Nullable getmntent(FILE* _Nonnull __fp);
|
||||
struct mntent* _Nullable getmntent_r(FILE* _Nonnull __fp, struct mntent* _Nonnull __entry, char* _Nonnull __buf, int __size) __INTRODUCED_IN(21);
|
||||
FILE* _Nullable setmntent(const char* _Nonnull __filename, const char* _Nonnull __type) __INTRODUCED_IN(21);
|
||||
struct mntent* _Nullable getmntent_r(FILE* _Nonnull __fp, struct mntent* _Nonnull __entry, char* _Nonnull __buf, int __size);
|
||||
FILE* _Nullable setmntent(const char* _Nonnull __filename, const char* _Nonnull __type);
|
||||
char* _Nullable hasmntopt(const struct mntent* _Nonnull __entry, const char* _Nonnull __option) __INTRODUCED_IN(26);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -58,10 +58,8 @@ int poll(struct pollfd* _Nullable __fds, nfds_t __count, int __timeout_ms);
|
|||
*
|
||||
* Returns the number of ready file descriptors on success, 0 for timeout,
|
||||
* and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 28.
|
||||
*/
|
||||
int ppoll(struct pollfd* _Nullable __fds, nfds_t __count, const struct timespec* _Nullable __timeout, const sigset_t* _Nullable __mask) __INTRODUCED_IN(21);
|
||||
int ppoll(struct pollfd* _Nullable __fds, nfds_t __count, const struct timespec* _Nullable __timeout, const sigset_t* _Nullable __mask);
|
||||
|
||||
/**
|
||||
* Like ppoll() but allows setting a signal mask with RT signals even from a 32-bit process.
|
||||
|
|
|
@ -116,10 +116,10 @@ int pthread_attr_setstack(pthread_attr_t* _Nonnull __attr, void* _Nonnull __addr
|
|||
int pthread_attr_setstacksize(pthread_attr_t* _Nonnull __addr, size_t __size);
|
||||
|
||||
int pthread_condattr_destroy(pthread_condattr_t* _Nonnull __attr);
|
||||
int pthread_condattr_getclock(const pthread_condattr_t* _Nonnull __attr, clockid_t* _Nonnull __clock) __INTRODUCED_IN(21);
|
||||
int pthread_condattr_getclock(const pthread_condattr_t* _Nonnull __attr, clockid_t* _Nonnull __clock);
|
||||
int pthread_condattr_getpshared(const pthread_condattr_t* _Nonnull __attr, int* _Nonnull __shared);
|
||||
int pthread_condattr_init(pthread_condattr_t* _Nonnull __attr);
|
||||
int pthread_condattr_setclock(pthread_condattr_t* _Nonnull __attr, clockid_t __clock) __INTRODUCED_IN(21);
|
||||
int pthread_condattr_setclock(pthread_condattr_t* _Nonnull __attr, clockid_t __clock);
|
||||
int pthread_condattr_setpshared(pthread_condattr_t* _Nonnull __attr, int __shared);
|
||||
|
||||
int pthread_cond_broadcast(pthread_cond_t* _Nonnull __cond);
|
||||
|
@ -169,7 +169,7 @@ int pthread_getcpuclockid(pthread_t __pthread, clockid_t* _Nonnull __clock);
|
|||
|
||||
void* _Nullable pthread_getspecific(pthread_key_t __key);
|
||||
|
||||
pid_t pthread_gettid_np(pthread_t __pthread) __INTRODUCED_IN(21);
|
||||
pid_t pthread_gettid_np(pthread_t __pthread);
|
||||
|
||||
int pthread_join(pthread_t __pthread, void* _Nullable * _Nullable __return_value_ptr);
|
||||
|
||||
|
@ -190,8 +190,7 @@ int pthread_mutex_clocklock(pthread_mutex_t* _Nonnull __mutex, clockid_t __clock
|
|||
int pthread_mutex_destroy(pthread_mutex_t* _Nonnull __mutex);
|
||||
int pthread_mutex_init(pthread_mutex_t* _Nonnull __mutex, const pthread_mutexattr_t* _Nullable __attr);
|
||||
int pthread_mutex_lock(pthread_mutex_t* _Nonnull __mutex);
|
||||
int pthread_mutex_timedlock(pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout)
|
||||
__INTRODUCED_IN(21);
|
||||
int pthread_mutex_timedlock(pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout);
|
||||
|
||||
/*
|
||||
* POSIX historically only supported using pthread_mutex_timedlock() with CLOCK_REALTIME, however
|
||||
|
|
|
@ -179,20 +179,16 @@ int clone(int (* __BIONIC_COMPLICATED_NULLNESS __fn)(void* __BIONIC_COMPLICATED_
|
|||
* disassociates part of the caller's execution context.
|
||||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 17.
|
||||
*/
|
||||
int unshare(int __flags) __INTRODUCED_IN(17);
|
||||
int unshare(int __flags);
|
||||
|
||||
/**
|
||||
* [setns(2)](http://man7.org/linux/man-pages/man2/setns.2.html)
|
||||
* reassociates a thread with a different namespace.
|
||||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int setns(int __fd, int __ns_type) __INTRODUCED_IN(21);
|
||||
int setns(int __fd, int __ns_type);
|
||||
|
||||
/**
|
||||
* [sched_getcpu(3)](http://man7.org/linux/man-pages/man3/sched_getcpu.3.html)
|
||||
|
|
|
@ -66,18 +66,14 @@ __BEGIN_DECLS
|
|||
/**
|
||||
* [insque(3)](http://man7.org/linux/man-pages/man3/insque.3.html) inserts
|
||||
* an item in a queue (an intrusive doubly-linked list).
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
void insque(void* _Nonnull __element, void* _Nullable __previous) __INTRODUCED_IN(21);
|
||||
void insque(void* _Nonnull __element, void* _Nullable __previous);
|
||||
|
||||
/**
|
||||
* [remque(3)](http://man7.org/linux/man-pages/man3/remque.3.html) removes
|
||||
* an item from a queue (an intrusive doubly-linked list).
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
void remque(void* _Nonnull __element) __INTRODUCED_IN(21);
|
||||
void remque(void* _Nonnull __element);
|
||||
|
||||
/**
|
||||
* [hcreate(3)](http://man7.org/linux/man-pages/man3/hcreate.3.html)
|
||||
|
@ -155,10 +151,8 @@ int hsearch_r(ENTRY __entry, ACTION __action, ENTRY* _Nullable * _Nonnull __resu
|
|||
* See bsearch() if you have a sorted array.
|
||||
*
|
||||
* Returns a pointer to the matching element on success, or NULL on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
void* _Nullable lfind(const void* _Nonnull __key, const void* _Nonnull __array, size_t* _Nonnull __count, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull)) __INTRODUCED_IN(21);
|
||||
void* _Nullable lfind(const void* _Nonnull __key, const void* _Nonnull __array, size_t* _Nonnull __count, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull));
|
||||
|
||||
/**
|
||||
* [lsearch(3)](http://man7.org/linux/man-pages/man3/lsearch.3.html) brute-force
|
||||
|
@ -170,10 +164,8 @@ void* _Nullable lfind(const void* _Nonnull __key, const void* _Nonnull __array,
|
|||
*
|
||||
* Returns a pointer to the matching element on success, or to the newly-added
|
||||
* element on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
void* _Nonnull lsearch(const void* _Nonnull __key, void* _Nonnull __array, size_t* _Nonnull __count, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull)) __INTRODUCED_IN(21);
|
||||
void* _Nonnull lsearch(const void* _Nonnull __key, void* _Nonnull __array, size_t* _Nonnull __count, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull));
|
||||
|
||||
/**
|
||||
* [tdelete(3)](http://man7.org/linux/man-pages/man3/tdelete.3.html) searches
|
||||
|
@ -214,6 +206,6 @@ void* _Nullable tsearch(const void* _Nonnull __key, void* _Nullable * _Nullable
|
|||
* [twalk(3)](http://man7.org/linux/man-pages/man3/twalk.3.html) calls
|
||||
* `__visitor` on every node in the tree.
|
||||
*/
|
||||
void twalk(const void* _Nullable __root, void (* _Nullable __visitor)(const void* _Nullable, VISIT, int)) __INTRODUCED_IN(21);
|
||||
void twalk(const void* _Nullable __root, void (* _Nullable __visitor)(const void* _Nullable, VISIT, int));
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -51,8 +51,8 @@ __BEGIN_DECLS
|
|||
/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
|
||||
#define SIGRTMIN (__libc_current_sigrtmin())
|
||||
#define SIGRTMAX (__libc_current_sigrtmax())
|
||||
int __libc_current_sigrtmin(void) __INTRODUCED_IN(21);
|
||||
int __libc_current_sigrtmax(void) __INTRODUCED_IN(21);
|
||||
int __libc_current_sigrtmin(void);
|
||||
int __libc_current_sigrtmax(void);
|
||||
|
||||
extern const char* _Nonnull const sys_siglist[_NSIG];
|
||||
extern const char* _Nonnull const sys_signame[_NSIG]; /* BSD compatibility. */
|
||||
|
@ -64,16 +64,16 @@ int sigaction64(int __signal, const struct sigaction64* _Nullable __new_action,
|
|||
|
||||
int siginterrupt(int __signal, int __flag);
|
||||
|
||||
sighandler_t _Nonnull signal(int __signal, sighandler_t _Nullable __handler) __INTRODUCED_IN(21);
|
||||
int sigaddset(sigset_t* _Nonnull __set, int __signal) __INTRODUCED_IN(21);
|
||||
sighandler_t _Nonnull signal(int __signal, sighandler_t _Nullable __handler);
|
||||
int sigaddset(sigset_t* _Nonnull __set, int __signal);
|
||||
int sigaddset64(sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28);
|
||||
int sigdelset(sigset_t* _Nonnull __set, int __signal) __INTRODUCED_IN(21);
|
||||
int sigdelset(sigset_t* _Nonnull __set, int __signal);
|
||||
int sigdelset64(sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28);
|
||||
int sigemptyset(sigset_t* _Nonnull __set) __INTRODUCED_IN(21);
|
||||
int sigemptyset(sigset_t* _Nonnull __set);
|
||||
int sigemptyset64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28);
|
||||
int sigfillset(sigset_t* _Nonnull __set) __INTRODUCED_IN(21);
|
||||
int sigfillset(sigset_t* _Nonnull __set);
|
||||
int sigfillset64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28);
|
||||
int sigismember(const sigset_t* _Nonnull __set, int __signal) __INTRODUCED_IN(21);
|
||||
int sigismember(const sigset_t* _Nonnull __set, int __signal);
|
||||
int sigismember64(const sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28);
|
||||
|
||||
int sigpending(sigset_t* _Nonnull __set);
|
||||
|
@ -105,8 +105,8 @@ int tgkill(int __tgid, int __tid, int __signal);
|
|||
|
||||
int sigaltstack(const stack_t* _Nullable __new_signal_stack, stack_t* _Nullable __old_signal_stack);
|
||||
|
||||
void psiginfo(const siginfo_t* _Nonnull __info, const char* _Nullable __msg) __INTRODUCED_IN(17);
|
||||
void psignal(int __signal, const char* _Nullable __msg) __INTRODUCED_IN(17);
|
||||
void psiginfo(const siginfo_t* _Nonnull __info, const char* _Nullable __msg);
|
||||
void psignal(int __signal, const char* _Nullable __msg);
|
||||
|
||||
int pthread_kill(pthread_t __pthread, int __signal);
|
||||
#if defined(__USE_GNU)
|
||||
|
|
|
@ -118,8 +118,8 @@ int fscanf(FILE* _Nonnull __fp, const char* _Nonnull __fmt, ...) __scanflike(2,
|
|||
size_t fwrite(const void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp);
|
||||
int getc(FILE* _Nonnull __fp);
|
||||
int getchar(void);
|
||||
ssize_t getdelim(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, int __delimiter, FILE* _Nonnull __fp) __INTRODUCED_IN(18);
|
||||
ssize_t getline(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, FILE* _Nonnull __fp) __INTRODUCED_IN(18);
|
||||
ssize_t getdelim(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, int __delimiter, FILE* _Nonnull __fp);
|
||||
ssize_t getline(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, FILE* _Nonnull __fp);
|
||||
|
||||
void perror(const char* _Nullable __msg);
|
||||
int printf(const char* _Nonnull __fmt, ...) __printflike(1, 2);
|
||||
|
@ -136,8 +136,8 @@ int ungetc(int __ch, FILE* _Nonnull __fp);
|
|||
int vfprintf(FILE* _Nonnull __fp, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0);
|
||||
int vprintf(const char* _Nonnull __fp, va_list __args) __printflike(1, 0);
|
||||
|
||||
int dprintf(int __fd, const char* _Nonnull __fmt, ...) __printflike(2, 3) __INTRODUCED_IN(21);
|
||||
int vdprintf(int __fd, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0) __INTRODUCED_IN(21);
|
||||
int dprintf(int __fd, const char* _Nonnull __fmt, ...) __printflike(2, 3);
|
||||
int vdprintf(int __fd, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0);
|
||||
|
||||
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ < 201112L) || \
|
||||
(defined(__cplusplus) && __cplusplus <= 201103L)
|
||||
|
|
|
@ -43,12 +43,12 @@ __BEGIN_DECLS
|
|||
|
||||
__noreturn void abort(void) __attribute__((__nomerge__));
|
||||
__noreturn void exit(int __status);
|
||||
__noreturn void _Exit(int __status) __INTRODUCED_IN(21);
|
||||
__noreturn void _Exit(int __status);
|
||||
|
||||
int atexit(void (* _Nonnull __fn)(void));
|
||||
|
||||
int at_quick_exit(void (* _Nonnull __fn)(void)) __INTRODUCED_IN(21);
|
||||
void quick_exit(int __status) __noreturn __INTRODUCED_IN(21);
|
||||
int at_quick_exit(void (* _Nonnull __fn)(void));
|
||||
void quick_exit(int __status) __noreturn;
|
||||
|
||||
char* _Nullable getenv(const char* _Nonnull __name);
|
||||
int putenv(char* _Nonnull __assignment);
|
||||
|
@ -63,7 +63,7 @@ int mkostemp64(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23);
|
|||
int mkostemp(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23);
|
||||
int mkostemps64(char* _Nonnull __template, int __suffix_length, int __flags) __INTRODUCED_IN(23);
|
||||
int mkostemps(char* _Nonnull __template, int __suffix_length, int __flags) __INTRODUCED_IN(23);
|
||||
int mkstemp64(char* _Nonnull __template) __INTRODUCED_IN(21);
|
||||
int mkstemp64(char* _Nonnull __template);
|
||||
int mkstemp(char* _Nonnull __template);
|
||||
int mkstemps64(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23);
|
||||
int mkstemps(char* _Nonnull __template, int __flags);
|
||||
|
@ -73,12 +73,12 @@ long long strtoll(const char* _Nonnull __s, char* _Nullable * _Nullable __end_pt
|
|||
unsigned long strtoul(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
|
||||
unsigned long long strtoull(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
|
||||
|
||||
int posix_memalign(void* _Nullable * _Nullable __memptr, size_t __alignment, size_t __size) __INTRODUCED_IN(17);
|
||||
int posix_memalign(void* _Nullable * _Nullable __memptr, size_t __alignment, size_t __size);
|
||||
|
||||
void* _Nullable aligned_alloc(size_t __alignment, size_t __size) __INTRODUCED_IN(28);
|
||||
|
||||
double strtod(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr);
|
||||
long double strtold(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr) __INTRODUCED_IN(21);
|
||||
long double strtold(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr);
|
||||
|
||||
unsigned long strtoul_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(26);
|
||||
|
||||
|
@ -99,7 +99,7 @@ void arc4random_buf(void* _Nonnull __buf, size_t __n);
|
|||
|
||||
#define RAND_MAX 0x7fffffff
|
||||
|
||||
int rand_r(unsigned int* _Nonnull __seed_ptr) __INTRODUCED_IN(21);
|
||||
int rand_r(unsigned int* _Nonnull __seed_ptr);
|
||||
|
||||
double drand48(void);
|
||||
double erand48(unsigned short __xsubi[_Nonnull 3]);
|
||||
|
@ -111,11 +111,11 @@ long nrand48(unsigned short __xsubi[_Nonnull 3]);
|
|||
unsigned short* _Nonnull seed48(unsigned short __seed16v[_Nonnull 3]);
|
||||
void srand48(long __seed);
|
||||
|
||||
char* _Nullable initstate(unsigned int __seed, char* _Nonnull __state, size_t __n) __INTRODUCED_IN(21);
|
||||
char* _Nullable setstate(char* _Nonnull __state) __INTRODUCED_IN(21);
|
||||
char* _Nullable initstate(unsigned int __seed, char* _Nonnull __state, size_t __n);
|
||||
char* _Nullable setstate(char* _Nonnull __state);
|
||||
|
||||
int getpt(void);
|
||||
int posix_openpt(int __flags) __INTRODUCED_IN(21);
|
||||
int posix_openpt(int __flags);
|
||||
char* _Nullable ptsname(int __fd);
|
||||
int ptsname_r(int __fd, char* _Nonnull __buf, size_t __n);
|
||||
int unlockpt(int __fd);
|
||||
|
@ -153,8 +153,8 @@ lldiv_t lldiv(long long __numerator, long long __denominator) __attribute_const_
|
|||
int getloadavg(double __averages[_Nonnull], int __n) __INTRODUCED_IN(29);
|
||||
|
||||
/* BSD compatibility. */
|
||||
const char* _Nullable getprogname(void) __INTRODUCED_IN(21);
|
||||
void setprogname(const char* _Nonnull __name) __INTRODUCED_IN(21);
|
||||
const char* _Nullable getprogname(void);
|
||||
void setprogname(const char* _Nonnull __name);
|
||||
|
||||
int mblen(const char* _Nullable __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
|
||||
size_t mbstowcs(wchar_t* _Nullable __dst, const char* _Nullable __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
|
||||
|
@ -163,28 +163,28 @@ int wctomb(char* _Nullable __dst, wchar_t __wc) __INTRODUCED_IN_NO_GUARD_FOR_NDK
|
|||
|
||||
size_t wcstombs(char* _Nullable __dst, const wchar_t* _Nullable __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
|
||||
|
||||
size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
|
||||
size_t __ctype_get_mb_cur_max(void);
|
||||
#define MB_CUR_MAX __ctype_get_mb_cur_max()
|
||||
|
||||
#if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS)
|
||||
#include <bits/fortify/stdlib.h>
|
||||
#endif
|
||||
|
||||
int abs(int __x) __attribute_const__ __INTRODUCED_IN(19);
|
||||
long labs(long __x) __attribute_const__ __INTRODUCED_IN(19);
|
||||
long long llabs(long long __x) __attribute_const__ __INTRODUCED_IN(19);
|
||||
int abs(int __x) __attribute_const__;
|
||||
long labs(long __x) __attribute_const__;
|
||||
long long llabs(long long __x) __attribute_const__;
|
||||
|
||||
float strtof(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr) __INTRODUCED_IN(21);
|
||||
double atof(const char* _Nonnull __s) __attribute_pure__ __INTRODUCED_IN(21);
|
||||
int rand(void) __INTRODUCED_IN(21);
|
||||
void srand(unsigned int __seed) __INTRODUCED_IN(21);
|
||||
long random(void) __INTRODUCED_IN(21);
|
||||
void srandom(unsigned int __seed) __INTRODUCED_IN(21);
|
||||
int grantpt(int __fd) __INTRODUCED_IN(21);
|
||||
float strtof(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr);
|
||||
double atof(const char* _Nonnull __s) __attribute_pure__;
|
||||
int rand(void);
|
||||
void srand(unsigned int __seed);
|
||||
long random(void);
|
||||
void srandom(unsigned int __seed);
|
||||
int grantpt(int __fd);
|
||||
|
||||
long long strtoll_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
unsigned long long strtoull_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
long double strtold_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
long long strtoll_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l);
|
||||
unsigned long long strtoull_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l);
|
||||
long double strtold_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l);
|
||||
|
||||
#if __ANDROID_API__ >= 26
|
||||
double strtod_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(26);
|
||||
|
|
|
@ -76,7 +76,7 @@ void* _Nonnull memset_explicit(void* _Nonnull __dst, int __ch, size_t __n) __INT
|
|||
void* _Nullable memmem(const void* _Nonnull __haystack, size_t __haystack_size, const void* _Nonnull __needle, size_t __needle_size) __attribute_pure__;
|
||||
|
||||
char* _Nullable strchr(const char* _Nonnull __s, int __ch) __attribute_pure__;
|
||||
char* _Nullable __strchr_chk(const char* _Nonnull __s, int __ch, size_t __n) __INTRODUCED_IN(18);
|
||||
char* _Nullable __strchr_chk(const char* _Nonnull __s, int __ch, size_t __n);
|
||||
#if defined(__USE_GNU)
|
||||
#if defined(__cplusplus)
|
||||
extern "C++" char* _Nonnull strchrnul(char* _Nonnull __s, int __ch) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24);
|
||||
|
@ -87,13 +87,13 @@ char* _Nonnull strchrnul(const char* _Nonnull __s, int __ch) __attribute_pure__
|
|||
#endif
|
||||
|
||||
char* _Nullable strrchr(const char* _Nonnull __s, int __ch) __attribute_pure__;
|
||||
char* _Nullable __strrchr_chk(const char* _Nonnull __s, int __ch, size_t __n) __INTRODUCED_IN(18);
|
||||
char* _Nullable __strrchr_chk(const char* _Nonnull __s, int __ch, size_t __n);
|
||||
|
||||
size_t strlen(const char* _Nonnull __s) __attribute_pure__;
|
||||
size_t __strlen_chk(const char* _Nonnull __s, size_t __n) __INTRODUCED_IN(17);
|
||||
size_t __strlen_chk(const char* _Nonnull __s, size_t __n);
|
||||
|
||||
int strcmp(const char* _Nonnull __lhs, const char* _Nonnull __rhs) __attribute_pure__;
|
||||
char* _Nonnull stpcpy(char* _Nonnull __dst, const char* _Nonnull __src) __INTRODUCED_IN(21);
|
||||
char* _Nonnull stpcpy(char* _Nonnull __dst, const char* _Nonnull __src);
|
||||
char* _Nonnull strcpy(char* _Nonnull __dst, const char* _Nonnull __src);
|
||||
char* _Nonnull strcat(char* _Nonnull __dst, const char* _Nonnull __src);
|
||||
char* _Nullable strdup(const char* _Nonnull __s);
|
||||
|
@ -120,7 +120,7 @@ size_t strnlen(const char* _Nonnull __s, size_t __n) __attribute_pure__;
|
|||
char* _Nonnull strncat(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n);
|
||||
char* _Nullable strndup(const char* _Nonnull __s, size_t __n);
|
||||
int strncmp(const char* _Nonnull __lhs, const char* _Nonnull __rhs, size_t __n) __attribute_pure__;
|
||||
char* _Nonnull stpncpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n) __INTRODUCED_IN(21);
|
||||
char* _Nonnull stpncpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n);
|
||||
char* _Nonnull strncpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n);
|
||||
|
||||
size_t strlcat(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n);
|
||||
|
@ -136,8 +136,8 @@ char* _Nonnull strsignal(int __signal);
|
|||
int strcoll(const char* _Nonnull __lhs, const char* _Nonnull __rhs) __attribute_pure__;
|
||||
size_t strxfrm(char* __BIONIC_COMPLICATED_NULLNESS __dst, const char* _Nonnull __src, size_t __n);
|
||||
|
||||
int strcoll_l(const char* _Nonnull __lhs, const char* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__ __INTRODUCED_IN(21);
|
||||
size_t strxfrm_l(char* __BIONIC_COMPLICATED_NULLNESS __dst, const char* _Nonnull __src, size_t __n, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int strcoll_l(const char* _Nonnull __lhs, const char* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__;
|
||||
size_t strxfrm_l(char* __BIONIC_COMPLICATED_NULLNESS __dst, const char* _Nonnull __src, size_t __n, locale_t _Nonnull __l);
|
||||
|
||||
#if defined(__USE_GNU) && !defined(basename)
|
||||
/*
|
||||
|
|
|
@ -45,9 +45,7 @@ __BEGIN_DECLS
|
|||
*
|
||||
* Returns the corresponding value on success,
|
||||
* and returns 0 and sets `errno` to `ENOENT` on failure.
|
||||
*
|
||||
* Available since API level 18.
|
||||
*/
|
||||
unsigned long int getauxval(unsigned long int __type) __INTRODUCED_IN(18);
|
||||
unsigned long int getauxval(unsigned long int __type);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -49,10 +49,10 @@
|
|||
|
||||
/* glibc compatibility. */
|
||||
__BEGIN_DECLS
|
||||
uint32_t htonl(uint32_t __x) __attribute_const__ __INTRODUCED_IN(21);
|
||||
uint16_t htons(uint16_t __x) __attribute_const__ __INTRODUCED_IN(21);
|
||||
uint32_t ntohl(uint32_t __x) __attribute_const__ __INTRODUCED_IN(21);
|
||||
uint16_t ntohs(uint16_t __x) __attribute_const__ __INTRODUCED_IN(21);
|
||||
uint32_t htonl(uint32_t __x) __attribute_const__;
|
||||
uint16_t htons(uint16_t __x) __attribute_const__;
|
||||
uint32_t ntohl(uint32_t __x) __attribute_const__;
|
||||
uint16_t ntohs(uint16_t __x) __attribute_const__;
|
||||
__END_DECLS
|
||||
|
||||
#define htonl(x) __swap32(x)
|
||||
|
|
|
@ -38,11 +38,11 @@
|
|||
__BEGIN_DECLS
|
||||
|
||||
int epoll_create(int __size);
|
||||
int epoll_create1(int __flags) __INTRODUCED_IN(21);
|
||||
int epoll_create1(int __flags);
|
||||
|
||||
int epoll_ctl(int __epoll_fd, int __op, int __fd, struct epoll_event* __BIONIC_COMPLICATED_NULLNESS __event);
|
||||
int epoll_wait(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, int __timeout_ms);
|
||||
int epoll_pwait(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, int __timeout_ms, const sigset_t* _Nullable __mask) __INTRODUCED_IN(21);
|
||||
int epoll_pwait(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, int __timeout_ms, const sigset_t* _Nullable __mask);
|
||||
int epoll_pwait64(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, int __timeout_ms, const sigset64_t* _Nullable __mask) __INTRODUCED_IN(28);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -43,19 +43,15 @@ __BEGIN_DECLS
|
|||
* filesystem checks.
|
||||
*
|
||||
* Returns the previous UID.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int setfsuid(uid_t __uid) __INTRODUCED_IN(21);
|
||||
int setfsuid(uid_t __uid);
|
||||
|
||||
/**
|
||||
* [setfsgid(2)](http://man7.org/linux/man-pages/man2/setfsgid.2.html) sets the GID used for
|
||||
* filesystem checks.
|
||||
*
|
||||
* Returns the previous GID.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int setfsgid(gid_t __gid) __INTRODUCED_IN(21);
|
||||
int setfsgid(gid_t __gid);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -41,7 +41,7 @@ __BEGIN_DECLS
|
|||
#define IN_NONBLOCK O_NONBLOCK
|
||||
|
||||
int inotify_init(void);
|
||||
int inotify_init1(int __flags) __INTRODUCED_IN(21);
|
||||
int inotify_init1(int __flags);
|
||||
int inotify_add_watch(int __fd, const char* _Nonnull __path, uint32_t __mask);
|
||||
int inotify_rm_watch(int __fd, uint32_t __watch_descriptor);
|
||||
|
||||
|
|
|
@ -59,10 +59,8 @@ void* _Nonnull mmap(void* _Nullable __addr, size_t __size, int __prot, int __fla
|
|||
* mmap64() is a variant of mmap() that takes a 64-bit offset even on LP32.
|
||||
*
|
||||
* See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
void* _Nonnull mmap64(void* _Nullable __addr, size_t __size, int __prot, int __flags, int __fd, off64_t __offset) __INTRODUCED_IN(21);
|
||||
void* _Nonnull mmap64(void* _Nullable __addr, size_t __size, int __prot, int __flags, int __fd, off64_t __offset);
|
||||
|
||||
/**
|
||||
* [munmap(2)](http://man7.org/linux/man-pages/man2/munmap.2.html)
|
||||
|
@ -107,21 +105,17 @@ void* _Nonnull mremap(void* _Nonnull __old_addr, size_t __old_size, size_t __new
|
|||
* [mlockall(2)](http://man7.org/linux/man-pages/man2/mlockall.2.html)
|
||||
* locks pages (preventing swapping).
|
||||
*
|
||||
* Available since API level 17.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int mlockall(int __flags) __INTRODUCED_IN(17);
|
||||
int mlockall(int __flags);
|
||||
|
||||
/**
|
||||
* [munlockall(2)](http://man7.org/linux/man-pages/man2/munlockall.2.html)
|
||||
* unlocks pages (allowing swapping).
|
||||
*
|
||||
* Available since API level 17.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int munlockall(void) __INTRODUCED_IN(17);
|
||||
int munlockall(void);
|
||||
|
||||
/**
|
||||
* [mlock(2)](http://man7.org/linux/man-pages/man2/mlock.2.html)
|
||||
|
|
|
@ -46,8 +46,8 @@ typedef unsigned long long rlim64_t;
|
|||
int getrlimit(int __resource, struct rlimit* _Nonnull __limit);
|
||||
int setrlimit(int __resource, const struct rlimit* _Nonnull __limit);
|
||||
|
||||
int getrlimit64(int __resource, struct rlimit64* _Nonnull __limit) __INTRODUCED_IN(21);
|
||||
int setrlimit64(int __resource, const struct rlimit64* _Nonnull __limit) __INTRODUCED_IN(21);
|
||||
int getrlimit64(int __resource, struct rlimit64* _Nonnull __limit);
|
||||
int setrlimit64(int __resource, const struct rlimit64* _Nonnull __limit);
|
||||
|
||||
int getpriority(int __which, id_t __who);
|
||||
int setpriority(int __which, id_t __who, int __priority);
|
||||
|
@ -55,7 +55,7 @@ int setpriority(int __which, id_t __who, int __priority);
|
|||
int getrusage(int __who, struct rusage* _Nonnull __usage);
|
||||
|
||||
int prlimit(pid_t __pid, int __resource, const struct rlimit* _Nullable __new_limit, struct rlimit* _Nullable __old_limit) __INTRODUCED_IN_32(24) __INTRODUCED_IN_64(21);
|
||||
int prlimit64(pid_t __pid, int __resource, const struct rlimit64* _Nullable __new_limit, struct rlimit64* _Nullable __old_limit) __INTRODUCED_IN(21);
|
||||
int prlimit64(pid_t __pid, int __resource, const struct rlimit64* _Nullable __new_limit, struct rlimit64* _Nullable __old_limit);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
|
|
@ -71,9 +71,9 @@ typedef struct {
|
|||
} \
|
||||
} while (0)
|
||||
|
||||
void __FD_CLR_chk(int, fd_set* _Nonnull , size_t) __INTRODUCED_IN(21);
|
||||
void __FD_SET_chk(int, fd_set* _Nonnull, size_t) __INTRODUCED_IN(21);
|
||||
int __FD_ISSET_chk(int, const fd_set* _Nonnull, size_t) __INTRODUCED_IN(21);
|
||||
void __FD_CLR_chk(int, fd_set* _Nonnull , size_t);
|
||||
void __FD_SET_chk(int, fd_set* _Nonnull, size_t);
|
||||
int __FD_ISSET_chk(int, const fd_set* _Nonnull, size_t);
|
||||
|
||||
#define __FD_CLR(fd, set) (__FDS_BITS(fd_set*,set)[__FDELT(fd)] &= ~__FDMASK(fd))
|
||||
#define __FD_SET(fd, set) (__FDS_BITS(fd_set*,set)[__FDELT(fd)] |= __FDMASK(fd))
|
||||
|
|
|
@ -40,15 +40,13 @@ __BEGIN_DECLS
|
|||
|
||||
/* See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
|
||||
#if defined(__USE_FILE_OFFSET64)
|
||||
ssize_t sendfile(int __out_fd, int __in_fd, off_t* _Nullable __offset, size_t __count) __RENAME(sendfile64) __INTRODUCED_IN(21);
|
||||
ssize_t sendfile(int __out_fd, int __in_fd, off_t* _Nullable __offset, size_t __count) __RENAME(sendfile64);
|
||||
#else
|
||||
/**
|
||||
* [sendfile(2)](http://man7.org/linux/man-pages/man2/sendfile.2.html) copies data directly
|
||||
* between two file descriptors.
|
||||
*
|
||||
* Returns the number of bytes copied on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
ssize_t sendfile(int __out_fd, int __in_fd, off_t* _Nullable __offset, size_t __count);
|
||||
#endif
|
||||
|
@ -57,6 +55,6 @@ ssize_t sendfile(int __out_fd, int __in_fd, off_t* _Nullable __offset, size_t __
|
|||
* Like sendfile() but allows using a 64-bit offset
|
||||
* even from a 32-bit process without `_FILE_OFFSET_BITS=64`.
|
||||
*/
|
||||
ssize_t sendfile64(int __out_fd, int __in_fd, off64_t* _Nullable __offset, size_t __count) __INTRODUCED_IN(21);
|
||||
ssize_t sendfile64(int __out_fd, int __in_fd, off64_t* _Nullable __offset, size_t __count);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -45,10 +45,8 @@ __BEGIN_DECLS
|
|||
* file descriptor for reading signal events.
|
||||
*
|
||||
* Returns the file descriptor on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 18.
|
||||
*/
|
||||
int signalfd(int __fd, const sigset_t* _Nonnull __mask, int __flags) __INTRODUCED_IN(18);
|
||||
int signalfd(int __fd, const sigset_t* _Nonnull __mask, int __flags);
|
||||
|
||||
/**
|
||||
* Like signalfd() but allows setting a signal mask with RT signals even from a 32-bit process.
|
||||
|
|
|
@ -120,7 +120,7 @@ struct cmsghdr {
|
|||
? (struct cmsghdr*) (msg)->msg_control : (struct cmsghdr*) NULL)
|
||||
#define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) && (cmsg)->cmsg_len <= (unsigned long) ((mhdr)->msg_controllen - ((char*)(cmsg) - (char*)(mhdr)->msg_control)))
|
||||
|
||||
struct cmsghdr* _Nullable __cmsg_nxthdr(struct msghdr* _Nonnull __msg, struct cmsghdr* _Nonnull __cmsg) __INTRODUCED_IN(21);
|
||||
struct cmsghdr* _Nullable __cmsg_nxthdr(struct msghdr* _Nonnull __msg, struct cmsghdr* _Nonnull __cmsg);
|
||||
|
||||
#define SCM_RIGHTS 0x01
|
||||
#define SCM_CREDENTIALS 0x02
|
||||
|
@ -292,17 +292,16 @@ struct ucred {
|
|||
#endif
|
||||
|
||||
__socketcall int accept(int __fd, struct sockaddr* _Nullable __addr, socklen_t* _Nullable __addr_length);
|
||||
__socketcall int accept4(int __fd, struct sockaddr* _Nullable __addr, socklen_t* _Nullable __addr_length, int __flags) __INTRODUCED_IN(21);
|
||||
__socketcall int accept4(int __fd, struct sockaddr* _Nullable __addr, socklen_t* _Nullable __addr_length, int __flags);
|
||||
__socketcall int bind(int __fd, const struct sockaddr* _Nonnull __addr, socklen_t __addr_length);
|
||||
__socketcall int connect(int __fd, const struct sockaddr* _Nonnull __addr, socklen_t __addr_length);
|
||||
__socketcall int getpeername(int __fd, struct sockaddr* _Nonnull __addr, socklen_t* _Nonnull __addr_length);
|
||||
__socketcall int getsockname(int __fd, struct sockaddr* _Nonnull __addr, socklen_t* _Nonnull __addr_length);
|
||||
__socketcall int getsockopt(int __fd, int __level, int __option, void* _Nullable __value, socklen_t* _Nonnull __value_length);
|
||||
__socketcall int listen(int __fd, int __backlog);
|
||||
__socketcall int recvmmsg(int __fd, struct mmsghdr* _Nonnull __msgs, unsigned int __msg_count, int __flags, const struct timespec* _Nullable __timeout)
|
||||
__INTRODUCED_IN(21);
|
||||
__socketcall int recvmmsg(int __fd, struct mmsghdr* _Nonnull __msgs, unsigned int __msg_count, int __flags, const struct timespec* _Nullable __timeout);
|
||||
__socketcall ssize_t recvmsg(int __fd, struct msghdr* _Nonnull __msg, int __flags);
|
||||
__socketcall int sendmmsg(int __fd, const struct mmsghdr* _Nonnull __msgs, unsigned int __msg_count, int __flags) __INTRODUCED_IN(21);
|
||||
__socketcall int sendmmsg(int __fd, const struct mmsghdr* _Nonnull __msgs, unsigned int __msg_count, int __flags);
|
||||
__socketcall ssize_t sendmsg(int __fd, const struct msghdr* _Nonnull __msg, int __flags);
|
||||
__socketcall int setsockopt(int __fd, int __level, int __option, const void* _Nullable __value, socklen_t __value_length);
|
||||
__socketcall int shutdown(int __fd, int __how);
|
||||
|
|
|
@ -141,13 +141,13 @@ int fchmod(int __fd, mode_t __mode);
|
|||
int mkdir(const char* _Nonnull __path, mode_t __mode);
|
||||
|
||||
int fstat(int __fd, struct stat* _Nonnull __buf);
|
||||
int fstat64(int __fd, struct stat64* _Nonnull __buf) __INTRODUCED_IN(21);
|
||||
int fstat64(int __fd, struct stat64* _Nonnull __buf);
|
||||
int fstatat(int __dir_fd, const char* _Nonnull __path, struct stat* _Nonnull __buf, int __flags);
|
||||
int fstatat64(int __dir_fd, const char* _Nonnull __path, struct stat64* _Nonnull __buf, int __flags) __INTRODUCED_IN(21);
|
||||
int fstatat64(int __dir_fd, const char* _Nonnull __path, struct stat64* _Nonnull __buf, int __flags);
|
||||
int lstat(const char* _Nonnull __path, struct stat* _Nonnull __buf);
|
||||
int lstat64(const char* _Nonnull __path, struct stat64* _Nonnull __buf) __INTRODUCED_IN(21);
|
||||
int lstat64(const char* _Nonnull __path, struct stat64* _Nonnull __buf);
|
||||
int stat(const char* _Nonnull __path, struct stat* _Nonnull __buf);
|
||||
int stat64(const char* _Nonnull __path, struct stat64* _Nonnull __buf) __INTRODUCED_IN(21);
|
||||
int stat64(const char* _Nonnull __path, struct stat64* _Nonnull __buf);
|
||||
|
||||
int mknod(const char* _Nonnull __path, mode_t __mode, dev_t __dev);
|
||||
mode_t umask(mode_t __mask);
|
||||
|
@ -156,12 +156,12 @@ mode_t umask(mode_t __mask);
|
|||
#include <bits/fortify/stat.h>
|
||||
#endif
|
||||
|
||||
int mkfifo(const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(21);
|
||||
int mkfifo(const char* _Nonnull __path, mode_t __mode);
|
||||
int mkfifoat(int __dir_fd, const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(23);
|
||||
|
||||
int fchmodat(int __dir_fd, const char* _Nonnull __path, mode_t __mode, int __flags);
|
||||
int mkdirat(int __dir_fd, const char* _Nonnull __path, mode_t __mode);
|
||||
int mknodat(int __dir_fd, const char* _Nonnull __path, mode_t __mode, dev_t __dev) __INTRODUCED_IN(21);
|
||||
int mknodat(int __dir_fd, const char* _Nonnull __path, mode_t __mode, dev_t __dev);
|
||||
|
||||
/**
|
||||
* Used in the tv_nsec field of an argument to utimensat()/futimens()
|
||||
|
@ -200,10 +200,8 @@ int utimensat(int __dir_fd, const char* __BIONIC_COMPLICATED_NULLNESS __path, co
|
|||
* See also UTIME_NOW and UTIME_OMIT.
|
||||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 19.
|
||||
*/
|
||||
int futimens(int __fd, const struct timespec __times[_Nullable 2]) __INTRODUCED_IN(19);
|
||||
int futimens(int __fd, const struct timespec __times[_Nullable 2]);
|
||||
|
||||
#if defined(__USE_GNU)
|
||||
/**
|
||||
|
|
|
@ -93,25 +93,21 @@ struct statvfs64 { __STATVFS64_BODY __STATVFS64_CODA };
|
|||
* queries filesystem statistics for the given path.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 19.
|
||||
*/
|
||||
int statvfs(const char* _Nonnull __path, struct statvfs* _Nonnull __buf) __INTRODUCED_IN(19);
|
||||
int statvfs(const char* _Nonnull __path, struct statvfs* _Nonnull __buf);
|
||||
|
||||
/**
|
||||
* [fstatvfs(3)](http://man7.org/linux/man-pages/man3/fstatvfs.3.html)
|
||||
* queries filesystem statistics for the given file descriptor.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 19.
|
||||
*/
|
||||
int fstatvfs(int __fd, struct statvfs* _Nonnull __buf) __INTRODUCED_IN(19);
|
||||
int fstatvfs(int __fd, struct statvfs* _Nonnull __buf);
|
||||
|
||||
/** Equivalent to statvfs() . */
|
||||
int statvfs64(const char* _Nonnull __path, struct statvfs64* _Nonnull __buf) __INTRODUCED_IN(21);
|
||||
int statvfs64(const char* _Nonnull __path, struct statvfs64* _Nonnull __buf);
|
||||
|
||||
/** Equivalent to fstatvfs(). */
|
||||
int fstatvfs64(int __fd, struct statvfs64* _Nonnull __buf) __INTRODUCED_IN(21);
|
||||
int fstatvfs64(int __fd, struct statvfs64* _Nonnull __buf);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -55,18 +55,14 @@ __BEGIN_DECLS
|
|||
* [swapon(2)](http://man7.org/linux/man-pages/man2/swapon.2.html) enables swapping.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 19.
|
||||
*/
|
||||
int swapon(const char* _Nonnull __path, int __flags) __INTRODUCED_IN(19);
|
||||
int swapon(const char* _Nonnull __path, int __flags);
|
||||
|
||||
/**
|
||||
* [swapoff(2)](http://man7.org/linux/man-pages/man2/swapoff.2.html) disables swapping.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 19.
|
||||
*/
|
||||
int swapoff(const char* _Nonnull __path) __INTRODUCED_IN(19);
|
||||
int swapoff(const char* _Nonnull __path);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -66,8 +66,7 @@ void __system_property_read_callback(const prop_info* _Nonnull __pi,
|
|||
*
|
||||
* This method is for inspecting and debugging the property system, and not generally useful.
|
||||
*/
|
||||
int __system_property_foreach(void (* _Nonnull __callback)(const prop_info* _Nonnull __pi, void* _Nullable __cookie), void* _Nullable __cookie)
|
||||
__INTRODUCED_IN(19);
|
||||
int __system_property_foreach(void (* _Nonnull __callback)(const prop_info* _Nonnull __pi, void* _Nullable __cookie), void* _Nullable __cookie);
|
||||
|
||||
/*
|
||||
* Waits for the specific system property identified by `pi` to be updated
|
||||
|
|
|
@ -50,10 +50,8 @@ __BEGIN_DECLS
|
|||
* timer file descriptor.
|
||||
*
|
||||
* Returns the new file descriptor on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 19.
|
||||
*/
|
||||
int timerfd_create(clockid_t __clock, int __flags) __INTRODUCED_IN(19);
|
||||
int timerfd_create(clockid_t __clock, int __flags);
|
||||
|
||||
/** The timerfd_settime() flag to use absolute rather than relative times. */
|
||||
#define TFD_TIMER_ABSTIME (1 << 0)
|
||||
|
@ -65,19 +63,15 @@ int timerfd_create(clockid_t __clock, int __flags) __INTRODUCED_IN(19);
|
|||
* stops a timer.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 19.
|
||||
*/
|
||||
int timerfd_settime(int __fd, int __flags, const struct itimerspec* _Nonnull __new_value, struct itimerspec* _Nullable __old_value) __INTRODUCED_IN(19);
|
||||
int timerfd_settime(int __fd, int __flags, const struct itimerspec* _Nonnull __new_value, struct itimerspec* _Nullable __old_value);
|
||||
|
||||
/**
|
||||
* [timerfd_gettime(2)](http://man7.org/linux/man-pages/man2/timerfd_gettime.2.html) queries the
|
||||
* current timer settings.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 19.
|
||||
*/
|
||||
int timerfd_gettime(int __fd, struct itimerspec* _Nonnull __current_value) __INTRODUCED_IN(19);
|
||||
int timerfd_gettime(int __fd, struct itimerspec* _Nonnull __current_value);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -105,9 +105,9 @@ struct statfs64 { __STATFS64_BODY };
|
|||
#define XFS_SUPER_MAGIC 0x58465342
|
||||
|
||||
int statfs(const char* _Nonnull __path, struct statfs* _Nonnull __buf);
|
||||
int statfs64(const char* _Nonnull __path, struct statfs64* _Nonnull __buf) __INTRODUCED_IN(21);
|
||||
int statfs64(const char* _Nonnull __path, struct statfs64* _Nonnull __buf);
|
||||
int fstatfs(int __fd, struct statfs* _Nonnull __buf);
|
||||
int fstatfs64(int __fd, struct statfs64* _Nonnull __buf) __INTRODUCED_IN(21);
|
||||
int fstatfs64(int __fd, struct statfs64* _Nonnull __buf);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ __BEGIN_DECLS
|
|||
|
||||
pid_t wait(int* _Nullable __status);
|
||||
pid_t waitpid(pid_t __pid, int* _Nullable __status, int __options);
|
||||
pid_t wait4(pid_t __pid, int* _Nullable __status, int __options, struct rusage* _Nullable __rusage) __INTRODUCED_IN(18);
|
||||
pid_t wait4(pid_t __pid, int* _Nullable __status, int __options, struct rusage* _Nullable __rusage);
|
||||
|
||||
/* Posix states that idtype_t should be an enumeration type, but
|
||||
* the kernel headers define P_ALL, P_PID and P_PGID as constant macros
|
||||
|
|
|
@ -49,19 +49,19 @@ __BEGIN_DECLS
|
|||
* [cfgetispeed(3)](http://man7.org/linux/man-pages/man3/cfgetispeed.3.html)
|
||||
* returns the terminal input baud rate.
|
||||
*/
|
||||
speed_t cfgetispeed(const struct termios* _Nonnull __t) __INTRODUCED_IN(21);
|
||||
speed_t cfgetispeed(const struct termios* _Nonnull __t);
|
||||
|
||||
/**
|
||||
* [cfgetospeed(3)](http://man7.org/linux/man-pages/man3/cfgetospeed.3.html)
|
||||
* returns the terminal output baud rate.
|
||||
*/
|
||||
speed_t cfgetospeed(const struct termios* _Nonnull __t) __INTRODUCED_IN(21);
|
||||
speed_t cfgetospeed(const struct termios* _Nonnull __t);
|
||||
|
||||
/**
|
||||
* [cfmakeraw(3)](http://man7.org/linux/man-pages/man3/cfmakeraw.3.html)
|
||||
* configures the terminal for "raw" mode.
|
||||
*/
|
||||
void cfmakeraw(struct termios* _Nonnull __t) __INTRODUCED_IN(21);
|
||||
void cfmakeraw(struct termios* _Nonnull __t);
|
||||
|
||||
/**
|
||||
* [cfsetspeed(3)](http://man7.org/linux/man-pages/man3/cfsetspeed.3.html)
|
||||
|
@ -69,7 +69,7 @@ void cfmakeraw(struct termios* _Nonnull __t) __INTRODUCED_IN(21);
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int cfsetspeed(struct termios* _Nonnull __t, speed_t __speed) __INTRODUCED_IN(21);
|
||||
int cfsetspeed(struct termios* _Nonnull __t, speed_t __speed);
|
||||
|
||||
/**
|
||||
* [cfsetispeed(3)](http://man7.org/linux/man-pages/man3/cfsetispeed.3.html)
|
||||
|
@ -77,7 +77,7 @@ int cfsetspeed(struct termios* _Nonnull __t, speed_t __speed) __INTRODUCED_IN(21
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int cfsetispeed(struct termios* _Nonnull _t, speed_t __speed) __INTRODUCED_IN(21);
|
||||
int cfsetispeed(struct termios* _Nonnull _t, speed_t __speed);
|
||||
|
||||
/**
|
||||
* [cfsetospeed(3)](http://man7.org/linux/man-pages/man3/cfsetospeed.3.html)
|
||||
|
@ -85,7 +85,7 @@ int cfsetispeed(struct termios* _Nonnull _t, speed_t __speed) __INTRODUCED_IN(21
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int cfsetospeed(struct termios* _Nonnull __t, speed_t __speed) __INTRODUCED_IN(21);
|
||||
int cfsetospeed(struct termios* _Nonnull __t, speed_t __speed);
|
||||
|
||||
/**
|
||||
* [tcdrain(3)](http://man7.org/linux/man-pages/man3/tcdrain.3.html)
|
||||
|
@ -93,7 +93,7 @@ int cfsetospeed(struct termios* _Nonnull __t, speed_t __speed) __INTRODUCED_IN(2
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int tcdrain(int __fd) __INTRODUCED_IN(21);
|
||||
int tcdrain(int __fd);
|
||||
|
||||
/**
|
||||
* [tcflow(3)](http://man7.org/linux/man-pages/man3/tcflow.3.html)
|
||||
|
@ -102,7 +102,7 @@ int tcdrain(int __fd) __INTRODUCED_IN(21);
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int tcflow(int __fd, int __action) __INTRODUCED_IN(21);
|
||||
int tcflow(int __fd, int __action);
|
||||
|
||||
/**
|
||||
* [tcflush(3)](http://man7.org/linux/man-pages/man3/tcflush.3.html)
|
||||
|
@ -112,7 +112,7 @@ int tcflow(int __fd, int __action) __INTRODUCED_IN(21);
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int tcflush(int __fd, int __queue) __INTRODUCED_IN(21);
|
||||
int tcflush(int __fd, int __queue);
|
||||
|
||||
/**
|
||||
* [tcgetattr(3)](http://man7.org/linux/man-pages/man3/tcgetattr.3.html)
|
||||
|
@ -120,7 +120,7 @@ int tcflush(int __fd, int __queue) __INTRODUCED_IN(21);
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int tcgetattr(int __fd, struct termios* _Nonnull __t) __INTRODUCED_IN(21);
|
||||
int tcgetattr(int __fd, struct termios* _Nonnull __t);
|
||||
|
||||
/**
|
||||
* [tcgetsid(3)](http://man7.org/linux/man-pages/man3/tcgetsid.3.html)
|
||||
|
@ -129,7 +129,7 @@ int tcgetattr(int __fd, struct termios* _Nonnull __t) __INTRODUCED_IN(21);
|
|||
* Returns a non-negative session id on success and
|
||||
* returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
pid_t tcgetsid(int __fd) __INTRODUCED_IN(21);
|
||||
pid_t tcgetsid(int __fd);
|
||||
|
||||
/**
|
||||
* [tcsendbreak(3)](http://man7.org/linux/man-pages/man3/tcsendbreak.3.html)
|
||||
|
@ -137,7 +137,7 @@ pid_t tcgetsid(int __fd) __INTRODUCED_IN(21);
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int tcsendbreak(int __fd, int __duration) __INTRODUCED_IN(21);
|
||||
int tcsendbreak(int __fd, int __duration);
|
||||
|
||||
/**
|
||||
* [tcsetattr(3)](http://man7.org/linux/man-pages/man3/tcsetattr.3.html)
|
||||
|
@ -145,7 +145,7 @@ int tcsendbreak(int __fd, int __duration) __INTRODUCED_IN(21);
|
|||
*
|
||||
* Returns 0 on success and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int tcsetattr(int __fd, int __optional_actions, const struct termios* _Nonnull __t) __INTRODUCED_IN(21);
|
||||
int tcsetattr(int __fd, int __optional_actions, const struct termios* _Nonnull __t);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -252,7 +252,7 @@ size_t strftime(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, co
|
|||
/**
|
||||
* Equivalent to strftime() on Android where only C/POSIX locales are available.
|
||||
*/
|
||||
size_t strftime_l(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, const struct tm* _Nullable __tm, locale_t _Nonnull __l) __strftimelike(3) __INTRODUCED_IN(21);
|
||||
size_t strftime_l(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, const struct tm* _Nullable __tm, locale_t _Nonnull __l) __strftimelike(3);
|
||||
|
||||
/**
|
||||
* [ctime(3)](http://man7.org/linux/man-pages/man3/ctime.3p.html) formats
|
||||
|
|
|
@ -58,10 +58,8 @@ typedef __CHAR32_TYPE__ char32_t;
|
|||
*
|
||||
* Returns the number of bytes written to `__buf` on success, and returns -1 and sets `errno`
|
||||
* on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
size_t c16rtomb(char* _Nullable __buf, char16_t __ch16, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
|
||||
size_t c16rtomb(char* _Nullable __buf, char16_t __ch16, mbstate_t* _Nullable __ps);
|
||||
|
||||
/**
|
||||
* [c32rtomb(3)](http://man7.org/linux/man-pages/man3/c32rtomb.3.html) converts a single UTF-32
|
||||
|
@ -69,25 +67,19 @@ size_t c16rtomb(char* _Nullable __buf, char16_t __ch16, mbstate_t* _Nullable __p
|
|||
*
|
||||
* Returns the number of bytes written to `__buf` on success, and returns -1 and sets `errno`
|
||||
* on failure.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
size_t c32rtomb(char* _Nullable __buf, char32_t __ch32, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
|
||||
size_t c32rtomb(char* _Nullable __buf, char32_t __ch32, mbstate_t* _Nullable __ps);
|
||||
|
||||
/**
|
||||
* [mbrtoc16(3)](http://man7.org/linux/man-pages/man3/mbrtoc16.3.html) converts the next UTF-8
|
||||
* sequence to a UTF-16 code point.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
size_t mbrtoc16(char16_t* _Nullable __ch16, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
|
||||
size_t mbrtoc16(char16_t* _Nullable __ch16, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps);
|
||||
|
||||
/**
|
||||
* [mbrtoc32(3)](http://man7.org/linux/man-pages/man3/mbrtoc32.3.html) converts the next UTF-8
|
||||
* sequence to a UTF-32 code point.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
size_t mbrtoc32(char32_t* _Nullable __ch32, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
|
||||
size_t mbrtoc32(char32_t* _Nullable __ch32, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps);
|
||||
|
||||
__END_DECLS
|
||||
|
|
|
@ -86,12 +86,12 @@ int setpgid(pid_t __pid, pid_t __pgid);
|
|||
pid_t getppid(void);
|
||||
pid_t getpgrp(void);
|
||||
int setpgrp(void);
|
||||
pid_t getsid(pid_t __pid) __INTRODUCED_IN(17);
|
||||
pid_t getsid(pid_t __pid);
|
||||
pid_t setsid(void);
|
||||
|
||||
int execv(const char* _Nonnull __path, char* _Nullable const* _Nullable __argv);
|
||||
int execvp(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv);
|
||||
int execvpe(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp) __INTRODUCED_IN(21);
|
||||
int execvpe(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp);
|
||||
int execve(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp);
|
||||
int execl(const char* _Nonnull __path, const char* _Nullable __arg0, ...) __attribute__((__sentinel__));
|
||||
int execlp(const char* _Nonnull __file, const char* _Nullable __arg0, ...) __attribute__((__sentinel__));
|
||||
|
@ -206,7 +206,7 @@ long pathconf(const char* _Nonnull __path, int __name);
|
|||
int access(const char* _Nonnull __path, int __mode);
|
||||
int faccessat(int __dirfd, const char* _Nonnull __path, int __mode, int __flags);
|
||||
int link(const char* _Nonnull __old_path, const char* _Nonnull __new_path);
|
||||
int linkat(int __old_dir_fd, const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path, int __flags) __INTRODUCED_IN(21);
|
||||
int linkat(int __old_dir_fd, const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path, int __flags);
|
||||
int unlink(const char* _Nonnull __path);
|
||||
int unlinkat(int __dirfd, const char* _Nonnull __path, int __flags);
|
||||
int chdir(const char* _Nonnull __path);
|
||||
|
@ -218,10 +218,9 @@ int pipe2(int __fds[_Nonnull 2], int __flags);
|
|||
#endif
|
||||
int chroot(const char* _Nonnull __path);
|
||||
int symlink(const char* _Nonnull __old_path, const char* _Nonnull __new_path);
|
||||
int symlinkat(const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path) __INTRODUCED_IN(21);
|
||||
int symlinkat(const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path);
|
||||
ssize_t readlink(const char* _Nonnull __path, char* _Nonnull __buf, size_t __buf_size);
|
||||
ssize_t readlinkat(int __dir_fd, const char* _Nonnull __path, char* _Nonnull __buf, size_t __buf_size)
|
||||
__INTRODUCED_IN(21);
|
||||
ssize_t readlinkat(int __dir_fd, const char* _Nonnull __path, char* _Nonnull __buf, size_t __buf_size);
|
||||
int chown(const char* _Nonnull __path, uid_t __owner, gid_t __group);
|
||||
int fchown(int __fd, uid_t __owner, gid_t __group);
|
||||
int fchownat(int __dir_fd, const char* _Nonnull __path, uid_t __owner, gid_t __group, int __flags);
|
||||
|
@ -261,13 +260,13 @@ ssize_t write(int __fd, const void* __BIONIC_COMPLICATED_NULLNESS __buf, size_t
|
|||
|
||||
int dup(int __old_fd);
|
||||
int dup2(int __old_fd, int __new_fd);
|
||||
int dup3(int __old_fd, int __new_fd, int __flags) __INTRODUCED_IN(21);
|
||||
int dup3(int __old_fd, int __new_fd, int __flags);
|
||||
int fsync(int __fd);
|
||||
int fdatasync(int __fd);
|
||||
|
||||
/* See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
|
||||
#if defined(__USE_FILE_OFFSET64)
|
||||
int truncate(const char* _Nonnull __path, off_t __length) __RENAME(truncate64) __INTRODUCED_IN(21);
|
||||
int truncate(const char* _Nonnull __path, off_t __length) __RENAME(truncate64);
|
||||
off_t lseek(int __fd, off_t __offset, int __whence) __RENAME(lseek64);
|
||||
ssize_t pread(int __fd, void* _Nonnull __buf, size_t __count, off_t __offset) __RENAME(pread64);
|
||||
ssize_t pwrite(int __fd, const void* _Nonnull __buf, size_t __count, off_t __offset) __RENAME(pwrite64);
|
||||
|
@ -280,7 +279,7 @@ ssize_t pwrite(int __fd, const void* _Nonnull __buf, size_t __count, off_t __off
|
|||
int ftruncate(int __fd, off_t __length);
|
||||
#endif
|
||||
|
||||
int truncate64(const char* _Nonnull __path, off64_t __length) __INTRODUCED_IN(21);
|
||||
int truncate64(const char* _Nonnull __path, off64_t __length);
|
||||
off64_t lseek64(int __fd, off64_t __offset, int __whence);
|
||||
ssize_t pread64(int __fd, void* _Nonnull __buf, size_t __count, off64_t __offset);
|
||||
ssize_t pwrite64(int __fd, const void* _Nonnull __buf, size_t __count, off64_t __offset);
|
||||
|
@ -303,7 +302,7 @@ int ttyname_r(int __fd, char* _Nonnull __buf, size_t __buf_size);
|
|||
|
||||
int acct(const char* _Nullable __path);
|
||||
|
||||
int getpagesize(void) __INTRODUCED_IN(21);
|
||||
int getpagesize(void);
|
||||
|
||||
long syscall(long __number, ...);
|
||||
|
||||
|
|
|
@ -58,18 +58,18 @@ size_t mbrlen(const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps);
|
|||
size_t mbrtowc(wchar_t* _Nullable __buf, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps);
|
||||
size_t mbsrtowcs(wchar_t* _Nullable __dst, const char* _Nullable * _Nonnull __src, size_t __dst_n, mbstate_t* _Nullable __ps);
|
||||
size_t mbsrtowcs_l(wchar_t* _Nullable __dst, const char* _Nullable * _Nonnull __src, size_t __dst_n, mbstate_t* _Nullable __ps, locale_t _Nonnull __l) __INTRODUCED_IN(35);
|
||||
size_t mbsnrtowcs(wchar_t* _Nullable __dst, const char* _Nullable * _Nullable __src, size_t __src_n, size_t __dst_n, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
|
||||
size_t mbsnrtowcs(wchar_t* _Nullable __dst, const char* _Nullable * _Nullable __src, size_t __src_n, size_t __dst_n, mbstate_t* _Nullable __ps);
|
||||
wint_t putwc(wchar_t __wc, FILE* _Nonnull __fp);
|
||||
wint_t putwchar(wchar_t __wc);
|
||||
int swprintf(wchar_t* _Nonnull __buf, size_t __n, const wchar_t* _Nonnull __fmt, ...);
|
||||
int swscanf(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __fmt, ...);
|
||||
wint_t ungetwc(wint_t __wc, FILE* _Nonnull __fp);
|
||||
int vfwprintf(FILE* _Nonnull __fp, const wchar_t* _Nonnull __fmt, va_list __args);
|
||||
int vfwscanf(FILE* _Nonnull __fp, const wchar_t* _Nonnull __fmt, va_list __args) __INTRODUCED_IN(21);
|
||||
int vfwscanf(FILE* _Nonnull __fp, const wchar_t* _Nonnull __fmt, va_list __args);
|
||||
int vswprintf(wchar_t* _Nonnull __buf, size_t __n, const wchar_t* _Nonnull __fmt, va_list __args);
|
||||
int vswscanf(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __fmt, va_list __args) __INTRODUCED_IN(21);
|
||||
int vswscanf(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __fmt, va_list __args);
|
||||
int vwprintf(const wchar_t* _Nonnull __fmt, va_list __args);
|
||||
int vwscanf(const wchar_t* _Nonnull __fmt, va_list __args) __INTRODUCED_IN(21);
|
||||
int vwscanf(const wchar_t* _Nonnull __fmt, va_list __args);
|
||||
wchar_t* _Nonnull wcpcpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src);
|
||||
wchar_t* _Nonnull wcpncpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
|
||||
size_t wcrtomb(char* _Nullable __buf, wchar_t __wc, mbstate_t* _Nullable __ps);
|
||||
|
@ -89,7 +89,7 @@ int wcsncasecmp_l(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs,
|
|||
wchar_t* _Nonnull wcsncat(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
|
||||
int wcsncmp(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, size_t __n);
|
||||
wchar_t* _Nonnull wcsncpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
|
||||
size_t wcsnrtombs(char* _Nullable __dst, const wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __src, size_t __src_n, size_t __dst_n, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
|
||||
size_t wcsnrtombs(char* _Nullable __dst, const wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __src, size_t __src_n, size_t __dst_n, mbstate_t* _Nullable __ps);
|
||||
wchar_t* _Nullable wcspbrk(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __accept);
|
||||
wchar_t* _Nullable wcsrchr(const wchar_t* _Nonnull __s, wchar_t __wc);
|
||||
size_t wcsrtombs(char* _Nullable __dst, const wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __src, size_t __dst_n, mbstate_t* _Nullable __ps);
|
||||
|
@ -98,16 +98,16 @@ size_t wcsspn(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __accept);
|
|||
wchar_t* _Nullable wcsstr(const wchar_t* _Nonnull __haystack, const wchar_t* _Nonnull __needle);
|
||||
double wcstod(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr);
|
||||
double wcstod_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(28);
|
||||
float wcstof(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr) __INTRODUCED_IN(21);
|
||||
float wcstof(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr);
|
||||
float wcstof_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(28);
|
||||
wchar_t* _Nullable wcstok(wchar_t* _Nullable __s, const wchar_t* _Nonnull __delimiter, wchar_t* _Nonnull * _Nonnull __ptr);
|
||||
long wcstol(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base);
|
||||
long wcstol_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(28);
|
||||
long long wcstoll(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base) __INTRODUCED_IN(21);
|
||||
long double wcstold(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr) __INTRODUCED_IN(21);
|
||||
long long wcstoll(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base);
|
||||
long double wcstold(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr);
|
||||
unsigned long wcstoul(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base);
|
||||
unsigned long wcstoul_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(28);
|
||||
unsigned long long wcstoull(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base) __INTRODUCED_IN(21);
|
||||
unsigned long long wcstoull(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base);
|
||||
int wcswidth(const wchar_t* _Nonnull __s, size_t __n);
|
||||
size_t wcsxfrm(wchar_t* __BIONIC_COMPLICATED_NULLNESS __dst, const wchar_t* _Nonnull __src, size_t __n);
|
||||
int wctob(wint_t __wc);
|
||||
|
@ -123,13 +123,12 @@ wchar_t* _Nonnull wmemset(wchar_t* _Nonnull __dst, wchar_t __wc, size_t __n);
|
|||
int wprintf(const wchar_t* _Nonnull __fmt, ...);
|
||||
int wscanf(const wchar_t* _Nonnull __fmt, ...);
|
||||
|
||||
long long wcstoll_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
unsigned long long wcstoull_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
long double wcstold_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
long long wcstoll_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l);
|
||||
unsigned long long wcstoull_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l);
|
||||
long double wcstold_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l);
|
||||
|
||||
int wcscoll_l(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__
|
||||
__INTRODUCED_IN(21);
|
||||
size_t wcsxfrm_l(wchar_t* __BIONIC_COMPLICATED_NULLNESS __dst, const wchar_t* _Nonnull __src, size_t __n, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int wcscoll_l(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__;
|
||||
size_t wcsxfrm_l(wchar_t* __BIONIC_COMPLICATED_NULLNESS __dst, const wchar_t* _Nonnull __src, size_t __n, locale_t _Nonnull __l);
|
||||
size_t wcslcat(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
|
||||
size_t wcslcpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
|
||||
|
||||
|
|
|
@ -35,27 +35,27 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
int iswalnum_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswalpha_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswblank_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswcntrl_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswdigit_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswgraph_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswlower_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswprint_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswpunct_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswspace_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswupper_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswxdigit_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswalnum_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswalpha_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswblank_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswcntrl_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswdigit_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswgraph_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswlower_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswprint_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswpunct_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswspace_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswupper_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
int iswxdigit_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
|
||||
wint_t towlower_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
wint_t towupper_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
wint_t towlower_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
wint_t towupper_l(wint_t __wc, locale_t _Nonnull __l);
|
||||
|
||||
wint_t towctrans_l(wint_t __wc, wctrans_t _Nonnull __transform, locale_t _Nonnull __l) __INTRODUCED_IN(26);
|
||||
wctrans_t _Nonnull wctrans_l(const char* _Nonnull __name, locale_t _Nonnull __l) __INTRODUCED_IN(26);
|
||||
|
||||
wctype_t wctype_l(const char* _Nonnull __name, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
int iswctype_l(wint_t __wc, wctype_t __transform, locale_t _Nonnull __l) __INTRODUCED_IN(21);
|
||||
wctype_t wctype_l(const char* _Nonnull __name, locale_t _Nonnull __l);
|
||||
int iswctype_l(wint_t __wc, wctype_t __transform, locale_t _Nonnull __l);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
|
Loading…
Reference in a new issue