Merge "Another round of documentation."
This commit is contained in:
commit
9ebcb013b1
48 changed files with 907 additions and 261 deletions
|
@ -26,15 +26,26 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SET_ABORT_MESSAGE_H
|
||||
#define _SET_ABORT_MESSAGE_H
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file android/set_abort_message.h
|
||||
* @brief The android_set_abort_message() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* android_set_abort_message() sets the abort message that will be shown
|
||||
* by [debuggerd](https://source.android.com/devices/tech/debug/native-crash).
|
||||
* 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* __msg) __INTRODUCED_IN(21);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,18 +26,24 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_AUXVEC_H_
|
||||
#define _BITS_AUXVEC_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/auxvec.h
|
||||
* @brief Constants for use with getauxval().
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <linux/auxvec.h>
|
||||
|
||||
/* Historical arch-specific cruft. */
|
||||
#define AT_FPUCW 18 /* SuperH */
|
||||
#define AT_DCACHEBSIZE 19 /* PowerPC */
|
||||
#define AT_ICACHEBSIZE 20 /* PowerPC */
|
||||
#define AT_UCACHEBSIZE 21 /* PowerPC */
|
||||
#define AT_IGNOREPPC 22 /* PowerPC */
|
||||
|
||||
#endif
|
||||
/** Historical SuperH cruft. Irrelevant on Android. */
|
||||
#define AT_FPUCW 18
|
||||
/** Historical PowerPC cruft. Irrelevant on Android. */
|
||||
#define AT_DCACHEBSIZE 19
|
||||
/** Historical PowerPC cruft. Irrelevant on Android. */
|
||||
#define AT_ICACHEBSIZE 20
|
||||
/** Historical PowerPC cruft. Irrelevant on Android. */
|
||||
#define AT_UCACHEBSIZE 21
|
||||
/** Historical PowerPC cruft. Irrelevant on Android. */
|
||||
#define AT_IGNOREPPC 22
|
||||
|
|
|
@ -26,12 +26,17 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_EPOLL_EVENT_H_
|
||||
#define _BITS_EPOLL_EVENT_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/epoll_event.h
|
||||
* @brief Types for epoll().
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/** The union of possible data types for an `epoll_event`. */
|
||||
typedef union epoll_data {
|
||||
void* ptr;
|
||||
int fd;
|
||||
|
@ -39,6 +44,7 @@ typedef union epoll_data {
|
|||
uint64_t u64;
|
||||
} epoll_data_t;
|
||||
|
||||
/** The type representing an epoll() event. */
|
||||
struct epoll_event {
|
||||
uint32_t events;
|
||||
epoll_data_t data;
|
||||
|
@ -47,5 +53,3 @@ struct epoll_event {
|
|||
__packed
|
||||
#endif
|
||||
;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,15 +26,23 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_FCNTL_H_
|
||||
#define _BITS_FCNTL_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/fcntl.h
|
||||
* @brief The fcntl() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [fcntl(3)](http://man7.org/linux/man-pages/man2/fcntl.2.html) performs various operations
|
||||
* on file descriptors.
|
||||
*
|
||||
* The return value depends on the operation.
|
||||
*/
|
||||
int fcntl(int __fd, int __cmd, ...);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,18 +26,42 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_GETOPT_H_
|
||||
#define _BITS_GETOPT_H_
|
||||
#pragma once
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [getopt(3)](http://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
|
||||
*
|
||||
* Returns the next option character on success, returns -1 if all options have been parsed, and
|
||||
* returns `'?'` on error.
|
||||
*/
|
||||
int getopt(int __argc, char* const __argv[], const char* __options);
|
||||
|
||||
/**
|
||||
* Points to the text of the corresponding value for options that take an argument.
|
||||
*/
|
||||
extern char* optarg;
|
||||
extern int optind, opterr, optopt;
|
||||
|
||||
/**
|
||||
* The index of the next element to be processed.
|
||||
* On Android, callers should set `optreset = 1` rather than trying to reset `optind` to
|
||||
* scan a new argument vector.
|
||||
*/
|
||||
extern int optind;
|
||||
|
||||
/**
|
||||
* Determines whether getopt() outputs error messages.
|
||||
* Callers should set this to `0` to disable error messages.
|
||||
* Defaults to non-zero.
|
||||
*/
|
||||
extern int opterr;
|
||||
|
||||
/**
|
||||
* The last unrecognized option character, valid when getopt() returns `'?'`.
|
||||
*/
|
||||
extern int optopt;
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,16 +26,20 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_IN_ADDR_H_
|
||||
#define _BITS_IN_ADDR_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/in_addr.h
|
||||
* @brief IPv4 address types.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/** An integral type representing an IPv4 address. */
|
||||
typedef uint32_t in_addr_t;
|
||||
|
||||
/** A structure representing an IPv4 address. */
|
||||
struct in_addr {
|
||||
in_addr_t s_addr;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,13 +26,20 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_IOCTL_H_
|
||||
#define _BITS_IOCTL_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/ioctl.h
|
||||
* @brief The ioctl() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [ioctl(2)](http://man7.org/linux/man-pages/man2/ioctl.2.html) operates on device files.
|
||||
*/
|
||||
int ioctl(int __fd, int __request, ...);
|
||||
|
||||
/*
|
||||
|
@ -57,5 +64,3 @@ int ioctl(int __fd, unsigned __request, ...) __overloadable __enable_if(1, "") _
|
|||
#endif
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,16 +26,21 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_IP_MREQ_SOURCE_H_
|
||||
#define _BITS_IP_MREQ_SOURCE_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/ip_mreq_source.h
|
||||
* @brief The `ip_mreq_source` type.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <bits/in_addr.h>
|
||||
|
||||
/**
|
||||
* The type representing an IPv4 multicast source.
|
||||
*/
|
||||
struct ip_mreq_source {
|
||||
struct in_addr imr_multiaddr;
|
||||
struct in_addr imr_interface;
|
||||
struct in_addr imr_sourceaddr;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,12 +26,17 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_IP_MSFILTER_H_
|
||||
#define _BITS_IP_MSFILTER_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/ip_msfilter.h
|
||||
* @brief IPv4 multicast filtering.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <bits/in_addr.h>
|
||||
|
||||
/** The type representing an IPv4 multicast filter. */
|
||||
struct ip_msfilter {
|
||||
struct in_addr imsf_multiaddr;
|
||||
struct in_addr imsf_interface;
|
||||
|
@ -39,5 +44,3 @@ struct ip_msfilter {
|
|||
uint32_t imsf_numsrc;
|
||||
struct in_addr imsf_slist[1];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,22 +26,42 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_LOCKF_H_
|
||||
#define _BITS_LOCKF_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/lockf.h
|
||||
* @brief The lockf() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/** lockf() command to unlock a section of a file. */
|
||||
#define F_ULOCK 0
|
||||
/** lockf() command to block until it locks a section of a file. */
|
||||
#define F_LOCK 1
|
||||
/** lockf() command to try to lock a section of a file. */
|
||||
#define F_TLOCK 2
|
||||
/** lockf() command to test whether a section of a file is unlocked (or locked by the caller). */
|
||||
#define F_TEST 3
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [lockf(3)](http://man7.org/linux/man-pages/man3/lockf.3.html) manipulates POSIX file locks.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 24.
|
||||
*
|
||||
* See also flock().
|
||||
*/
|
||||
int lockf(int __fd, int __cmd, off_t __length) __RENAME_IF_FILE_OFFSET64(lockf64) __INTRODUCED_IN(24);
|
||||
|
||||
/**
|
||||
* Like lockf() but allows using a 64-bit length
|
||||
* even from a 32-bit process without `__FILE_OFFSET_BITS=64`.
|
||||
*/
|
||||
int lockf64(int __fd, int __cmd, off64_t __length) __INTRODUCED_IN(24);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,16 +26,22 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_MBSTATE_T_H_
|
||||
#define _BITS_MBSTATE_T_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/mbstate_t.h
|
||||
* @brief The `mbstate_t` type.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/**
|
||||
* An opaque type used by the multibyte conversion functions.
|
||||
* Do not make assumptions about the content of this type.
|
||||
*/
|
||||
typedef struct {
|
||||
unsigned char __seq[4];
|
||||
#ifdef __LP64__
|
||||
unsigned char __reserved[4];
|
||||
#endif
|
||||
} mbstate_t;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,11 +26,14 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_SA_FAMILY_T_H_
|
||||
#define _BITS_SA_FAMILY_T_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/sa_family_t.h
|
||||
* @brief The `sa_family_t` type.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/** The type of fields like `sa_family`. */
|
||||
typedef unsigned short sa_family_t;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,11 +26,16 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_SEEK_CONSTANTS_H_
|
||||
#define _BITS_SEEK_CONSTANTS_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/seek_constants.h
|
||||
* @brief The `SEEK_` constants.
|
||||
*/
|
||||
|
||||
/** Seek to an absolute offset. */
|
||||
#define SEEK_SET 0
|
||||
/** Seek relative to the current offset. */
|
||||
#define SEEK_CUR 1
|
||||
/** Seek relative to the end of the file. */
|
||||
#define SEEK_END 2
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_STRCASECMP_H_
|
||||
#define _BITS_STRCASECMP_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/strcasecmp.h
|
||||
* @brief Case-insensitive string comparison.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -35,11 +39,33 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [strcasecmp(3)](http://man7.org/linux/man-pages/man3/strcasecmp.3.html) compares two strings
|
||||
* ignoring case.
|
||||
*
|
||||
* Returns an integer less than, equal to, or greater than zero if the first string is less than,
|
||||
* equal to, or greater than the second string (ignoring case).
|
||||
*/
|
||||
int strcasecmp(const char* __s1, const char* __s2) __attribute_pure__;
|
||||
|
||||
/**
|
||||
* Like strcasecmp() but taking a `locale_t`.
|
||||
*/
|
||||
int strcasecmp_l(const char* __s1, const char* __s2, locale_t __l) __attribute_pure__ __INTRODUCED_IN(23);
|
||||
|
||||
/**
|
||||
* [strncasecmp(3)](http://man7.org/linux/man-pages/man3/strncasecmp.3.html) compares the first
|
||||
* `n` bytes of two strings ignoring case.
|
||||
*
|
||||
* Returns an integer less than, equal to, or greater than zero if the first `n` bytes of the
|
||||
* first string is less than, equal to, or greater than the first `n` bytes of the second
|
||||
* string (ignoring case).
|
||||
*/
|
||||
int strncasecmp(const char* __s1, const char* __s2, size_t __n) __attribute_pure__;
|
||||
|
||||
/**
|
||||
* Like strncasecmp() but taking a `locale_t`.
|
||||
*/
|
||||
int strncasecmp_l(const char* __s1, const char* __s2, size_t __n, locale_t __l) __attribute_pure__ __INTRODUCED_IN(23);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,13 +26,13 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef BITS_FILE_H
|
||||
#define BITS_FILE_H
|
||||
#pragma once
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** The opaque structure implementing `FILE`. Do not make any assumptions about its content. */
|
||||
struct __sFILE {
|
||||
#if defined(__LP64__)
|
||||
char __private[152];
|
||||
|
@ -42,5 +42,3 @@ struct __sFILE {
|
|||
} __attribute__((aligned(sizeof(void*))));
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* BITS_FILE_H */
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_TIMESPEC_H_
|
||||
#define _BITS_TIMESPEC_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/timespec.h
|
||||
* @brief The `timespec` struct.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -38,10 +42,11 @@
|
|||
*/
|
||||
#ifndef _STRUCT_TIMESPEC
|
||||
#define _STRUCT_TIMESPEC
|
||||
/** Represents a time. */
|
||||
struct timespec {
|
||||
/** Number of seconds. */
|
||||
time_t tv_sec;
|
||||
/** Number of nanoseconds. Must be less than 1,000,000. */
|
||||
long tv_nsec;
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,24 +26,43 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_WAIT_H_
|
||||
#define _BITS_WAIT_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/wait.h
|
||||
* @brief Process exit status macros.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <linux/wait.h>
|
||||
|
||||
#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
|
||||
#define WCOREDUMP(s) ((s) & 0x80)
|
||||
#define WTERMSIG(s) ((s) & 0x7f)
|
||||
#define WSTOPSIG(s) WEXITSTATUS(s)
|
||||
/** Returns the exit status from a process for which `WIFEXITED` is true. */
|
||||
#define WEXITSTATUS(__status) (((__status) & 0xff00) >> 8)
|
||||
|
||||
#define WIFEXITED(s) (WTERMSIG(s) == 0)
|
||||
#define WIFSTOPPED(s) (WTERMSIG(s) == 0x7f)
|
||||
#define WIFSIGNALED(s) (WTERMSIG((s)+1) >= 2)
|
||||
#define WIFCONTINUED(s) ((s) == 0xffff)
|
||||
/** Returns true if a process dumped core. */
|
||||
#define WCOREDUMP(__status) ((__status) & 0x80)
|
||||
|
||||
#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
|
||||
#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
|
||||
/** Returns the terminating signal from a process, or 0 if it exited normally. */
|
||||
#define WTERMSIG(__status) ((__status) & 0x7f)
|
||||
|
||||
#endif
|
||||
/** Returns the signal that stopped the process, if `WIFSTOPPED` is true. */
|
||||
#define WSTOPSIG(__status) WEXITSTATUS(__status)
|
||||
|
||||
/** Returns true if the process exited normally. */
|
||||
#define WIFEXITED(__status) (WTERMSIG(__status) == 0)
|
||||
|
||||
/** Returns true if the process was stopped by a signal. */
|
||||
#define WIFSTOPPED(__status) (WTERMSIG(__status) == 0x7f)
|
||||
|
||||
/** Returns true if the process was terminated by a signal. */
|
||||
#define WIFSIGNALED(__status) (WTERMSIG((__status)+1) >= 2)
|
||||
|
||||
/** Returns true if the process was resumed . */
|
||||
#define WIFCONTINUED(__status) ((__status) == 0xffff)
|
||||
|
||||
/** Constructs a status value from the given exit code and signal number. */
|
||||
#define W_EXITCODE(__exit_code, __signal_number) ((__exit_code) << 8 | (__signal_number))
|
||||
|
||||
/** Constructs a status value for a process stopped by the given signal. */
|
||||
#define W_STOPCODE(__signal_number) ((__signal_number) << 8 | 0x7f)
|
||||
|
|
|
@ -26,19 +26,23 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_WCHAR_LIMITS_H_
|
||||
#define _BITS_WCHAR_LIMITS_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file bits/wchar_limits.h
|
||||
* @brief `wchar_t` limits.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/* Both GCC and clang define __WCHAR_MAX__. */
|
||||
/** The maximum value of a `wchar_t`. */
|
||||
#define WCHAR_MAX __WCHAR_MAX__
|
||||
|
||||
/* As of 3.4, clang still doesn't define __WCHAR_MIN__. */
|
||||
#if defined(__WCHAR_UNSIGNED__)
|
||||
/** The minimum value of a `wchar_t`. */
|
||||
# define WCHAR_MIN L'\0'
|
||||
#else
|
||||
/** The minimum value of a `wchar_t`. */
|
||||
# define WCHAR_MIN (-(WCHAR_MAX) - 1)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -37,69 +37,129 @@
|
|||
* @(#)ctype.h 5.3 (Berkeley) 4/3/91
|
||||
*/
|
||||
|
||||
#ifndef _CTYPE_H_
|
||||
#define _CTYPE_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file ctype.h
|
||||
* @brief ASCII character classification.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <xlocale.h>
|
||||
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_U 0x01
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_L 0x02
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_D 0x04
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_S 0x08
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_P 0x10
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_C 0x20
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_X 0x40
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_B 0x80
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_R (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_A (_CTYPE_L|_CTYPE_U)
|
||||
|
||||
/* _CTYPE_N was added to NDK r10 and is expected by gnu-libstdc++ */
|
||||
/** Internal implementation detail. Do not use. */
|
||||
#define _CTYPE_N _CTYPE_D
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** Internal implementation detail. Do not use. */
|
||||
extern const char* _ctype_;
|
||||
|
||||
/** Returns true if `ch` is in `[A-Za-z0-9]`. */
|
||||
int isalnum(int __ch);
|
||||
/** Returns true if `ch` is in `[A-Za-z]`. */
|
||||
int isalpha(int __ch);
|
||||
/** Returns true if `ch` is a space or tab. */
|
||||
int isblank(int __ch);
|
||||
/** Returns true if `ch` is a control character (any character before space, plus DEL). */
|
||||
int iscntrl(int __ch);
|
||||
/** Returns true if `ch` is in `[0-9]`. */
|
||||
int isdigit(int __ch);
|
||||
/** Returns true if `ch` is `[A-Za-z0-9]` or punctuation. */
|
||||
int isgraph(int __ch);
|
||||
/** Returns true if `ch` is in `[a-z]`. */
|
||||
int islower(int __ch);
|
||||
/** Returns true if `ch` is `[A-Za-z0-9]` or punctuation or space. */
|
||||
int isprint(int __ch);
|
||||
/** Returns true if `ch` is punctuation. */
|
||||
int ispunct(int __ch);
|
||||
/** Returns true if `ch` is in `[ \f\n\r\t\v]`. */
|
||||
int isspace(int __ch);
|
||||
/** Returns true if `ch` is in `[A-Z]`. */
|
||||
int isupper(int __ch);
|
||||
/** Returns true if `ch` is in `[0-9a-f]`. */
|
||||
int isxdigit(int __ch);
|
||||
|
||||
/** Returns the corresponding lower-case character if `ch` is upper-case, or `ch` otherwise. */
|
||||
int tolower(int __ch);
|
||||
|
||||
/**
|
||||
* Returns the corresponding lower-case character if `ch` is upper-case, or undefined otherwise.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*
|
||||
* Prefer tolower() instead.
|
||||
*/
|
||||
int _tolower(int __ch) __INTRODUCED_IN(21);
|
||||
|
||||
/** Returns the corresponding upper-case character if `ch` is lower-case, or `ch` otherwise. */
|
||||
int toupper(int __ch);
|
||||
|
||||
/**
|
||||
* Returns the corresponding upper-case character if `ch` is lower-case, or undefined otherwise.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*
|
||||
* Prefer toupper() instead.
|
||||
*/
|
||||
int _toupper(int __ch) __INTRODUCED_IN(21);
|
||||
|
||||
#if __ANDROID_API__ >= __ANDROID_API_L__
|
||||
/** Like isalnum but with an ignored `locale_t`. */
|
||||
int isalnum_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like isalpha but with an ignored `locale_t`. */
|
||||
int isalpha_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like isblank but with an ignored `locale_t`. */
|
||||
int isblank_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like iscntrl but with an ignored `locale_t`. */
|
||||
int iscntrl_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like isdigit but with an ignored `locale_t`. */
|
||||
int isdigit_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like isgraph but with an ignored `locale_t`. */
|
||||
int isgraph_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like islower but with an ignored `locale_t`. */
|
||||
int islower_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like isprint but with an ignored `locale_t`. */
|
||||
int isprint_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like ispunct but with an ignored `locale_t`. */
|
||||
int ispunct_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like isspace but with an ignored `locale_t`. */
|
||||
int isspace_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like isupper but with an ignored `locale_t`. */
|
||||
int isupper_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like isxdigit but with an ignored `locale_t`. */
|
||||
int isxdigit_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like tolower but with an ignored `locale_t`. */
|
||||
int tolower_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
/** Like toupper but with an ignored `locale_t`. */
|
||||
int toupper_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
|
||||
#else
|
||||
// Implemented as static inlines before 21.
|
||||
#endif
|
||||
|
||||
/** Returns true if `ch` is less than 0x80. */
|
||||
int isascii(int __ch);
|
||||
/** Returns `ch & 0x7f`. */
|
||||
int toascii(int __ch);
|
||||
int _tolower(int __ch) __INTRODUCED_IN(21);
|
||||
int _toupper(int __ch) __INTRODUCED_IN(21);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -30,42 +30,58 @@
|
|||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _GETOPT_H_
|
||||
#define _GETOPT_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file getopt.h
|
||||
* @brief The getopt() and getopt_long() functions.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <bits/getopt.h>
|
||||
|
||||
/*
|
||||
* GNU-like getopt_long()/getopt_long_only() with 4.4BSD optreset extension.
|
||||
*/
|
||||
#define no_argument 0
|
||||
#define required_argument 1
|
||||
#define optional_argument 2
|
||||
/** A `has_arg` value for `struct option`. */
|
||||
#define no_argument 0
|
||||
/** A `has_arg` value for `struct option`. */
|
||||
#define required_argument 1
|
||||
/** A `has_arg` value for `struct option`. */
|
||||
#define optional_argument 2
|
||||
|
||||
struct option {
|
||||
/* name of long option */
|
||||
const char *name;
|
||||
/*
|
||||
* one of no_argument, required_argument, and optional_argument:
|
||||
* whether option takes an argument
|
||||
*/
|
||||
int has_arg;
|
||||
/* if not NULL, set *flag to val when option found */
|
||||
int *flag;
|
||||
/* if flag not NULL, value to set *flag to; else return value */
|
||||
int val;
|
||||
/** Name of long option. */
|
||||
const char *name;
|
||||
|
||||
/**
|
||||
* One of `no_argument`, `required_argument`, or `optional_argument`.
|
||||
*/
|
||||
int has_arg;
|
||||
|
||||
/** If not NULL, set `*flag` to val when option found. */
|
||||
int* flag;
|
||||
|
||||
/** If `flag` not NULL, the value to assign to `*flag`; otherwise the return value. */
|
||||
int val;
|
||||
};
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [getopt_long(3)](http://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
|
||||
*/
|
||||
int getopt_long(int __argc, char* const* __argv, const char* __options, const struct option* __long_options, int* __long_index);
|
||||
|
||||
/**
|
||||
* [getopt_long_only(3)](http://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
|
||||
*/
|
||||
int getopt_long_only(int __argc, char* const* __argv, const char* __options, const struct option* __long_options, int* __long_index);
|
||||
|
||||
#ifndef _OPTRESET_DECLARED
|
||||
#define _OPTRESET_DECLARED
|
||||
extern int optreset; /* getopt(3) external variable */
|
||||
#define _OPTRESET_DECLARED
|
||||
/**
|
||||
* Must be set to 1 to reset the `getopt` functions before scanning a new argument vector.
|
||||
*/
|
||||
extern int optreset;
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,13 +26,10 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _NET_ROUTE_H_
|
||||
#define _NET_ROUTE_H_
|
||||
#pragma once
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/socket.h>
|
||||
#include <linux/route.h>
|
||||
#include <linux/in6.h>
|
||||
#include <linux/ipv6_route.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,19 +26,56 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _NETINET_ETHER_H_
|
||||
#define _NETINET_ETHER_H_ 1
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file netinet/ether.h
|
||||
* @brief Ethernet (MAC) addresses.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <netinet/if_ether.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [ether_ntoa(3)](http://man7.org/linux/man-pages/man3/ether_ntoa.3.html) returns a string
|
||||
* representation of the given Ethernet address.
|
||||
*
|
||||
* Returns a pointer to a static buffer.
|
||||
*
|
||||
* Available since API level 11.
|
||||
*/
|
||||
char* ether_ntoa(const struct ether_addr* __addr) __INTRODUCED_IN(11);
|
||||
|
||||
/**
|
||||
* [ether_ntoa_r(3)](http://man7.org/linux/man-pages/man3/ether_ntoa_r.3.html) returns a string
|
||||
* representation of the given Ethernet address.
|
||||
*
|
||||
* Returns a pointer to the given buffer.
|
||||
*
|
||||
* Available since API level 11.
|
||||
*/
|
||||
char* ether_ntoa_r(const struct ether_addr* __addr, char* __buf) __INTRODUCED_IN(11);
|
||||
|
||||
/**
|
||||
* [ether_aton(3)](http://man7.org/linux/man-pages/man3/ether_aton.3.html) returns an `ether_addr`
|
||||
* corresponding to the given Ethernet address string.
|
||||
*
|
||||
* Returns a pointer to a static buffer, or NULL if the given string isn't a valid MAC address.
|
||||
*
|
||||
* Available since API level 11.
|
||||
*/
|
||||
struct ether_addr* ether_aton(const char* __ascii) __INTRODUCED_IN(11);
|
||||
|
||||
/**
|
||||
* [ether_aton_r(3)](http://man7.org/linux/man-pages/man3/ether_aton_r.3.html) returns an
|
||||
* `ether_addr` corresponding to the given Ethernet address string.
|
||||
*
|
||||
* Returns a pointer to the given buffer, or NULL if the given string isn't a valid MAC address.
|
||||
*
|
||||
* Available since API level 11.
|
||||
*/
|
||||
struct ether_addr* ether_aton_r(const char* __ascii, struct ether_addr* __addr) __INTRODUCED_IN(11);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_AUXV_H_
|
||||
#define _SYS_AUXV_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/auxv.h
|
||||
* @brief The getauxval() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
|
@ -35,8 +39,15 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [getauxval(3)](http://man7.org/linux/man-pages/man2/personality.2.html) returns values from
|
||||
* the ELF auxiliary vector passed by the kernel.
|
||||
*
|
||||
* 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);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,17 +26,32 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _BIONIC_SYS_CAPABILITY_H
|
||||
#define _BIONIC_SYS_CAPABILITY_H
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/capability.h
|
||||
* @brief Capabilities.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <linux/capability.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [capget(2)](http://man7.org/linux/man-pages/man2/capget.2.html) gets the calling
|
||||
* thread's capabilities.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int capget(cap_user_header_t __hdr_ptr, cap_user_data_t __data_ptr);
|
||||
|
||||
/**
|
||||
* [capset(2)](http://man7.org/linux/man-pages/man2/capset.2.html) sets the calling
|
||||
* thread's capabilities.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int capset(cap_user_header_t __hdr_ptr, const cap_user_data_t __data_ptr);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,24 +26,48 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_EVENTFD_H
|
||||
#define _SYS_EVENTFD_H
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/eventfd.h
|
||||
* @brief Event notification file descriptors.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** The eventfd() flag for a close-on-exec file descriptor. */
|
||||
#define EFD_CLOEXEC O_CLOEXEC
|
||||
/** The eventfd() flag for a non-blocking file descriptor. */
|
||||
#define EFD_NONBLOCK O_NONBLOCK
|
||||
|
||||
typedef uint64_t eventfd_t;
|
||||
|
||||
/**
|
||||
* [eventfd(2)](http://man7.org/linux/man-pages/man2/eventfd.2.html) creates a file descriptor
|
||||
* for event notification.
|
||||
*
|
||||
* Returns a new file descriptor on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int eventfd(unsigned int __initial_value, int __flags);
|
||||
|
||||
/** The type used by eventfd_read() and eventfd_write(). */
|
||||
typedef uint64_t eventfd_t;
|
||||
|
||||
/**
|
||||
* [eventfd_read(3)](http://man7.org/linux/man-pages/man2/eventfd.2.html) is a convenience
|
||||
* wrapper to read an `eventfd_t` from an eventfd file descriptor.
|
||||
*
|
||||
* Returns 0 on success, or returns -1 otherwise.
|
||||
*/
|
||||
int eventfd_read(int __fd, eventfd_t* __value);
|
||||
|
||||
/**
|
||||
* [eventfd_write(3)](http://man7.org/linux/man-pages/man2/eventfd.2.html) is a convenience
|
||||
* wrapper to write an `eventfd_t` to an eventfd file descriptor.
|
||||
*
|
||||
* Returns 0 on success, or returns -1 otherwise.
|
||||
*/
|
||||
int eventfd_write(int __fd, eventfd_t __value);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_FILE_H_
|
||||
#define _SYS_FILE_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/file.h
|
||||
* @brief The flock() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -36,8 +40,12 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [flock(2)](http://man7.org/linux/man-pages/man2/flock.2.html) performs
|
||||
* advisory file lock operations.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int flock(int __fd, int __op);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,17 +26,36 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_FSUID_H_
|
||||
#define _SYS_FSUID_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/fsuid.h
|
||||
* @brief Set UID/GID for filesystem checks.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [setfsuid(2)](http://man7.org/linux/man-pages/man2/setfsuid.2.html) sets the UID used for
|
||||
* filesystem checks.
|
||||
*
|
||||
* Returns the previous UID.
|
||||
*
|
||||
* Available since API level 21.
|
||||
*/
|
||||
int setfsuid(uid_t __uid) __INTRODUCED_IN(21);
|
||||
|
||||
/**
|
||||
* [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);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_IOCTL_H_
|
||||
#define _SYS_IOCTL_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/ioctl.h
|
||||
* @brief The ioctl() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
@ -39,5 +43,3 @@
|
|||
#include <linux/tty.h>
|
||||
|
||||
#include <bits/ioctl.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_IPC_H
|
||||
#define _SYS_IPC_H
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/ipc.h
|
||||
* @brief System V IPC.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -42,8 +46,12 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [ftok(3)](http://man7.org/linux/man-pages/man3/ftok.3.html) converts a path and id to a
|
||||
* System V IPC key.
|
||||
*
|
||||
* Returns a key on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
key_t ftok(const char* __path, int __id);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,28 +26,46 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_KLOG_H_
|
||||
#define _SYS_KLOG_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/klog.h
|
||||
* @brief
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* These correspond to the kernel's SYSLOG_ACTION_whatever constants. */
|
||||
#define KLOG_CLOSE 0
|
||||
#define KLOG_OPEN 1
|
||||
#define KLOG_READ 2
|
||||
#define KLOG_READ_ALL 3
|
||||
#define KLOG_READ_CLEAR 4
|
||||
#define KLOG_CLEAR 5
|
||||
#define KLOG_CONSOLE_OFF 6
|
||||
#define KLOG_CONSOLE_ON 7
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_CLOSE 0
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_OPEN 1
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_READ 2
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_READ_ALL 3
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_READ_CLEAR 4
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_CLEAR 5
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_CONSOLE_OFF 6
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_CONSOLE_ON 7
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_CONSOLE_LEVEL 8
|
||||
#define KLOG_SIZE_UNREAD 9
|
||||
#define KLOG_SIZE_BUFFER 10
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_SIZE_UNREAD 9
|
||||
/** Used with klogctl(). */
|
||||
#define KLOG_SIZE_BUFFER 10
|
||||
|
||||
/**
|
||||
* [klogctl(2)](http://man7.org/linux/man-pages/man2/syslog.2.html) operates on the kernel log.
|
||||
*
|
||||
* This system call is not available to applications.
|
||||
* Use syslog() or `<android/log.h>` instead.
|
||||
*/
|
||||
int klogctl(int __type, char* __buf, int __buf_size);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_MOUNT_H
|
||||
#define _SYS_MOUNT_H
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/mount.h
|
||||
* @brief Mounting and unmounting filesystems.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
@ -35,16 +39,38 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* umount2 flags. */
|
||||
/** The umount2() flag to force unmounting. */
|
||||
#define MNT_FORCE 1
|
||||
/** The umount2() flag to lazy unmount. */
|
||||
#define MNT_DETACH 2
|
||||
/** The umount2() flag to mark a mount point as expired. */
|
||||
#define MNT_EXPIRE 4
|
||||
|
||||
/** The umount2() flag to not dereference the mount point path if it's a symbolic link. */
|
||||
#define UMOUNT_NOFOLLOW 8
|
||||
|
||||
/**
|
||||
* [mount(2)](http://man7.org/linux/man-pages/man2/mount.2.html) mounts the filesystem `source` at
|
||||
* the mount point `target`.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int mount(const char* __source, const char* __target, const char* __fs_type, unsigned long __flags, const void* __data);
|
||||
|
||||
/**
|
||||
* [umount(2)](http://man7.org/linux/man-pages/man2/umount.2.html) unmounts the filesystem at
|
||||
* the given mount point.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int umount(const char* __target);
|
||||
|
||||
/**
|
||||
* [umount2(2)](http://man7.org/linux/man-pages/man2/umount2.2.html) unmounts the filesystem at
|
||||
* the given mount point, according to the supplied flags.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int umount2(const char* __target, int __flags);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_MSG_H_
|
||||
#define _SYS_MSG_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/msg.h
|
||||
* @brief System V message queues. Not useful on Android because it's disallowed by SELinux.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/ipc.h>
|
||||
|
@ -41,11 +45,13 @@ __BEGIN_DECLS
|
|||
typedef __kernel_ulong_t msgqnum_t;
|
||||
typedef __kernel_ulong_t msglen_t;
|
||||
|
||||
/** Not useful on Android; disallowed by SELinux. */
|
||||
int msgctl(int __msg_id, int __cmd, struct msqid_ds* __buf) __INTRODUCED_IN(26);
|
||||
/** Not useful on Android; disallowed by SELinux. */
|
||||
int msgget(key_t __key, int __flags) __INTRODUCED_IN(26);
|
||||
/** Not useful on Android; disallowed by SELinux. */
|
||||
ssize_t msgrcv(int __msg_id, void* __msgbuf_ptr, size_t __size, long __type, int __flags) __INTRODUCED_IN(26);
|
||||
/** Not useful on Android; disallowed by SELinux. */
|
||||
int msgsnd(int __msg_id, const void* __msgbuf_ptr, size_t __size, int __flags) __INTRODUCED_IN(26);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,27 +26,34 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_PARAM_H_
|
||||
#define _SYS_PARAM_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/param.h
|
||||
* @brief Various macros.
|
||||
*/
|
||||
|
||||
#include <limits.h>
|
||||
#include <linux/param.h>
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/** The unit of `st_blocks` in `struct stat`. */
|
||||
#define DEV_BSIZE 512
|
||||
|
||||
/** A historical name for PATH_MAX. */
|
||||
#define MAXPATHLEN PATH_MAX
|
||||
|
||||
#define MAXSYMLINKS 8
|
||||
|
||||
/* Macros for counting and rounding. */
|
||||
#ifndef howmany
|
||||
#define howmany(x, y) (((x)+((y)-1))/(y))
|
||||
#endif
|
||||
#define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
|
||||
#define powerof2(x) ((((x)-1)&(x))==0)
|
||||
|
||||
/* Macros for min/max. */
|
||||
/** Returns true if the argument is a power of two. */
|
||||
#define powerof2(x) ((((x)-1)&(x))==0)
|
||||
|
||||
/** Returns the lesser of its two arguments. */
|
||||
#define MIN(a,b) (((a)<(b))?(a):(b))
|
||||
/** Returns the greater of its two arguments. */
|
||||
#define MAX(a,b) (((a)>(b))?(a):(b))
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,16 +26,26 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_PERSONALITY_H_
|
||||
#define _SYS_PERSONALITY_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/personality.h
|
||||
* @brief The personality() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <linux/personality.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [personality(2)](http://man7.org/linux/man-pages/man2/personality.2.html) sets the calling
|
||||
* process' personality.
|
||||
*
|
||||
* Returns the previous persona on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 15.
|
||||
*/
|
||||
int personality(unsigned int __persona) __INTRODUCED_IN(15);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_QUOTA_H_
|
||||
#define _SYS_QUOTA_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/quota.h
|
||||
* @brief The quotactl() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
|
@ -40,8 +44,13 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [quotactl(2)](http://man7.org/linux/man-pages/man2/quotactl.2.html) manipulates disk quotas.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 26.
|
||||
*/
|
||||
int quotactl(int __cmd, const char* __special, int __id, char* __addr) __INTRODUCED_IN(26);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_RANDOM_H_
|
||||
#define _SYS_RANDOM_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/random.h
|
||||
* @brief The getentropy() and getrandom() functions.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -36,12 +40,28 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* See also arc4random_buf in <stdlib.h>, which is available in all API levels. */
|
||||
|
||||
/**
|
||||
* [getentropy(3)](http://man7.org/linux/man-pages/man3/getentropy.3.html) fills the given buffer
|
||||
* with random bytes.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 28.
|
||||
*
|
||||
* See also arc4random_buf() which is available in all API levels.
|
||||
*/
|
||||
int getentropy(void* __buffer, size_t __buffer_size) __wur __INTRODUCED_IN(28);
|
||||
|
||||
/**
|
||||
* [getrandom(2)](http://man7.org/linux/man-pages/man2/getrandom.2.html) fills the given buffer
|
||||
* with random bytes.
|
||||
*
|
||||
* Returns the number of bytes copied on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 28.
|
||||
*
|
||||
* See also arc4random_buf() which is available in all API levels.
|
||||
*/
|
||||
ssize_t getrandom(void* __buffer, size_t __buffer_size, unsigned int __flags) __wur __INTRODUCED_IN(28);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,24 +26,35 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_REBOOT_H_
|
||||
#define _SYS_REBOOT_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/reboot.h
|
||||
* @brief The reboot() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <linux/reboot.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* use glibc names as well */
|
||||
|
||||
#define RB_AUTOBOOT LINUX_REBOOT_CMD_RESTART
|
||||
#define RB_HALT_SYSTEM LINUX_REBOOT_CMD_HALT
|
||||
#define RB_ENABLE_CAD LINUX_REBOOT_CMD_CAD_ON
|
||||
#define RB_DISABLE_CAD LINUX_REBOOT_CMD_CAD_OFF
|
||||
#define RB_POWER_OFF LINUX_REBOOT_CMD_POWER_OFF
|
||||
/** The glibc name for the reboot() flag `LINUX_REBOOT_CMD_RESTART`. */
|
||||
#define RB_AUTOBOOT LINUX_REBOOT_CMD_RESTART
|
||||
/** The glibc name for the reboot() flag `LINUX_REBOOT_CMD_HALT`. */
|
||||
#define RB_HALT_SYSTEM LINUX_REBOOT_CMD_HALT
|
||||
/** The glibc name for the reboot() flag `LINUX_REBOOT_CMD_CAD_ON`. */
|
||||
#define RB_ENABLE_CAD LINUX_REBOOT_CMD_CAD_ON
|
||||
/** The glibc name for the reboot() flag `LINUX_REBOOT_CMD_CAD_OFF`. */
|
||||
#define RB_DISABLE_CAD LINUX_REBOOT_CMD_CAD_OFF
|
||||
/** The glibc name for the reboot() flag `LINUX_REBOOT_CMD_POWER_OFF`. */
|
||||
#define RB_POWER_OFF LINUX_REBOOT_CMD_POWER_OFF
|
||||
|
||||
/**
|
||||
* [reboot(2)](http://man7.org/linux/man-pages/man2/reboot.2.html) reboots the device.
|
||||
*
|
||||
* Does not return on successful reboot, returns 0 if CAD was successfully enabled/disabled,
|
||||
* and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int reboot(int __cmd);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_SENDFILE_H_
|
||||
#define _SYS_SENDFILE_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/sendfile.h
|
||||
* @brief The sendfile() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -38,10 +42,21 @@ __BEGIN_DECLS
|
|||
#if defined(__USE_FILE_OFFSET64)
|
||||
ssize_t sendfile(int __out_fd, int __in_fd, off_t* __offset, size_t __count) __RENAME(sendfile64) __INTRODUCED_IN(21);
|
||||
#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* __offset, size_t __count);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* 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* __offset, size_t __count) __INTRODUCED_IN(21);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_SHM_H_
|
||||
#define _SYS_SHM_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/shm.h
|
||||
* @brief System V shared memory. Not useful on Android because it's disallowed by SELinux.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/ipc.h>
|
||||
|
@ -42,11 +46,13 @@ __BEGIN_DECLS
|
|||
|
||||
typedef unsigned long shmatt_t;
|
||||
|
||||
/** Not useful on Android; disallowed by SELinux. */
|
||||
void* shmat(int __shm_id, const void* __addr, int __flags) __INTRODUCED_IN(26);
|
||||
/** Not useful on Android; disallowed by SELinux. */
|
||||
int shmctl(int __shm_id, int __cmd, struct shmid_ds* __buf) __INTRODUCED_IN(26);
|
||||
/** Not useful on Android; disallowed by SELinux. */
|
||||
int shmdt(const void* __addr) __INTRODUCED_IN(26);
|
||||
/** Not useful on Android; disallowed by SELinux. */
|
||||
int shmget(key_t __key, size_t __size, int __flags) __INTRODUCED_IN(26);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_SIGNALFD_H_
|
||||
#define _SYS_SIGNALFD_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/signalfd.h
|
||||
* @brief File-descriptor based signal interface.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
|
@ -36,9 +40,19 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [signalfd(2)](http://man7.org/linux/man-pages/man2/signalfd.2.html) creates/manipulates a
|
||||
* 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* __mask, int __flags) __INTRODUCED_IN(18);
|
||||
|
||||
/**
|
||||
* Like signalfd() but allows setting a signal mask with RT signals even from a 32-bit process.
|
||||
*/
|
||||
int signalfd64(int __fd, const sigset64_t* __mask, int __flags) __INTRODUCED_IN(28);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,21 +26,47 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_SWAP_H_
|
||||
#define _SYS_SWAP_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/swap.h
|
||||
* @brief Swap control.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** swapon() flag to discard pages. */
|
||||
#define SWAP_FLAG_DISCARD 0x10000
|
||||
|
||||
/**
|
||||
* swapon() flag to give this swap area a non-default priority.
|
||||
* The priority is also encoded in the flags:
|
||||
* `(priority << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK`.
|
||||
*/
|
||||
#define SWAP_FLAG_PREFER 0x8000
|
||||
/** See SWAP_FLAG_PREFER. */
|
||||
#define SWAP_FLAG_PRIO_MASK 0x7fff
|
||||
/** See SWAP_FLAG_PREFER. */
|
||||
#define SWAP_FLAG_PRIO_SHIFT 0
|
||||
|
||||
/**
|
||||
* [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* __path, int __flags) __INTRODUCED_IN(19);
|
||||
|
||||
/**
|
||||
* [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* __path) __INTRODUCED_IN(19);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,20 +26,63 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_SYSINFO_H_
|
||||
#define _SYS_SYSINFO_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/sysinfo.h
|
||||
* @brief System information.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <linux/kernel.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [sysinfo(2)](http://man7.org/linux/man-pages/man2/sysinfo.2.html) queries system information.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int sysinfo(struct sysinfo* __info);
|
||||
|
||||
/**
|
||||
* [get_nprocs_conf(3)](http://man7.org/linux/man-pages/man3/get_nprocs_conf.3.html) returns
|
||||
* the total number of processors in the system.
|
||||
*
|
||||
* Available since API level 23.
|
||||
*
|
||||
* See also sysconf().
|
||||
*/
|
||||
int get_nprocs_conf(void) __INTRODUCED_IN(23);
|
||||
|
||||
/**
|
||||
* [get_nprocs(3)](http://man7.org/linux/man-pages/man3/get_nprocs.3.html) returns
|
||||
* the number of processors in the system that are currently on-line.
|
||||
*
|
||||
* Available since API level 23.
|
||||
*
|
||||
* See also sysconf().
|
||||
*/
|
||||
int get_nprocs(void) __INTRODUCED_IN(23);
|
||||
|
||||
/**
|
||||
* [get_phys_pages(3)](http://man7.org/linux/man-pages/man3/get_phys_pages.3.html) returns
|
||||
* the total number of physical pages in the system.
|
||||
*
|
||||
* Available since API level 23.
|
||||
*
|
||||
* See also sysconf().
|
||||
*/
|
||||
long get_phys_pages(void) __INTRODUCED_IN(23);
|
||||
|
||||
/**
|
||||
* [get_avphys_pages(3)](http://man7.org/linux/man-pages/man3/get_avphys_pages.3.html) returns
|
||||
* the number of physical pages in the system that are currently available.
|
||||
*
|
||||
* Available since API level 23.
|
||||
*
|
||||
* See also sysconf().
|
||||
*/
|
||||
long get_avphys_pages(void) __INTRODUCED_IN(23);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,21 +26,26 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_SYSMACROS_H_
|
||||
#define _SYS_SYSMACROS_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/sysmacros.h
|
||||
* @brief Major/minor device number macros.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/** Combines `major` and `minor` into a device number. */
|
||||
#define makedev(__major, __minor) \
|
||||
( \
|
||||
(((__major) & 0xfffff000ULL) << 32) | (((__major) & 0xfffULL) << 8) | \
|
||||
(((__minor) & 0xffffff00ULL) << 12) | (((__minor) & 0xffULL)) \
|
||||
)
|
||||
|
||||
/** Extracts the major part of a device number. */
|
||||
#define major(__dev) \
|
||||
((unsigned) ((((unsigned long long) (__dev) >> 32) & 0xfffff000) | (((__dev) >> 8) & 0xfff)))
|
||||
|
||||
/** Extracts the minor part of a device number. */
|
||||
#define minor(__dev) \
|
||||
((unsigned) ((((__dev) >> 12) & 0xffffff00) | ((__dev) & 0xff)))
|
||||
|
||||
#endif /* _SYS_SYSMACROS_H_ */
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_TIMERFD_H_
|
||||
#define _SYS_TIMERFD_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/timerfd.h
|
||||
* @brief Timer file descriptors.
|
||||
*/
|
||||
|
||||
#include <fcntl.h> /* For O_CLOEXEC and O_NONBLOCK. */
|
||||
#include <time.h>
|
||||
|
@ -36,16 +40,44 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#define TFD_TIMER_ABSTIME (1 << 0)
|
||||
#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
|
||||
|
||||
/** The timerfd_create() flag for a close-on-exec file descriptor. */
|
||||
#define TFD_CLOEXEC O_CLOEXEC
|
||||
/** The timerfd_create() flag for a non-blocking file descriptor. */
|
||||
#define TFD_NONBLOCK O_NONBLOCK
|
||||
|
||||
/**
|
||||
* [timerfd_create(2)](http://man7.org/linux/man-pages/man2/timerfd_create.2.html) creates a
|
||||
* 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);
|
||||
|
||||
/** The timerfd_settime() flag to use absolute rather than relative times. */
|
||||
#define TFD_TIMER_ABSTIME (1 << 0)
|
||||
/** The timerfd_settime() flag to cancel an absolute timer if the realtime clock changes. */
|
||||
#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
|
||||
|
||||
/**
|
||||
* [timerfd_settime(2)](http://man7.org/linux/man-pages/man2/timerfd_settime.2.html) starts or
|
||||
* 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* __new_value, struct itimerspec* __old_value) __INTRODUCED_IN(19);
|
||||
|
||||
/**
|
||||
* [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* __current_value) __INTRODUCED_IN(19);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_TIMES_H_
|
||||
#define _SYS_TIMES_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/times.h
|
||||
* @brief The times() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -35,8 +39,13 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [times(2)](http://man7.org/linux/man-pages/man2/times.2.html) fills a buffer with the
|
||||
* calling process' CPU usage.
|
||||
*
|
||||
* Returns a (possibly overflowed) absolute time on success,
|
||||
* and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
clock_t times(struct tms* __buf);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_TIMEX_H_
|
||||
#define _SYS_TIMEX_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/timex.h
|
||||
* @brief Kernel clock tuning.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -35,9 +39,22 @@
|
|||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* [adjtimex(2)](http://man7.org/linux/man-pages/man2/adjtimex.2.html) adjusts the kernel clock.
|
||||
*
|
||||
* Returns the clock state on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 24.
|
||||
*/
|
||||
int adjtimex(struct timex* __buf) __INTRODUCED_IN(24);
|
||||
|
||||
/**
|
||||
* clock_adjtime adjusts a specific kernel clock.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*
|
||||
* Available since API level 24.
|
||||
*/
|
||||
int clock_adjtime(clockid_t __clock, struct timex* __tx) __INTRODUCED_IN(24);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_UN_H_
|
||||
#define _SYS_UN_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/un.h
|
||||
* @brief Unix domain sockets.
|
||||
*/
|
||||
|
||||
#include <bits/sa_family_t.h>
|
||||
#include <linux/un.h>
|
||||
|
@ -35,7 +39,6 @@
|
|||
|
||||
#if defined(__USE_BSD) || defined(__USE_GNU)
|
||||
#include <string.h>
|
||||
/** Returns the actual length of the given `sockaddr_un`. */
|
||||
#define SUN_LEN(__ptr) (offsetof(struct sockaddr_un, sun_path) + strlen((__ptr)->sun_path))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,26 +26,42 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_UTSNAME_H_
|
||||
#define _SYS_UTSNAME_H_
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* @file sys/utsname.h
|
||||
* @brief The uname() function.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** The maximum length of any field in `struct utsname`. */
|
||||
#define SYS_NMLN 65
|
||||
|
||||
/** The information returned by uname(). */
|
||||
struct utsname {
|
||||
/** The OS name. "Linux" on Android. */
|
||||
char sysname[SYS_NMLN];
|
||||
/** The name on the network. Typically "localhost" on Android. */
|
||||
char nodename[SYS_NMLN];
|
||||
/** The OS release. Typically something like "4.4.115-g442ad7fba0d" on Android. */
|
||||
char release[SYS_NMLN];
|
||||
/** The OS version. Typically something like "#1 SMP PREEMPT" on Android. */
|
||||
char version[SYS_NMLN];
|
||||
/** The hardware architecture. Typically "aarch64" on Android. */
|
||||
char machine[SYS_NMLN];
|
||||
/** The domain name set by setdomainname(). Typically "localdomain" on Android. */
|
||||
char domainname[SYS_NMLN];
|
||||
};
|
||||
|
||||
/**
|
||||
* [uname(2)](http://man7.org/linux/man-pages/man2/uname.2.html) returns information
|
||||
* about the kernel.
|
||||
*
|
||||
* Returns 0 on success, and returns -1 and sets `errno` on failure.
|
||||
*/
|
||||
int uname(struct utsname* __buf);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue