# 1 "networking/libiproute/ipaddress.c" # 1 "" # 1 "" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 1 "" 2 # 1 "./include/autoconf.h" 1 # 1 "" 2 # 1 "networking/libiproute/ipaddress.c" # 11 "networking/libiproute/ipaddress.c" # 1 "/usr/include/fnmatch.h" 1 3 4 # 56 "/usr/include/fnmatch.h" 3 4 extern int fnmatch (const char *__pattern, const char *__name, int __flags); # 12 "networking/libiproute/ipaddress.c" 2 # 1 "/usr/include/net/if.h" 1 3 4 # 22 "/usr/include/net/if.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 379 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 385 "/usr/include/sys/cdefs.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 386 "/usr/include/sys/cdefs.h" 2 3 4 # 380 "/usr/include/features.h" 2 3 4 # 403 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 10 "/usr/include/gnu/stubs.h" 3 4 # 1 "/usr/include/gnu/stubs-hard.h" 1 3 4 # 11 "/usr/include/gnu/stubs.h" 2 3 4 # 404 "/usr/include/features.h" 2 3 4 # 23 "/usr/include/net/if.h" 2 3 4 # 1 "/usr/include/sys/types.h" 1 3 4 # 27 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 27 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 28 "/usr/include/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 121 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/typesizes.h" 1 3 4 # 122 "/usr/include/bits/types.h" 2 3 4 __extension__ typedef __u_quad_t __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef __u_quad_t __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef __quad_t __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef __u_quad_t __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef void * __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef __quad_t __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef __u_quad_t __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef __u_quad_t __fsfilcnt64_t; __extension__ typedef int __fsword_t; __extension__ typedef int __ssize_t; __extension__ typedef long int __syscall_slong_t; __extension__ typedef unsigned long int __syscall_ulong_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 30 "/usr/include/sys/types.h" 2 3 4 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino64_t ino_t; typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off64_t off_t; typedef __off64_t off64_t; typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 132 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 57 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 73 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 91 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 103 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 133 "/usr/include/sys/types.h" 2 3 4 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 212 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 3 4 typedef unsigned int size_t; # 147 "/usr/include/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 194 "/usr/include/sys/types.h" 3 4 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 216 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 36 "/usr/include/endian.h" 3 4 # 1 "/usr/include/bits/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 2 3 4 # 60 "/usr/include/endian.h" 3 4 # 1 "/usr/include/bits/byteswap.h" 1 3 4 # 34 "/usr/include/bits/byteswap.h" 3 4 # 1 "/usr/include/bits/byteswap-16.h" 1 3 4 # 35 "/usr/include/bits/byteswap.h" 2 3 4 # 43 "/usr/include/bits/byteswap.h" 3 4 static __inline unsigned int __bswap_32 (unsigned int __bsx) { return __builtin_bswap32 (__bsx); } # 74 "/usr/include/bits/byteswap.h" 3 4 static __inline __uint64_t __bswap_64 (__uint64_t __bsx) { return __builtin_bswap64 (__bsx); } # 61 "/usr/include/endian.h" 2 3 4 # 217 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 # 30 "/usr/include/sys/select.h" 3 4 # 1 "/usr/include/bits/select.h" 1 3 4 # 31 "/usr/include/sys/select.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 22 "/usr/include/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 34 "/usr/include/sys/select.h" 2 3 4 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 4 # 120 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; __syscall_slong_t tv_nsec; }; # 44 "/usr/include/sys/select.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 30 "/usr/include/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 46 "/usr/include/sys/select.h" 2 3 4 # 54 "/usr/include/sys/select.h" 3 4 typedef long int __fd_mask; # 64 "/usr/include/sys/select.h" 3 4 typedef struct { __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 96 "/usr/include/sys/select.h" 3 4 # 106 "/usr/include/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 118 "/usr/include/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 1 "/usr/include/bits/select2.h" 1 3 4 # 24 "/usr/include/bits/select2.h" 3 4 extern long int __fdelt_chk (long int __d); extern long int __fdelt_warn (long int __d) __attribute__((__warning__ ("bit outside of fd_set selected"))); # 129 "/usr/include/sys/select.h" 2 3 4 # 220 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/sysmacros.h" 1 3 4 # 24 "/usr/include/sys/sysmacros.h" 3 4 __extension__ extern unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned long long int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); } # 223 "/usr/include/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; # 248 "/usr/include/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt_t; typedef __fsblkcnt64_t fsblkcnt_t; typedef __fsfilcnt64_t fsfilcnt_t; typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 37 "/usr/include/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; union pthread_attr_t { char __size[36]; long int __align; }; typedef union pthread_attr_t pthread_attr_t; typedef struct __pthread_internal_slist { struct __pthread_internal_slist *__next; } __pthread_slist_t; typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; int __kind; unsigned int __nusers; __extension__ union { int __spins; __pthread_slist_t __list; }; } __data; char __size[24]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; long int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; long int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; # 144 "/usr/include/bits/pthreadtypes.h" 3 4 unsigned char __flags; unsigned char __shared; unsigned char __pad1; unsigned char __pad2; int __writer; } __data; char __size[32]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[20]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 271 "/usr/include/sys/types.h" 2 3 4 # 26 "/usr/include/net/if.h" 2 3 4 # 1 "/usr/include/sys/socket.h" 1 3 4 # 24 "/usr/include/sys/socket.h" 3 4 # 1 "/usr/include/sys/uio.h" 1 3 4 # 25 "/usr/include/sys/uio.h" 3 4 # 1 "/usr/include/bits/uio.h" 1 3 4 # 43 "/usr/include/bits/uio.h" 3 4 struct iovec { void *iov_base; size_t iov_len; }; # 56 "/usr/include/bits/uio.h" 3 4 extern ssize_t process_vm_readv (pid_t __pid, const struct iovec *__lvec, unsigned long int __liovcnt, const struct iovec *__rvec, unsigned long int __riovcnt, unsigned long int __flags) __attribute__ ((__nothrow__ , __leaf__)); extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec, unsigned long int __liovcnt, const struct iovec *__rvec, unsigned long int __riovcnt, unsigned long int __flags) __attribute__ ((__nothrow__ , __leaf__)); # 29 "/usr/include/sys/uio.h" 2 3 4 # 39 "/usr/include/sys/uio.h" 3 4 extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count) __attribute__ ((__warn_unused_result__)); # 50 "/usr/include/sys/uio.h" 3 4 extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count) __attribute__ ((__warn_unused_result__)); # 81 "/usr/include/sys/uio.h" 3 4 extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count, __off64_t __offset) __asm__ ("" "preadv64") __attribute__ ((__warn_unused_result__)); extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count, __off64_t __offset) __asm__ ("" "pwritev64") __attribute__ ((__warn_unused_result__)); # 103 "/usr/include/sys/uio.h" 3 4 extern ssize_t preadv64 (int __fd, const struct iovec *__iovec, int __count, __off64_t __offset) __attribute__ ((__warn_unused_result__)); # 115 "/usr/include/sys/uio.h" 3 4 extern ssize_t pwritev64 (int __fd, const struct iovec *__iovec, int __count, __off64_t __offset) __attribute__ ((__warn_unused_result__)); # 27 "/usr/include/sys/socket.h" 2 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 29 "/usr/include/sys/socket.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 32 "/usr/include/sys/socket.h" 2 3 4 # 1 "/usr/include/bits/socket.h" 1 3 4 # 27 "/usr/include/bits/socket.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 28 "/usr/include/bits/socket.h" 2 3 4 typedef __socklen_t socklen_t; # 1 "/usr/include/bits/socket_type.h" 1 3 4 # 24 "/usr/include/bits/socket_type.h" 3 4 enum __socket_type { SOCK_STREAM = 1, SOCK_DGRAM = 2, SOCK_RAW = 3, SOCK_RDM = 4, SOCK_SEQPACKET = 5, SOCK_DCCP = 6, SOCK_PACKET = 10, SOCK_CLOEXEC = 02000000, SOCK_NONBLOCK = 00004000 }; # 39 "/usr/include/bits/socket.h" 2 3 4 # 146 "/usr/include/bits/socket.h" 3 4 # 1 "/usr/include/bits/sockaddr.h" 1 3 4 # 28 "/usr/include/bits/sockaddr.h" 3 4 typedef unsigned short int sa_family_t; # 147 "/usr/include/bits/socket.h" 2 3 4 struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; # 162 "/usr/include/bits/socket.h" 3 4 struct sockaddr_storage { sa_family_t ss_family; unsigned long int __ss_align; char __ss_padding[(128 - (2 * sizeof (unsigned long int)))]; }; enum { MSG_OOB = 0x01, MSG_PEEK = 0x02, MSG_DONTROUTE = 0x04, MSG_TRYHARD = MSG_DONTROUTE, MSG_CTRUNC = 0x08, MSG_PROXY = 0x10, MSG_TRUNC = 0x20, MSG_DONTWAIT = 0x40, MSG_EOR = 0x80, MSG_WAITALL = 0x100, MSG_FIN = 0x200, MSG_SYN = 0x400, MSG_CONFIRM = 0x800, MSG_RST = 0x1000, MSG_ERRQUEUE = 0x2000, MSG_NOSIGNAL = 0x4000, MSG_MORE = 0x8000, MSG_WAITFORONE = 0x10000, MSG_FASTOPEN = 0x20000000, MSG_CMSG_CLOEXEC = 0x40000000 }; struct msghdr { void *msg_name; socklen_t msg_namelen; struct iovec *msg_iov; size_t msg_iovlen; void *msg_control; size_t msg_controllen; int msg_flags; }; struct cmsghdr { size_t cmsg_len; int cmsg_level; int cmsg_type; __extension__ unsigned char __cmsg_data []; }; # 272 "/usr/include/bits/socket.h" 3 4 extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __attribute__ ((__nothrow__ , __leaf__)); extern __inline __attribute__ ((__gnu_inline__)) struct cmsghdr * __attribute__ ((__nothrow__ , __leaf__)) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) { if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) return (struct cmsghdr *) 0; __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))); if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen) || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) return (struct cmsghdr *) 0; return __cmsg; } enum { SCM_RIGHTS = 0x01 , SCM_CREDENTIALS = 0x02 }; struct ucred { pid_t pid; uid_t uid; gid_t gid; }; # 345 "/usr/include/bits/socket.h" 3 4 # 1 "/usr/include/asm/socket.h" 1 3 4 # 1 "/usr/include/asm-generic/socket.h" 1 3 4 # 1 "/usr/include/asm/sockios.h" 1 3 4 # 1 "/usr/include/asm-generic/sockios.h" 1 3 4 # 1 "/usr/include/asm/sockios.h" 2 3 4 # 5 "/usr/include/asm-generic/socket.h" 2 3 4 # 1 "/usr/include/asm/socket.h" 2 3 4 # 346 "/usr/include/bits/socket.h" 2 3 4 # 379 "/usr/include/bits/socket.h" 3 4 struct linger { int l_onoff; int l_linger; }; # 39 "/usr/include/sys/socket.h" 2 3 4 struct osockaddr { unsigned short int sa_family; unsigned char sa_data[14]; }; enum { SHUT_RD = 0, SHUT_WR, SHUT_RDWR }; # 90 "/usr/include/sys/socket.h" 3 4 typedef union { struct sockaddr *__restrict __sockaddr__; struct sockaddr_at *__restrict __sockaddr_at__; struct sockaddr_ax25 *__restrict __sockaddr_ax25__; struct sockaddr_dl *__restrict __sockaddr_dl__; struct sockaddr_eon *__restrict __sockaddr_eon__; struct sockaddr_in *__restrict __sockaddr_in__; struct sockaddr_in6 *__restrict __sockaddr_in6__; struct sockaddr_inarp *__restrict __sockaddr_inarp__; struct sockaddr_ipx *__restrict __sockaddr_ipx__; struct sockaddr_iso *__restrict __sockaddr_iso__; struct sockaddr_ns *__restrict __sockaddr_ns__; struct sockaddr_un *__restrict __sockaddr_un__; struct sockaddr_x25 *__restrict __sockaddr_x25__; } __SOCKADDR_ARG __attribute__ ((__transparent_union__)); typedef union { const struct sockaddr *__restrict __sockaddr__; const struct sockaddr_at *__restrict __sockaddr_at__; const struct sockaddr_ax25 *__restrict __sockaddr_ax25__; const struct sockaddr_dl *__restrict __sockaddr_dl__; const struct sockaddr_eon *__restrict __sockaddr_eon__; const struct sockaddr_in *__restrict __sockaddr_in__; const struct sockaddr_in6 *__restrict __sockaddr_in6__; const struct sockaddr_inarp *__restrict __sockaddr_inarp__; const struct sockaddr_ipx *__restrict __sockaddr_ipx__; const struct sockaddr_iso *__restrict __sockaddr_iso__; const struct sockaddr_ns *__restrict __sockaddr_ns__; const struct sockaddr_un *__restrict __sockaddr_un__; const struct sockaddr_x25 *__restrict __sockaddr_x25__; } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__)); struct mmsghdr { struct msghdr msg_hdr; unsigned int msg_len; }; extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__ , __leaf__)); extern int socketpair (int __domain, int __type, int __protocol, int __fds[2]) __attribute__ ((__nothrow__ , __leaf__)); extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern int getsockname (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __len) __attribute__ ((__nothrow__ , __leaf__)); # 137 "/usr/include/sys/socket.h" 3 4 extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len); extern int getpeername (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __len) __attribute__ ((__nothrow__ , __leaf__)); extern ssize_t send (int __fd, const void *__buf, size_t __n, int __flags); extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags); extern ssize_t sendto (int __fd, const void *__buf, size_t __n, int __flags, __CONST_SOCKADDR_ARG __addr, socklen_t __addr_len); # 174 "/usr/include/sys/socket.h" 3 4 extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len); extern ssize_t sendmsg (int __fd, const struct msghdr *__message, int __flags); extern int sendmmsg (int __fd, struct mmsghdr *__vmessages, unsigned int __vlen, int __flags); extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags); extern int recvmmsg (int __fd, struct mmsghdr *__vmessages, unsigned int __vlen, int __flags, const struct timespec *__tmo); extern int getsockopt (int __fd, int __level, int __optname, void *__restrict __optval, socklen_t *__restrict __optlen) __attribute__ ((__nothrow__ , __leaf__)); extern int setsockopt (int __fd, int __level, int __optname, const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__ , __leaf__)); extern int listen (int __fd, int __n) __attribute__ ((__nothrow__ , __leaf__)); # 243 "/usr/include/sys/socket.h" 3 4 extern int accept (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len); extern int accept4 (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len, int __flags); # 261 "/usr/include/sys/socket.h" 3 4 extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__ , __leaf__)); extern int sockatmark (int __fd) __attribute__ ((__nothrow__ , __leaf__)); extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/include/bits/socket2.h" 1 3 4 # 23 "/usr/include/bits/socket2.h" 3 4 extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags); extern ssize_t __recv_alias (int __fd, void *__buf, size_t __n, int __flags) __asm__ ("" "recv") ; extern ssize_t __recv_chk_warn (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags) __asm__ ("" "__recv_chk") __attribute__((__warning__ ("recv called with bigger length than size of destination " "buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) ssize_t recv (int __fd, void *__buf, size_t __n, int __flags) { if (__builtin_object_size (__buf, 0) != (size_t) -1) { if (!__builtin_constant_p (__n)) return __recv_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags); if (__n > __builtin_object_size (__buf, 0)) return __recv_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags); } return __recv_alias (__fd, __buf, __n, __flags); } extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n, size_t __buflen, int __flags, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len); extern ssize_t __recvfrom_alias (int __fd, void *__restrict __buf, size_t __n, int __flags, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) __asm__ ("" "recvfrom") ; extern ssize_t __recvfrom_chk_warn (int __fd, void *__restrict __buf, size_t __n, size_t __buflen, int __flags, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) __asm__ ("" "__recvfrom_chk") __attribute__((__warning__ ("recvfrom called with bigger length than size of " "destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) { if (__builtin_object_size (__buf, 0) != (size_t) -1) { if (!__builtin_constant_p (__n)) return __recvfrom_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags, __addr, __addr_len); if (__n > __builtin_object_size (__buf, 0)) return __recvfrom_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags, __addr, __addr_len); } return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len); } # 281 "/usr/include/sys/socket.h" 2 3 4 # 27 "/usr/include/net/if.h" 2 3 4 struct if_nameindex { unsigned int if_index; char *if_name; }; enum { IFF_UP = 0x1, IFF_BROADCAST = 0x2, IFF_DEBUG = 0x4, IFF_LOOPBACK = 0x8, IFF_POINTOPOINT = 0x10, IFF_NOTRAILERS = 0x20, IFF_RUNNING = 0x40, IFF_NOARP = 0x80, IFF_PROMISC = 0x100, IFF_ALLMULTI = 0x200, IFF_MASTER = 0x400, IFF_SLAVE = 0x800, IFF_MULTICAST = 0x1000, IFF_PORTSEL = 0x2000, IFF_AUTOMEDIA = 0x4000, IFF_DYNAMIC = 0x8000 }; struct ifaddr { struct sockaddr ifa_addr; union { struct sockaddr ifu_broadaddr; struct sockaddr ifu_dstaddr; } ifa_ifu; struct iface *ifa_ifp; struct ifaddr *ifa_next; }; # 111 "/usr/include/net/if.h" 3 4 struct ifmap { unsigned long int mem_start; unsigned long int mem_end; unsigned short int base_addr; unsigned char irq; unsigned char dma; unsigned char port; }; struct ifreq { union { char ifrn_name[16]; } ifr_ifrn; union { struct sockaddr ifru_addr; struct sockaddr ifru_dstaddr; struct sockaddr ifru_broadaddr; struct sockaddr ifru_netmask; struct sockaddr ifru_hwaddr; short int ifru_flags; int ifru_ivalue; int ifru_mtu; struct ifmap ifru_map; char ifru_slave[16]; char ifru_newname[16]; __caddr_t ifru_data; } ifr_ifru; }; # 176 "/usr/include/net/if.h" 3 4 struct ifconf { int ifc_len; union { __caddr_t ifcu_buf; struct ifreq *ifcu_req; } ifc_ifcu; }; extern unsigned int if_nametoindex (const char *__ifname) __attribute__ ((__nothrow__ , __leaf__)); extern char *if_indextoname (unsigned int __ifindex, char *__ifname) __attribute__ ((__nothrow__ , __leaf__)); extern struct if_nameindex *if_nameindex (void) __attribute__ ((__nothrow__ , __leaf__)); extern void if_freenameindex (struct if_nameindex *__ptr) __attribute__ ((__nothrow__ , __leaf__)); # 13 "networking/libiproute/ipaddress.c" 2 # 1 "/usr/include/net/if_arp.h" 1 3 4 # 30 "/usr/include/net/if_arp.h" 3 4 # 54 "/usr/include/net/if_arp.h" 3 4 struct arphdr { unsigned short int ar_hrd; unsigned short int ar_pro; unsigned char ar_hln; unsigned char ar_pln; unsigned short int ar_op; # 69 "/usr/include/net/if_arp.h" 3 4 }; # 138 "/usr/include/net/if_arp.h" 3 4 struct arpreq { struct sockaddr arp_pa; struct sockaddr arp_ha; int arp_flags; struct sockaddr arp_netmask; char arp_dev[16]; }; struct arpreq_old { struct sockaddr arp_pa; struct sockaddr arp_ha; int arp_flags; struct sockaddr arp_netmask; }; # 171 "/usr/include/net/if_arp.h" 3 4 struct arpd_request { unsigned short int req; u_int32_t ip; unsigned long int dev; unsigned long int stamp; unsigned long int updated; unsigned char ha[7]; }; # 14 "networking/libiproute/ipaddress.c" 2 # 1 "networking/libiproute/ip_common.h" 1 # 1 "include/libbb.h" 1 # 13 "include/libbb.h" # 1 "include/platform.h" 1 # 138 "include/platform.h" # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/limits.h" 1 3 4 # 34 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/limits.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/limits.h" 1 3 4 # 168 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 143 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4 # 160 "/usr/include/bits/posix1_lim.h" 3 4 # 1 "/usr/include/bits/local_lim.h" 1 3 4 # 38 "/usr/include/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 39 "/usr/include/bits/local_lim.h" 2 3 4 # 161 "/usr/include/bits/posix1_lim.h" 2 3 4 # 144 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4 # 148 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4 # 33 "/usr/include/bits/xopen_lim.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 34 "/usr/include/bits/xopen_lim.h" 2 3 4 # 152 "/usr/include/limits.h" 2 3 4 # 169 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/limits.h" 2 3 4 # 8 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/syslimits.h" 2 3 4 # 35 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/limits.h" 2 3 4 # 139 "include/platform.h" 2 # 149 "include/platform.h" # 1 "/usr/include/byteswap.h" 1 3 4 # 24 "/usr/include/byteswap.h" 3 4 # 1 "/usr/include/bits/byteswap.h" 1 3 4 # 25 "/usr/include/byteswap.h" 2 3 4 # 150 "include/platform.h" 2 # 206 "include/platform.h" # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stdint.h" 1 3 4 # 9 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stdint.h" 3 4 # 1 "/usr/include/stdint.h" 1 3 4 # 26 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 27 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 28 "/usr/include/stdint.h" 2 3 4 # 48 "/usr/include/stdint.h" 3 4 typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; __extension__ typedef unsigned long long int uint64_t; typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; __extension__ typedef long long int int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; __extension__ typedef unsigned long long int uint_least64_t; typedef signed char int_fast8_t; typedef int int_fast16_t; typedef int int_fast32_t; __extension__ typedef long long int int_fast64_t; typedef unsigned char uint_fast8_t; typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast32_t; __extension__ typedef unsigned long long int uint_fast64_t; # 125 "/usr/include/stdint.h" 3 4 typedef int intptr_t; typedef unsigned int uintptr_t; # 137 "/usr/include/stdint.h" 3 4 __extension__ typedef long long int intmax_t; __extension__ typedef unsigned long long int uintmax_t; # 10 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stdint.h" 2 3 4 # 207 "include/platform.h" 2 typedef int bb__aliased_int __attribute__((__may_alias__)); typedef long bb__aliased_long __attribute__((__may_alias__)); typedef uint16_t bb__aliased_uint16_t __attribute__((__may_alias__)); typedef uint32_t bb__aliased_uint32_t __attribute__((__may_alias__)); # 248 "include/platform.h" typedef int smallint; typedef unsigned smalluint; # 258 "include/platform.h" # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stdbool.h" 1 3 4 # 259 "include/platform.h" 2 # 286 "include/platform.h" # 1 "/usr/include/unistd.h" 1 3 4 # 27 "/usr/include/unistd.h" 3 4 # 202 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/posix_opt.h" 1 3 4 # 203 "/usr/include/unistd.h" 2 3 4 # 1 "/usr/include/bits/environments.h" 1 3 4 # 22 "/usr/include/bits/environments.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 23 "/usr/include/bits/environments.h" 2 3 4 # 207 "/usr/include/unistd.h" 2 3 4 # 226 "/usr/include/unistd.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 227 "/usr/include/unistd.h" 2 3 4 # 287 "/usr/include/unistd.h" 3 4 extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int euidaccess (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int eaccess (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int faccessat (int __fd, const char *__file, int __type, int __flag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); # 337 "/usr/include/unistd.h" 3 4 extern __off64_t lseek (int __fd, __off64_t __offset, int __whence) __asm__ ("" "lseek64") __attribute__ ((__nothrow__ , __leaf__)) ; extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__)); extern int close (int __fd); extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__)); extern ssize_t write (int __fd, const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__)); # 388 "/usr/include/unistd.h" 3 4 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") __attribute__ ((__warn_unused_result__)); extern ssize_t pwrite (int __fd, const void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pwrite64") __attribute__ ((__warn_unused_result__)); # 404 "/usr/include/unistd.h" 3 4 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __attribute__ ((__warn_unused_result__)); extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, __off64_t __offset) __attribute__ ((__warn_unused_result__)); extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); # 432 "/usr/include/unistd.h" 3 4 extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__)); # 444 "/usr/include/unistd.h" 3 4 extern unsigned int sleep (unsigned int __seconds); extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) __attribute__ ((__nothrow__ , __leaf__)); extern int usleep (__useconds_t __useconds); # 469 "/usr/include/unistd.h" 3 4 extern int pause (void); extern int chown (const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int lchown (const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int fchownat (int __fd, const char *__file, __uid_t __owner, __gid_t __group, int __flag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); # 511 "/usr/include/unistd.h" 3 4 extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *get_current_dir_name (void) __attribute__ ((__nothrow__ , __leaf__)); extern char *getwd (char *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)); extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__)); extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__ , __leaf__)); extern char **__environ; extern char **environ; extern int execve (const char *__path, char *const __argv[], char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int fexecve (int __fd, char *const __argv[], char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int execv (const char *__path, char *const __argv[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int execle (const char *__path, const char *__arg, ...) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int execl (const char *__path, const char *__arg, ...) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int execvp (const char *__file, char *const __argv[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int execlp (const char *__file, const char *__arg, ...) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int execvpe (const char *__file, char *const __argv[], char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void _exit (int __status) __attribute__ ((__noreturn__)); # 1 "/usr/include/bits/confname.h" 1 3 4 # 24 "/usr/include/bits/confname.h" 3 4 enum { _PC_LINK_MAX, _PC_MAX_CANON, _PC_MAX_INPUT, _PC_NAME_MAX, _PC_PATH_MAX, _PC_PIPE_BUF, _PC_CHOWN_RESTRICTED, _PC_NO_TRUNC, _PC_VDISABLE, _PC_SYNC_IO, _PC_ASYNC_IO, _PC_PRIO_IO, _PC_SOCK_MAXBUF, _PC_FILESIZEBITS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, _PC_SYMLINK_MAX, _PC_2_SYMLINKS }; enum { _SC_ARG_MAX, _SC_CHILD_MAX, _SC_CLK_TCK, _SC_NGROUPS_MAX, _SC_OPEN_MAX, _SC_STREAM_MAX, _SC_TZNAME_MAX, _SC_JOB_CONTROL, _SC_SAVED_IDS, _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_AIO_LISTIO_MAX, _SC_AIO_MAX, _SC_AIO_PRIO_DELTA_MAX, _SC_DELAYTIMER_MAX, _SC_MQ_OPEN_MAX, _SC_MQ_PRIO_MAX, _SC_VERSION, _SC_PAGESIZE, _SC_RTSIG_MAX, _SC_SEM_NSEMS_MAX, _SC_SEM_VALUE_MAX, _SC_SIGQUEUE_MAX, _SC_TIMER_MAX, _SC_BC_BASE_MAX, _SC_BC_DIM_MAX, _SC_BC_SCALE_MAX, _SC_BC_STRING_MAX, _SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_EXPR_NEST_MAX, _SC_LINE_MAX, _SC_RE_DUP_MAX, _SC_CHARCLASS_NAME_MAX, _SC_2_VERSION, _SC_2_C_BIND, _SC_2_C_DEV, _SC_2_FORT_DEV, _SC_2_FORT_RUN, _SC_2_SW_DEV, _SC_2_LOCALEDEF, _SC_PII, _SC_PII_XTI, _SC_PII_SOCKET, _SC_PII_INTERNET, _SC_PII_OSI, _SC_POLL, _SC_SELECT, _SC_UIO_MAXIOV, _SC_IOV_MAX = _SC_UIO_MAXIOV, _SC_PII_INTERNET_STREAM, _SC_PII_INTERNET_DGRAM, _SC_PII_OSI_COTS, _SC_PII_OSI_CLTS, _SC_PII_OSI_M, _SC_T_IOV_MAX, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_GETGR_R_SIZE_MAX, _SC_GETPW_R_SIZE_MAX, _SC_LOGIN_NAME_MAX, _SC_TTY_NAME_MAX, _SC_THREAD_DESTRUCTOR_ITERATIONS, _SC_THREAD_KEYS_MAX, _SC_THREAD_STACK_MIN, _SC_THREAD_THREADS_MAX, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED, _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES, _SC_AVPHYS_PAGES, _SC_ATEXIT_MAX, _SC_PASS_MAX, _SC_XOPEN_VERSION, _SC_XOPEN_XCU_VERSION, _SC_XOPEN_UNIX, _SC_XOPEN_CRYPT, _SC_XOPEN_ENH_I18N, _SC_XOPEN_SHM, _SC_2_CHAR_TERM, _SC_2_C_VERSION, _SC_2_UPE, _SC_XOPEN_XPG2, _SC_XOPEN_XPG3, _SC_XOPEN_XPG4, _SC_CHAR_BIT, _SC_CHAR_MAX, _SC_CHAR_MIN, _SC_INT_MAX, _SC_INT_MIN, _SC_LONG_BIT, _SC_WORD_BIT, _SC_MB_LEN_MAX, _SC_NZERO, _SC_SSIZE_MAX, _SC_SCHAR_MAX, _SC_SCHAR_MIN, _SC_SHRT_MAX, _SC_SHRT_MIN, _SC_UCHAR_MAX, _SC_UINT_MAX, _SC_ULONG_MAX, _SC_USHRT_MAX, _SC_NL_ARGMAX, _SC_NL_LANGMAX, _SC_NL_MSGMAX, _SC_NL_NMAX, _SC_NL_SETMAX, _SC_NL_TEXTMAX, _SC_XBS5_ILP32_OFF32, _SC_XBS5_ILP32_OFFBIG, _SC_XBS5_LP64_OFF64, _SC_XBS5_LPBIG_OFFBIG, _SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME, _SC_XOPEN_REALTIME_THREADS, _SC_ADVISORY_INFO, _SC_BARRIERS, _SC_BASE, _SC_C_LANG_SUPPORT, _SC_C_LANG_SUPPORT_R, _SC_CLOCK_SELECTION, _SC_CPUTIME, _SC_THREAD_CPUTIME, _SC_DEVICE_IO, _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, _SC_PIPE, _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, _SC_MONOTONIC_CLOCK, _SC_MULTI_PROCESS, _SC_SINGLE_PROCESS, _SC_NETWORKING, _SC_READER_WRITER_LOCKS, _SC_SPIN_LOCKS, _SC_REGEXP, _SC_REGEX_VERSION, _SC_SHELL, _SC_SIGNALS, _SC_SPAWN, _SC_SPORADIC_SERVER, _SC_THREAD_SPORADIC_SERVER, _SC_SYSTEM_DATABASE, _SC_SYSTEM_DATABASE_R, _SC_TIMEOUTS, _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, _SC_SYMLOOP_MAX, _SC_STREAMS, _SC_2_PBS_CHECKPOINT, _SC_V6_ILP32_OFF32, _SC_V6_ILP32_OFFBIG, _SC_V6_LP64_OFF64, _SC_V6_LPBIG_OFFBIG, _SC_HOST_NAME_MAX, _SC_TRACE, _SC_TRACE_EVENT_FILTER, _SC_TRACE_INHERIT, _SC_TRACE_LOG, _SC_LEVEL1_ICACHE_SIZE, _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC, _SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE, _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC, _SC_LEVEL3_CACHE_LINESIZE, _SC_LEVEL4_CACHE_SIZE, _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE, _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, _SC_RAW_SOCKETS, _SC_V7_ILP32_OFF32, _SC_V7_ILP32_OFFBIG, _SC_V7_LP64_OFF64, _SC_V7_LPBIG_OFFBIG, _SC_SS_REPL_MAX, _SC_TRACE_EVENT_NAME_MAX, _SC_TRACE_NAME_MAX, _SC_TRACE_SYS_MAX, _SC_TRACE_USER_EVENT_MAX, _SC_XOPEN_STREAMS, _SC_THREAD_ROBUST_PRIO_INHERIT, _SC_THREAD_ROBUST_PRIO_PROTECT }; enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _CS_V5_WIDTH_RESTRICTED_ENVS, _CS_V7_WIDTH_RESTRICTED_ENVS, _CS_LFS_CFLAGS = 1000, _CS_LFS_LDFLAGS, _CS_LFS_LIBS, _CS_LFS_LINTFLAGS, _CS_LFS64_CFLAGS, _CS_LFS64_LDFLAGS, _CS_LFS64_LIBS, _CS_LFS64_LINTFLAGS, _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, _CS_XBS5_ILP32_OFF32_LDFLAGS, _CS_XBS5_ILP32_OFF32_LIBS, _CS_XBS5_ILP32_OFF32_LINTFLAGS, _CS_XBS5_ILP32_OFFBIG_CFLAGS, _CS_XBS5_ILP32_OFFBIG_LDFLAGS, _CS_XBS5_ILP32_OFFBIG_LIBS, _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, _CS_XBS5_LP64_OFF64_CFLAGS, _CS_XBS5_LP64_OFF64_LDFLAGS, _CS_XBS5_LP64_OFF64_LIBS, _CS_XBS5_LP64_OFF64_LINTFLAGS, _CS_XBS5_LPBIG_OFFBIG_CFLAGS, _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, _CS_XBS5_LPBIG_OFFBIG_LIBS, _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V7_ILP32_OFF32_CFLAGS, _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, _CS_POSIX_V7_ILP32_OFF32_LIBS, _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_LIBS, _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V7_LP64_OFF64_CFLAGS, _CS_POSIX_V7_LP64_OFF64_LDFLAGS, _CS_POSIX_V7_LP64_OFF64_LIBS, _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, _CS_V6_ENV, _CS_V7_ENV }; # 610 "/usr/include/unistd.h" 2 3 4 extern long int pathconf (const char *__path, int __name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__)); extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__)); extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__)); extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__)); extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__)); extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__)); # 660 "/usr/include/unistd.h" 3 4 extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__)); extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__)); extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__)); extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__)); extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__)); extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__)); extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)); extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) __attribute__ ((__nothrow__ , __leaf__)); extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) __attribute__ ((__nothrow__ , __leaf__)); extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern __pid_t fork (void) __attribute__ ((__nothrow__)); extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__)); extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__)); extern int ttyname_r (int __fd, char *__buf, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__)); extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__)); extern int link (const char *__from, const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern int linkat (int __fromfd, const char *__from, int __tofd, const char *__to, int __flags) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__)); extern int symlink (const char *__from, const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern ssize_t readlink (const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern int symlinkat (const char *__from, int __tofd, const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); extern ssize_t readlinkat (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int unlinkat (int __fd, const char *__name, int __flag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__)); extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__)); extern char *getlogin (void); extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 871 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/getopt.h" 1 3 4 # 57 "/usr/include/getopt.h" 3 4 extern char *optarg; # 71 "/usr/include/getopt.h" 3 4 extern int optind; extern int opterr; extern int optopt; # 150 "/usr/include/getopt.h" 3 4 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __attribute__ ((__nothrow__ , __leaf__)); # 872 "/usr/include/unistd.h" 2 3 4 extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int sethostname (const char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int getdomainname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int setdomainname (const char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__)); extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__)); extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__)); extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__)); extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__)); extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1))); extern int fsync (int __fd); extern int syncfs (int __fd) __attribute__ ((__nothrow__ , __leaf__)); extern long int gethostid (void); extern void sync (void) __attribute__ ((__nothrow__ , __leaf__)); extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__)); # 997 "/usr/include/unistd.h" 3 4 extern int truncate (const char *__file, __off64_t __length) __asm__ ("" "truncate64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int truncate64 (const char *__file, __off64_t __length) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 1019 "/usr/include/unistd.h" 3 4 extern int ftruncate (int __fd, __off64_t __length) __asm__ ("" "ftruncate64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); # 1037 "/usr/include/unistd.h" 3 4 extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__)); # 1058 "/usr/include/unistd.h" 3 4 extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__)); # 1084 "/usr/include/unistd.h" 3 4 extern int lockf (int __fd, int __cmd, __off64_t __len) __asm__ ("" "lockf64") __attribute__ ((__warn_unused_result__)); extern int lockf64 (int __fd, int __cmd, __off64_t __len) __attribute__ ((__warn_unused_result__)); # 1112 "/usr/include/unistd.h" 3 4 extern int fdatasync (int __fildes); extern char *crypt (const char *__key, const char *__salt) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void encrypt (char *__glibc_block, int __edflag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void swab (const void *__restrict __from, void *__restrict __to, ssize_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); # 1148 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/unistd.h" 1 3 4 # 23 "/usr/include/bits/unistd.h" 3 4 extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __attribute__ ((__warn_unused_result__)); extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") __attribute__ ((__warn_unused_result__)); extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t read (int __fd, void *__buf, size_t __nbytes) { if (__builtin_object_size (__buf, 0) != (size_t) -1) { if (!__builtin_constant_p (__nbytes)) return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); if (__nbytes > __builtin_object_size (__buf, 0)) return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); } return __read_alias (__fd, __buf, __nbytes); } extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") __attribute__ ((__warn_unused_result__)); extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") __attribute__ ((__warn_unused_result__)); extern ssize_t __pread_chk_warn (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __asm__ ("" "__pread_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread called with bigger length than size of " "the destination buffer"))) ; extern ssize_t __pread64_chk_warn (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __asm__ ("" "__pread64_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread64 called with bigger length than size of " "the destination buffer"))) ; # 86 "/usr/include/bits/unistd.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) { if (__builtin_object_size (__buf, 0) != (size_t) -1) { if (!__builtin_constant_p (__nbytes)) return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); if ( __nbytes > __builtin_object_size (__buf, 0)) return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); } return __pread64_alias (__fd, __buf, __nbytes, __offset); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) { if (__builtin_object_size (__buf, 0) != (size_t) -1) { if (!__builtin_constant_p (__nbytes)) return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); if ( __nbytes > __builtin_object_size (__buf, 0)) return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); } return __pread64_alias (__fd, __buf, __nbytes, __offset); } extern ssize_t __readlink_chk (const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern ssize_t __readlink_alias (const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern ssize_t __readlink_chk_warn (const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t __attribute__ ((__nothrow__ , __leaf__)) readlink (const char *__restrict __path, char *__restrict __buf, size_t __len) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); if ( __len > __builtin_object_size (__buf, 2 > 1)) return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); } return __readlink_alias (__path, __buf, __len); } extern ssize_t __readlinkat_chk (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); extern ssize_t __readlinkat_alias (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); extern ssize_t __readlinkat_chk_warn (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlinkat_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t __attribute__ ((__nothrow__ , __leaf__)) readlinkat (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); if (__len > __builtin_object_size (__buf, 2 > 1)) return __readlinkat_chk_warn (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); } return __readlinkat_alias (__fd, __path, __buf, __len); } extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * __attribute__ ((__nothrow__ , __leaf__)) getcwd (char *__buf, size_t __size) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__size)) return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1)); if (__size > __builtin_object_size (__buf, 2 > 1)) return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1)); } return __getcwd_alias (__buf, __size); } extern char *__getwd_chk (char *__buf, size_t buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char * __attribute__ ((__nothrow__ , __leaf__)) getwd (char *__buf) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1)); return __getwd_warn (__buf); } extern size_t __confstr_chk (int __name, char *__buf, size_t __len, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)); extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__ , __leaf__)) ; extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__ , __leaf__)) confstr (int __name, char *__buf, size_t __len) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); if (__builtin_object_size (__buf, 2 > 1) < __len) return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); } return __confstr_alias (__name, __buf, __len); } extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) getgroups (int __size, __gid_t __list[]) { if (__builtin_object_size (__list, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__size) || __size < 0) return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1)); if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1)) return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1)); } return __getgroups_alias (__size, __list); } extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) ttyname_r (int __fd, char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __ttyname_r_alias (__fd, __buf, __buflen); } extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nonnull__ (1))); extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") __attribute__ ((__nonnull__ (1))); extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk") __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int getlogin_r (char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __getlogin_r_alias (__buf, __buflen); } extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) gethostname (char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __gethostname_alias (__buf, __buflen); } extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) getdomainname (char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __getdomainname_alias (__buf, __buflen); } # 1149 "/usr/include/unistd.h" 2 3 4 # 287 "include/platform.h" 2 # 14 "include/libbb.h" 2 # 1 "/usr/include/ctype.h" 1 3 4 # 28 "/usr/include/ctype.h" 3 4 # 46 "/usr/include/ctype.h" 3 4 enum { _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) }; # 79 "/usr/include/ctype.h" 3 4 extern const unsigned short int **__ctype_b_loc (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern const __int32_t **__ctype_tolower_loc (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern const __int32_t **__ctype_toupper_loc (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 104 "/usr/include/ctype.h" 3 4 extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__)); extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__)); extern int islower (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__)); extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__)); extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__)); extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__)); extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__ , __leaf__)); extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__)); extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__)); extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__)); extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__)); # 214 "/usr/include/ctype.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) tolower (int __c) { return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) toupper (int __c) { return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; } # 257 "/usr/include/ctype.h" 3 4 # 1 "/usr/include/xlocale.h" 1 3 4 # 27 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; typedef __locale_t locale_t; # 258 "/usr/include/ctype.h" 2 3 4 # 271 "/usr/include/ctype.h" 3 4 extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); # 347 "/usr/include/ctype.h" 3 4 # 16 "include/libbb.h" 2 # 1 "/usr/include/dirent.h" 1 3 4 # 27 "/usr/include/dirent.h" 3 4 # 61 "/usr/include/dirent.h" 3 4 # 1 "/usr/include/bits/dirent.h" 1 3 4 # 22 "/usr/include/bits/dirent.h" 3 4 struct dirent { __ino64_t d_ino; __off64_t d_off; unsigned short int d_reclen; unsigned char d_type; char d_name[256]; }; struct dirent64 { __ino64_t d_ino; __off64_t d_off; unsigned short int d_reclen; unsigned char d_type; char d_name[256]; }; # 62 "/usr/include/dirent.h" 2 3 4 # 97 "/usr/include/dirent.h" 3 4 enum { DT_UNKNOWN = 0, DT_FIFO = 1, DT_CHR = 2, DT_DIR = 4, DT_BLK = 6, DT_REG = 8, DT_LNK = 10, DT_SOCK = 12, DT_WHT = 14 }; # 127 "/usr/include/dirent.h" 3 4 typedef struct __dirstream DIR; extern DIR *opendir (const char *__name) __attribute__ ((__nonnull__ (1))); extern DIR *fdopendir (int __fd); extern int closedir (DIR *__dirp) __attribute__ ((__nonnull__ (1))); # 165 "/usr/include/dirent.h" 3 4 extern struct dirent *readdir (DIR *__dirp) __asm__ ("" "readdir64") __attribute__ ((__nonnull__ (1))); extern struct dirent64 *readdir64 (DIR *__dirp) __attribute__ ((__nonnull__ (1))); # 189 "/usr/include/dirent.h" 3 4 extern int readdir_r (DIR *__restrict __dirp, struct dirent *__restrict __entry, struct dirent **__restrict __result) __asm__ ("" "readdir64_r") __attribute__ ((__nonnull__ (1, 2, 3))); extern int readdir64_r (DIR *__restrict __dirp, struct dirent64 *__restrict __entry, struct dirent64 **__restrict __result) __attribute__ ((__nonnull__ (1, 2, 3))); extern void rewinddir (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void seekdir (DIR *__dirp, long int __pos) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int telldir (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int dirfd (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 244 "/usr/include/dirent.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 245 "/usr/include/dirent.h" 2 3 4 # 262 "/usr/include/dirent.h" 3 4 extern int scandir (const char *__restrict __dir, struct dirent ***__restrict __namelist, int (*__selector) (const struct dirent *), int (*__cmp) (const struct dirent **, const struct dirent **)) __asm__ ("" "scandir64") __attribute__ ((__nonnull__ (1, 2))); # 277 "/usr/include/dirent.h" 3 4 extern int scandir64 (const char *__restrict __dir, struct dirent64 ***__restrict __namelist, int (*__selector) (const struct dirent64 *), int (*__cmp) (const struct dirent64 **, const struct dirent64 **)) __attribute__ ((__nonnull__ (1, 2))); # 300 "/usr/include/dirent.h" 3 4 extern int scandirat (int __dfd, const char *__restrict __dir, struct dirent ***__restrict __namelist, int (*__selector) (const struct dirent *), int (*__cmp) (const struct dirent **, const struct dirent **)) __asm__ ("" "scandirat64") __attribute__ ((__nonnull__ (2, 3))); extern int scandirat64 (int __dfd, const char *__restrict __dir, struct dirent64 ***__restrict __namelist, int (*__selector) (const struct dirent64 *), int (*__cmp) (const struct dirent64 **, const struct dirent64 **)) __attribute__ ((__nonnull__ (2, 3))); # 329 "/usr/include/dirent.h" 3 4 extern int alphasort (const struct dirent **__e1, const struct dirent **__e2) __asm__ ("" "alphasort64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int alphasort64 (const struct dirent64 **__e1, const struct dirent64 **__e2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 358 "/usr/include/dirent.h" 3 4 extern __ssize_t getdirentries (int __fd, char *__restrict __buf, size_t __nbytes, __off64_t *__restrict __basep) __asm__ ("" "getdirentries64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf, size_t __nbytes, __off64_t *__restrict __basep) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); # 384 "/usr/include/dirent.h" 3 4 extern int versionsort (const struct dirent **__e1, const struct dirent **__e2) __asm__ ("" "versionsort64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int versionsort64 (const struct dirent64 **__e1, const struct dirent64 **__e2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 17 "include/libbb.h" 2 # 1 "/usr/include/errno.h" 1 3 4 # 31 "/usr/include/errno.h" 3 4 # 1 "/usr/include/bits/errno.h" 1 3 4 # 24 "/usr/include/bits/errno.h" 3 4 # 1 "/usr/include/linux/errno.h" 1 3 4 # 1 "/usr/include/asm/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 # 5 "/usr/include/asm-generic/errno.h" 2 3 4 # 1 "/usr/include/asm/errno.h" 2 3 4 # 1 "/usr/include/linux/errno.h" 2 3 4 # 25 "/usr/include/bits/errno.h" 2 3 4 # 50 "/usr/include/bits/errno.h" 3 4 extern int *__errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 36 "/usr/include/errno.h" 2 3 4 # 54 "/usr/include/errno.h" 3 4 extern char *program_invocation_name, *program_invocation_short_name; # 68 "/usr/include/errno.h" 3 4 typedef int error_t; # 18 "include/libbb.h" 2 # 1 "/usr/include/fcntl.h" 1 3 4 # 28 "/usr/include/fcntl.h" 3 4 # 1 "/usr/include/bits/fcntl.h" 1 3 4 # 28 "/usr/include/bits/fcntl.h" 3 4 struct flock { short int l_type; short int l_whence; __off64_t l_start; __off64_t l_len; __pid_t l_pid; }; struct flock64 { short int l_type; short int l_whence; __off64_t l_start; __off64_t l_len; __pid_t l_pid; }; # 1 "/usr/include/bits/fcntl-linux.h" 1 3 4 # 38 "/usr/include/bits/fcntl-linux.h" 3 4 # 1 "/usr/include/bits/uio.h" 1 3 4 # 39 "/usr/include/bits/fcntl-linux.h" 2 3 4 # 241 "/usr/include/bits/fcntl-linux.h" 3 4 enum __pid_type { F_OWNER_TID = 0, F_OWNER_PID, F_OWNER_PGRP, F_OWNER_GID = F_OWNER_PGRP }; struct f_owner_ex { enum __pid_type type; __pid_t pid; }; # 311 "/usr/include/bits/fcntl-linux.h" 3 4 struct file_handle { unsigned int handle_bytes; int handle_type; unsigned char f_handle[0]; }; extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) __attribute__ ((__nothrow__ , __leaf__)); extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count, unsigned int __flags); extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, size_t __count, unsigned int __flags); extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, __off64_t *__offout, size_t __len, unsigned int __flags); extern ssize_t tee (int __fdin, int __fdout, size_t __len, unsigned int __flags); # 370 "/usr/include/bits/fcntl-linux.h" 3 4 extern int fallocate (int __fd, int __mode, __off64_t __offset, __off64_t __len) __asm__ ("" "fallocate64") ; extern int fallocate64 (int __fd, int __mode, __off64_t __offset, __off64_t __len); extern int name_to_handle_at (int __dfd, const char *__name, struct file_handle *__handle, int *__mnt_id, int __flags) __attribute__ ((__nothrow__ , __leaf__)); extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle, int __flags); # 54 "/usr/include/bits/fcntl.h" 2 3 4 # 36 "/usr/include/fcntl.h" 2 3 4 # 67 "/usr/include/fcntl.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 68 "/usr/include/fcntl.h" 2 3 4 # 1 "/usr/include/bits/stat.h" 1 3 4 # 38 "/usr/include/bits/stat.h" 3 4 struct stat { __dev_t st_dev; unsigned short int __pad1; __ino_t __st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; unsigned short int __pad2; __off64_t st_size; __blksize_t st_blksize; __blkcnt64_t st_blocks; # 72 "/usr/include/bits/stat.h" 3 4 struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 90 "/usr/include/bits/stat.h" 3 4 __ino64_t st_ino; }; struct stat64 { __dev_t st_dev; unsigned int __pad1; __ino_t __st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; unsigned int __pad2; __off64_t st_size; __blksize_t st_blksize; __blkcnt64_t st_blocks; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 129 "/usr/include/bits/stat.h" 3 4 __ino64_t st_ino; }; # 69 "/usr/include/fcntl.h" 2 3 4 # 160 "/usr/include/fcntl.h" 3 4 extern int fcntl (int __fd, int __cmd, ...); # 172 "/usr/include/fcntl.h" 3 4 extern int open (const char *__file, int __oflag, ...) __asm__ ("" "open64") __attribute__ ((__nonnull__ (1))); extern int open64 (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); # 197 "/usr/include/fcntl.h" 3 4 extern int openat (int __fd, const char *__file, int __oflag, ...) __asm__ ("" "openat64") __attribute__ ((__nonnull__ (2))); extern int openat64 (int __fd, const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); # 218 "/usr/include/fcntl.h" 3 4 extern int creat (const char *__file, mode_t __mode) __asm__ ("" "creat64") __attribute__ ((__nonnull__ (1))); extern int creat64 (const char *__file, mode_t __mode) __attribute__ ((__nonnull__ (1))); # 265 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise (int __fd, __off64_t __offset, __off64_t __len, int __advise) __asm__ ("" "posix_fadvise64") __attribute__ ((__nothrow__ , __leaf__)) ; extern int posix_fadvise64 (int __fd, off64_t __offset, off64_t __len, int __advise) __attribute__ ((__nothrow__ , __leaf__)); # 286 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate (int __fd, __off64_t __offset, __off64_t __len) __asm__ ("" "posix_fallocate64") ; extern int posix_fallocate64 (int __fd, off64_t __offset, off64_t __len); # 1 "/usr/include/bits/fcntl2.h" 1 3 4 # 30 "/usr/include/bits/fcntl2.h" 3 4 extern int __open_2 (const char *__path, int __oflag) __asm__ ("" "__open64_2") __attribute__ ((__nonnull__ (1))); extern int __open_alias (const char *__path, int __oflag, ...) __asm__ ("" "open64") __attribute__ ((__nonnull__ (1))); extern void __open_too_many_args (void) __attribute__((__error__ ("open can be called either with 2 or 3 arguments, not more"))) ; extern void __open_missing_mode (void) __attribute__((__error__ ("open with O_CREAT in second argument needs 3 arguments"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int open (const char *__path, int __oflag, ...) { if (__builtin_va_arg_pack_len () > 1) __open_too_many_args (); if (__builtin_constant_p (__oflag)) { if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) { __open_missing_mode (); return __open_2 (__path, __oflag); } return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); } if (__builtin_va_arg_pack_len () < 1) return __open_2 (__path, __oflag); return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); } extern int __open64_2 (const char *__path, int __oflag) __attribute__ ((__nonnull__ (1))); extern int __open64_alias (const char *__path, int __oflag, ...) __asm__ ("" "open64") __attribute__ ((__nonnull__ (1))); extern void __open64_too_many_args (void) __attribute__((__error__ ("open64 can be called either with 2 or 3 arguments, not more"))) ; extern void __open64_missing_mode (void) __attribute__((__error__ ("open64 with O_CREAT in second argument needs 3 arguments"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int open64 (const char *__path, int __oflag, ...) { if (__builtin_va_arg_pack_len () > 1) __open64_too_many_args (); if (__builtin_constant_p (__oflag)) { if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) { __open64_missing_mode (); return __open64_2 (__path, __oflag); } return __open64_alias (__path, __oflag, __builtin_va_arg_pack ()); } if (__builtin_va_arg_pack_len () < 1) return __open64_2 (__path, __oflag); return __open64_alias (__path, __oflag, __builtin_va_arg_pack ()); } # 104 "/usr/include/bits/fcntl2.h" 3 4 extern int __openat_2 (int __fd, const char *__path, int __oflag) __asm__ ("" "__openat64_2") __attribute__ ((__nonnull__ (2))); extern int __openat_alias (int __fd, const char *__path, int __oflag, ...) __asm__ ("" "openat64") __attribute__ ((__nonnull__ (2))); extern void __openat_too_many_args (void) __attribute__((__error__ ("openat can be called either with 3 or 4 arguments, not more"))) ; extern void __openat_missing_mode (void) __attribute__((__error__ ("openat with O_CREAT in third argument needs 4 arguments"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int openat (int __fd, const char *__path, int __oflag, ...) { if (__builtin_va_arg_pack_len () > 1) __openat_too_many_args (); if (__builtin_constant_p (__oflag)) { if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) { __openat_missing_mode (); return __openat_2 (__fd, __path, __oflag); } return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); } if (__builtin_va_arg_pack_len () < 1) return __openat_2 (__fd, __path, __oflag); return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); } extern int __openat64_2 (int __fd, const char *__path, int __oflag) __attribute__ ((__nonnull__ (2))); extern int __openat64_alias (int __fd, const char *__path, int __oflag, ...) __asm__ ("" "openat64") __attribute__ ((__nonnull__ (2))); extern void __openat64_too_many_args (void) __attribute__((__error__ ("openat64 can be called either with 3 or 4 arguments, not more"))) ; extern void __openat64_missing_mode (void) __attribute__((__error__ ("openat64 with O_CREAT in third argument needs 4 arguments"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int openat64 (int __fd, const char *__path, int __oflag, ...) { if (__builtin_va_arg_pack_len () > 1) __openat64_too_many_args (); if (__builtin_constant_p (__oflag)) { if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) { __openat64_missing_mode (); return __openat64_2 (__fd, __path, __oflag); } return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); } if (__builtin_va_arg_pack_len () < 1) return __openat64_2 (__fd, __path, __oflag); return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); } # 303 "/usr/include/fcntl.h" 2 3 4 # 19 "include/libbb.h" 2 # 1 "/usr/include/inttypes.h" 1 3 4 # 34 "/usr/include/inttypes.h" 3 4 typedef unsigned int __gwchar_t; # 266 "/usr/include/inttypes.h" 3 4 # 280 "/usr/include/inttypes.h" 3 4 typedef struct { __extension__ long long int quot; __extension__ long long int rem; } imaxdiv_t; extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern intmax_t strtoimax (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); extern uintmax_t strtoumax (const char *__restrict __nptr, char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr, __gwchar_t ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); # 370 "/usr/include/inttypes.h" 3 4 __extension__ extern long long int __strtoll_internal (const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern __inline __attribute__ ((__gnu_inline__)) intmax_t __attribute__ ((__nothrow__ , __leaf__)) strtoimax (const char *__restrict nptr, char **__restrict endptr, int base) { return __strtoll_internal (nptr, endptr, base, 0); } __extension__ extern unsigned long long int __strtoull_internal (const char * __restrict __nptr, char ** __restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern __inline __attribute__ ((__gnu_inline__)) uintmax_t __attribute__ ((__nothrow__ , __leaf__)) strtoumax (const char *__restrict nptr, char **__restrict endptr, int base) { return __strtoull_internal (nptr, endptr, base, 0); } __extension__ extern long long int __wcstoll_internal (const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern __inline __attribute__ ((__gnu_inline__)) intmax_t __attribute__ ((__nothrow__ , __leaf__)) wcstoimax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstoll_internal (nptr, endptr, base, 0); } __extension__ extern unsigned long long int __wcstoull_internal (const __gwchar_t * __restrict __nptr, __gwchar_t ** __restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern __inline __attribute__ ((__gnu_inline__)) uintmax_t __attribute__ ((__nothrow__ , __leaf__)) wcstoumax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstoull_internal (nptr, endptr, base, 0); } # 20 "include/libbb.h" 2 # 1 "/usr/include/netdb.h" 1 3 4 # 27 "/usr/include/netdb.h" 3 4 # 1 "/usr/include/netinet/in.h" 1 3 4 # 27 "/usr/include/netinet/in.h" 3 4 typedef uint32_t in_addr_t; struct in_addr { in_addr_t s_addr; }; # 1 "/usr/include/bits/in.h" 1 3 4 # 112 "/usr/include/bits/in.h" 3 4 struct ip_opts { struct in_addr ip_dst; char ip_opts[40]; }; struct ip_mreqn { struct in_addr imr_multiaddr; struct in_addr imr_address; int imr_ifindex; }; struct in_pktinfo { int ipi_ifindex; struct in_addr ipi_spec_dst; struct in_addr ipi_addr; }; # 38 "/usr/include/netinet/in.h" 2 3 4 enum { IPPROTO_IP = 0, IPPROTO_ICMP = 1, IPPROTO_IGMP = 2, IPPROTO_IPIP = 4, IPPROTO_TCP = 6, IPPROTO_EGP = 8, IPPROTO_PUP = 12, IPPROTO_UDP = 17, IPPROTO_IDP = 22, IPPROTO_TP = 29, IPPROTO_DCCP = 33, IPPROTO_IPV6 = 41, IPPROTO_RSVP = 46, IPPROTO_GRE = 47, IPPROTO_ESP = 50, IPPROTO_AH = 51, IPPROTO_MTP = 92, IPPROTO_BEETPH = 94, IPPROTO_ENCAP = 98, IPPROTO_PIM = 103, IPPROTO_COMP = 108, IPPROTO_SCTP = 132, IPPROTO_UDPLITE = 136, IPPROTO_RAW = 255, IPPROTO_MAX }; enum { IPPROTO_HOPOPTS = 0, IPPROTO_ROUTING = 43, IPPROTO_FRAGMENT = 44, IPPROTO_ICMPV6 = 58, IPPROTO_NONE = 59, IPPROTO_DSTOPTS = 60, IPPROTO_MH = 135 }; typedef uint16_t in_port_t; enum { IPPORT_ECHO = 7, IPPORT_DISCARD = 9, IPPORT_SYSTAT = 11, IPPORT_DAYTIME = 13, IPPORT_NETSTAT = 15, IPPORT_FTP = 21, IPPORT_TELNET = 23, IPPORT_SMTP = 25, IPPORT_TIMESERVER = 37, IPPORT_NAMESERVER = 42, IPPORT_WHOIS = 43, IPPORT_MTP = 57, IPPORT_TFTP = 69, IPPORT_RJE = 77, IPPORT_FINGER = 79, IPPORT_TTYLINK = 87, IPPORT_SUPDUP = 95, IPPORT_EXECSERVER = 512, IPPORT_LOGINSERVER = 513, IPPORT_CMDSERVER = 514, IPPORT_EFSSERVER = 520, IPPORT_BIFFUDP = 512, IPPORT_WHOSERVER = 513, IPPORT_ROUTESERVER = 520, IPPORT_RESERVED = 1024, IPPORT_USERRESERVED = 5000 }; # 209 "/usr/include/netinet/in.h" 3 4 struct in6_addr { union { uint8_t __u6_addr8[16]; uint16_t __u6_addr16[8]; uint32_t __u6_addr32[4]; } __in6_u; }; extern const struct in6_addr in6addr_any; extern const struct in6_addr in6addr_loopback; # 237 "/usr/include/netinet/in.h" 3 4 struct sockaddr_in { sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; unsigned char sin_zero[sizeof (struct sockaddr) - (sizeof (unsigned short int)) - sizeof (in_port_t) - sizeof (struct in_addr)]; }; struct sockaddr_in6 { sa_family_t sin6_family; in_port_t sin6_port; uint32_t sin6_flowinfo; struct in6_addr sin6_addr; uint32_t sin6_scope_id; }; struct ip_mreq { struct in_addr imr_multiaddr; struct in_addr imr_interface; }; struct ip_mreq_source { struct in_addr imr_multiaddr; struct in_addr imr_interface; struct in_addr imr_sourceaddr; }; struct ipv6_mreq { struct in6_addr ipv6mr_multiaddr; unsigned int ipv6mr_interface; }; struct group_req { uint32_t gr_interface; struct sockaddr_storage gr_group; }; struct group_source_req { uint32_t gsr_interface; struct sockaddr_storage gsr_group; struct sockaddr_storage gsr_source; }; struct ip_msfilter { struct in_addr imsf_multiaddr; struct in_addr imsf_interface; uint32_t imsf_fmode; uint32_t imsf_numsrc; struct in_addr imsf_slist[1]; }; struct group_filter { uint32_t gf_interface; struct sockaddr_storage gf_group; uint32_t gf_fmode; uint32_t gf_numsrc; struct sockaddr_storage gf_slist[1]; }; # 374 "/usr/include/netinet/in.h" 3 4 extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern uint16_t ntohs (uint16_t __netshort) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern uint32_t htonl (uint32_t __hostlong) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern uint16_t htons (uint16_t __hostshort) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 1 "/usr/include/bits/byteswap.h" 1 3 4 # 386 "/usr/include/netinet/in.h" 2 3 4 # 501 "/usr/include/netinet/in.h" 3 4 extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __attribute__ ((__nothrow__ , __leaf__)); extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) __attribute__ ((__nothrow__ , __leaf__)); # 531 "/usr/include/netinet/in.h" 3 4 struct cmsghdr; struct in6_pktinfo { struct in6_addr ipi6_addr; unsigned int ipi6_ifindex; }; struct ip6_mtuinfo { struct sockaddr_in6 ip6m_addr; uint32_t ip6m_mtu; }; extern int inet6_option_space (int __nbytes) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern int inet6_option_append (struct cmsghdr *__cmsg, const uint8_t *__typep, int __multx, int __plusy) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, int __multx, int __plusy) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern int inet6_option_next (const struct cmsghdr *__cmsg, uint8_t **__tptrp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern int inet6_option_find (const struct cmsghdr *__cmsg, uint8_t **__tptrp, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset, uint8_t __type, socklen_t __len, uint8_t __align, void **__databufp) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val, socklen_t __vallen) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset, uint8_t *__typep, socklen_t *__lenp, void **__databufp) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset, uint8_t __type, socklen_t *__lenp, void **__databufp) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val, socklen_t __vallen) __attribute__ ((__nothrow__ , __leaf__)); extern socklen_t inet6_rth_space (int __type, int __segments) __attribute__ ((__nothrow__ , __leaf__)); extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type, int __segments) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_rth_reverse (const void *__in, void *__out) __attribute__ ((__nothrow__ , __leaf__)); extern int inet6_rth_segments (const void *__bp) __attribute__ ((__nothrow__ , __leaf__)); extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index) __attribute__ ((__nothrow__ , __leaf__)); extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr, struct in_addr __group, uint32_t *__fmode, uint32_t *__numsrc, struct in_addr *__slist) __attribute__ ((__nothrow__ , __leaf__)); extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr, struct in_addr __group, uint32_t __fmode, uint32_t __numsrc, const struct in_addr *__slist) __attribute__ ((__nothrow__ , __leaf__)); extern int getsourcefilter (int __s, uint32_t __interface_addr, const struct sockaddr *__group, socklen_t __grouplen, uint32_t *__fmode, uint32_t *__numsrc, struct sockaddr_storage *__slist) __attribute__ ((__nothrow__ , __leaf__)); extern int setsourcefilter (int __s, uint32_t __interface_addr, const struct sockaddr *__group, socklen_t __grouplen, uint32_t __fmode, uint32_t __numsrc, const struct sockaddr_storage *__slist) __attribute__ ((__nothrow__ , __leaf__)); # 28 "/usr/include/netdb.h" 2 3 4 # 1 "/usr/include/rpc/netdb.h" 1 3 4 # 42 "/usr/include/rpc/netdb.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 43 "/usr/include/rpc/netdb.h" 2 3 4 struct rpcent { char *r_name; char **r_aliases; int r_number; }; extern void setrpcent (int __stayopen) __attribute__ ((__nothrow__ , __leaf__)); extern void endrpcent (void) __attribute__ ((__nothrow__ , __leaf__)); extern struct rpcent *getrpcbyname (const char *__name) __attribute__ ((__nothrow__ , __leaf__)); extern struct rpcent *getrpcbynumber (int __number) __attribute__ ((__nothrow__ , __leaf__)); extern struct rpcent *getrpcent (void) __attribute__ ((__nothrow__ , __leaf__)); extern int getrpcbyname_r (const char *__name, struct rpcent *__result_buf, char *__buffer, size_t __buflen, struct rpcent **__result) __attribute__ ((__nothrow__ , __leaf__)); extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf, char *__buffer, size_t __buflen, struct rpcent **__result) __attribute__ ((__nothrow__ , __leaf__)); extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer, size_t __buflen, struct rpcent **__result) __attribute__ ((__nothrow__ , __leaf__)); # 33 "/usr/include/netdb.h" 2 3 4 # 1 "/usr/include/bits/siginfo.h" 1 3 4 # 24 "/usr/include/bits/siginfo.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 25 "/usr/include/bits/siginfo.h" 2 3 4 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; # 295 "/usr/include/bits/siginfo.h" 3 4 typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64 / sizeof (int)) - 3)]; __pid_t _tid; struct { void (*_function) (sigval_t); pthread_attr_t *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; enum { SIGEV_SIGNAL = 0, SIGEV_NONE, SIGEV_THREAD, SIGEV_THREAD_ID = 4 }; # 38 "/usr/include/netdb.h" 2 3 4 # 1 "/usr/include/time.h" 1 3 4 # 40 "/usr/include/netdb.h" 2 3 4 # 1 "/usr/include/bits/netdb.h" 1 3 4 # 26 "/usr/include/bits/netdb.h" 3 4 struct netent { char *n_name; char **n_aliases; int n_addrtype; uint32_t n_net; }; # 43 "/usr/include/netdb.h" 2 3 4 # 53 "/usr/include/netdb.h" 3 4 extern int *__h_errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 92 "/usr/include/netdb.h" 3 4 extern void herror (const char *__str) __attribute__ ((__nothrow__ , __leaf__)); extern const char *hstrerror (int __err_num) __attribute__ ((__nothrow__ , __leaf__)); struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; }; extern void sethostent (int __stay_open); extern void endhostent (void); extern struct hostent *gethostent (void); extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len, int __type); extern struct hostent *gethostbyname (const char *__name); # 155 "/usr/include/netdb.h" 3 4 extern struct hostent *gethostbyname2 (const char *__name, int __af); # 167 "/usr/include/netdb.h" 3 4 extern int gethostent_r (struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop); extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len, int __type, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop); extern int gethostbyname_r (const char *__restrict __name, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop); extern int gethostbyname2_r (const char *__restrict __name, int __af, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop); # 198 "/usr/include/netdb.h" 3 4 extern void setnetent (int __stay_open); extern void endnetent (void); extern struct netent *getnetent (void); extern struct netent *getnetbyaddr (uint32_t __net, int __type); extern struct netent *getnetbyname (const char *__name); # 237 "/usr/include/netdb.h" 3 4 extern int getnetent_r (struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop); extern int getnetbyaddr_r (uint32_t __net, int __type, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop); extern int getnetbyname_r (const char *__restrict __name, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop); struct servent { char *s_name; char **s_aliases; int s_port; char *s_proto; }; extern void setservent (int __stay_open); extern void endservent (void); extern struct servent *getservent (void); extern struct servent *getservbyname (const char *__name, const char *__proto); extern struct servent *getservbyport (int __port, const char *__proto); # 308 "/usr/include/netdb.h" 3 4 extern int getservent_r (struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result); extern int getservbyname_r (const char *__restrict __name, const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result); extern int getservbyport_r (int __port, const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result); struct protoent { char *p_name; char **p_aliases; int p_proto; }; extern void setprotoent (int __stay_open); extern void endprotoent (void); extern struct protoent *getprotoent (void); extern struct protoent *getprotobyname (const char *__name); extern struct protoent *getprotobynumber (int __proto); # 374 "/usr/include/netdb.h" 3 4 extern int getprotoent_r (struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result); extern int getprotobyname_r (const char *__restrict __name, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result); extern int getprotobynumber_r (int __proto, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result); # 395 "/usr/include/netdb.h" 3 4 extern int setnetgrent (const char *__netgroup); extern void endnetgrent (void); # 412 "/usr/include/netdb.h" 3 4 extern int getnetgrent (char **__restrict __hostp, char **__restrict __userp, char **__restrict __domainp); # 423 "/usr/include/netdb.h" 3 4 extern int innetgr (const char *__netgroup, const char *__host, const char *__user, const char *__domain); extern int getnetgrent_r (char **__restrict __hostp, char **__restrict __userp, char **__restrict __domainp, char *__restrict __buffer, size_t __buflen); # 451 "/usr/include/netdb.h" 3 4 extern int rcmd (char **__restrict __ahost, unsigned short int __rport, const char *__restrict __locuser, const char *__restrict __remuser, const char *__restrict __cmd, int *__restrict __fd2p); # 463 "/usr/include/netdb.h" 3 4 extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport, const char *__restrict __locuser, const char *__restrict __remuser, const char *__restrict __cmd, int *__restrict __fd2p, sa_family_t __af); # 479 "/usr/include/netdb.h" 3 4 extern int rexec (char **__restrict __ahost, int __rport, const char *__restrict __name, const char *__restrict __pass, const char *__restrict __cmd, int *__restrict __fd2p); # 491 "/usr/include/netdb.h" 3 4 extern int rexec_af (char **__restrict __ahost, int __rport, const char *__restrict __name, const char *__restrict __pass, const char *__restrict __cmd, int *__restrict __fd2p, sa_family_t __af); # 505 "/usr/include/netdb.h" 3 4 extern int ruserok (const char *__rhost, int __suser, const char *__remuser, const char *__locuser); # 515 "/usr/include/netdb.h" 3 4 extern int ruserok_af (const char *__rhost, int __suser, const char *__remuser, const char *__locuser, sa_family_t __af); # 528 "/usr/include/netdb.h" 3 4 extern int iruserok (uint32_t __raddr, int __suser, const char *__remuser, const char *__locuser); # 539 "/usr/include/netdb.h" 3 4 extern int iruserok_af (const void *__raddr, int __suser, const char *__remuser, const char *__locuser, sa_family_t __af); # 551 "/usr/include/netdb.h" 3 4 extern int rresvport (int *__alport); # 560 "/usr/include/netdb.h" 3 4 extern int rresvport_af (int *__alport, sa_family_t __af); struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; socklen_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; struct addrinfo *ai_next; }; struct gaicb { const char *ar_name; const char *ar_service; const struct addrinfo *ar_request; struct addrinfo *ar_result; int __return; int __glibc_reserved[5]; }; # 662 "/usr/include/netdb.h" 3 4 extern int getaddrinfo (const char *__restrict __name, const char *__restrict __service, const struct addrinfo *__restrict __req, struct addrinfo **__restrict __pai); extern void freeaddrinfo (struct addrinfo *__ai) __attribute__ ((__nothrow__ , __leaf__)); extern const char *gai_strerror (int __ecode) __attribute__ ((__nothrow__ , __leaf__)); extern int getnameinfo (const struct sockaddr *__restrict __sa, socklen_t __salen, char *__restrict __host, socklen_t __hostlen, char *__restrict __serv, socklen_t __servlen, int __flags); # 692 "/usr/include/netdb.h" 3 4 extern int getaddrinfo_a (int __mode, struct gaicb *__list[__restrict], int __ent, struct sigevent *__restrict __sig); # 703 "/usr/include/netdb.h" 3 4 extern int gai_suspend (const struct gaicb *const __list[], int __ent, const struct timespec *__timeout); extern int gai_error (struct gaicb *__req) __attribute__ ((__nothrow__ , __leaf__)); extern int gai_cancel (struct gaicb *__gaicbp) __attribute__ ((__nothrow__ , __leaf__)); # 21 "include/libbb.h" 2 # 1 "/usr/include/setjmp.h" 1 3 4 # 27 "/usr/include/setjmp.h" 3 4 # 1 "/usr/include/bits/setjmp.h" 1 3 4 # 34 "/usr/include/bits/setjmp.h" 3 4 typedef int __jmp_buf[64] __attribute__((__aligned__ (8))); # 30 "/usr/include/setjmp.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 31 "/usr/include/setjmp.h" 2 3 4 struct __jmp_buf_tag { __jmp_buf __jmpbuf; int __mask_was_saved; __sigset_t __saved_mask; }; typedef struct __jmp_buf_tag jmp_buf[1]; extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__)); extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__)); extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__)); extern void longjmp (struct __jmp_buf_tag __env[1], int __val) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); typedef struct __jmp_buf_tag sigjmp_buf[1]; # 102 "/usr/include/setjmp.h" 3 4 extern void siglongjmp (sigjmp_buf __env, int __val) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); # 1 "/usr/include/bits/setjmp2.h" 1 3 4 # 25 "/usr/include/bits/setjmp2.h" 3 4 extern void longjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void siglongjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); # 110 "/usr/include/setjmp.h" 2 3 4 # 22 "include/libbb.h" 2 # 1 "/usr/include/signal.h" 1 3 4 # 30 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 102 "/usr/include/bits/sigset.h" 3 4 extern int __sigismember (const __sigset_t *, int); extern int __sigaddset (__sigset_t *, int); extern int __sigdelset (__sigset_t *, int); # 116 "/usr/include/bits/sigset.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int __sigismember (const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } extern __inline __attribute__ ((__gnu_inline__)) int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } extern __inline __attribute__ ((__gnu_inline__)) int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } # 33 "/usr/include/signal.h" 2 3 4 typedef __sig_atomic_t sig_atomic_t; # 57 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/signum.h" 1 3 4 # 58 "/usr/include/signal.h" 2 3 4 # 75 "/usr/include/signal.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 76 "/usr/include/signal.h" 2 3 4 # 1 "/usr/include/bits/siginfo.h" 1 3 4 # 24 "/usr/include/bits/siginfo.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 25 "/usr/include/bits/siginfo.h" 2 3 4 # 50 "/usr/include/bits/siginfo.h" 3 4 typedef struct { int si_signo; int si_errno; int si_code; union { int _pad[((128 / sizeof (int)) - 3)]; struct { __pid_t si_pid; __uid_t si_uid; } _kill; struct { int si_tid; int si_overrun; sigval_t si_sigval; } _timer; struct { __pid_t si_pid; __uid_t si_uid; sigval_t si_sigval; } _rt; struct { __pid_t si_pid; __uid_t si_uid; int si_status; __clock_t si_utime; __clock_t si_stime; } _sigchld; struct { void *si_addr; short int si_addr_lsb; } _sigfault; struct { long int si_band; int si_fd; } _sigpoll; struct { void *_call_addr; int _syscall; unsigned int _arch; } _sigsys; } _sifields; } siginfo_t; # 141 "/usr/include/bits/siginfo.h" 3 4 enum { SI_ASYNCNL = -60, SI_TKILL = -6, SI_SIGIO, SI_ASYNCIO, SI_MESGQ, SI_TIMER, SI_QUEUE, SI_USER, SI_KERNEL = 0x80 }; enum { ILL_ILLOPC = 1, ILL_ILLOPN, ILL_ILLADR, ILL_ILLTRP, ILL_PRVOPC, ILL_PRVREG, ILL_COPROC, ILL_BADSTK }; enum { FPE_INTDIV = 1, FPE_INTOVF, FPE_FLTDIV, FPE_FLTOVF, FPE_FLTUND, FPE_FLTRES, FPE_FLTINV, FPE_FLTSUB }; enum { SEGV_MAPERR = 1, SEGV_ACCERR }; enum { BUS_ADRALN = 1, BUS_ADRERR, BUS_OBJERR, BUS_MCEERR_AR, BUS_MCEERR_AO }; enum { TRAP_BRKPT = 1, TRAP_TRACE }; enum { CLD_EXITED = 1, CLD_KILLED, CLD_DUMPED, CLD_TRAPPED, CLD_STOPPED, CLD_CONTINUED }; enum { POLL_IN = 1, POLL_OUT, POLL_MSG, POLL_ERR, POLL_PRI, POLL_HUP }; # 81 "/usr/include/signal.h" 2 3 4 typedef void (*__sighandler_t) (int); extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__ , __leaf__)); extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__ , __leaf__)); extern __sighandler_t signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__ , __leaf__)); # 114 "/usr/include/signal.h" 3 4 extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__ , __leaf__)); extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__ , __leaf__)); extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern void psignal (int __sig, const char *__s); extern void psiginfo (const siginfo_t *__pinfo, const char *__s); # 167 "/usr/include/signal.h" 3 4 extern int __sigpause (int __sig_or_mask, int __is_sig); extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); # 189 "/usr/include/signal.h" 3 4 extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); # 204 "/usr/include/signal.h" 3 4 typedef __sighandler_t sighandler_t; typedef __sighandler_t sig_t; extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int sigismember (const sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int sigisemptyset (const sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int sigandset (sigset_t *__set, const sigset_t *__left, const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int sigorset (sigset_t *__set, const sigset_t *__left, const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))); # 1 "/usr/include/bits/sigaction.h" 1 3 4 # 24 "/usr/include/bits/sigaction.h" 3 4 struct sigaction { union { __sighandler_t sa_handler; void (*sa_sigaction) (int, siginfo_t *, void *); } __sigaction_handler; __sigset_t sa_mask; int sa_flags; void (*sa_restorer) (void); }; # 246 "/usr/include/signal.h" 2 3 4 extern int sigprocmask (int __how, const sigset_t *__restrict __set, sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__)); extern int sigsuspend (const sigset_t *__set) __attribute__ ((__nonnull__ (1))); extern int sigaction (int __sig, const struct sigaction *__restrict __act, struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__)); extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig) __attribute__ ((__nonnull__ (1, 2))); extern int sigwaitinfo (const sigset_t *__restrict __set, siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); extern int sigtimedwait (const sigset_t *__restrict __set, siginfo_t *__restrict __info, const struct timespec *__restrict __timeout) __attribute__ ((__nonnull__ (1))); extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val) __attribute__ ((__nothrow__ , __leaf__)); # 303 "/usr/include/signal.h" 3 4 extern const char *const _sys_siglist[65]; extern const char *const sys_siglist[65]; struct sigvec { __sighandler_t sv_handler; int sv_mask; int sv_flags; }; # 327 "/usr/include/signal.h" 3 4 extern int sigvec (int __sig, const struct sigvec *__vec, struct sigvec *__ovec) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/include/bits/sigcontext.h" 1 3 4 # 27 "/usr/include/bits/sigcontext.h" 3 4 # 1 "/usr/include/asm/sigcontext.h" 1 3 4 # 9 "/usr/include/asm/sigcontext.h" 3 4 struct sigcontext { unsigned long trap_no; unsigned long error_code; unsigned long oldmask; unsigned long arm_r0; unsigned long arm_r1; unsigned long arm_r2; unsigned long arm_r3; unsigned long arm_r4; unsigned long arm_r5; unsigned long arm_r6; unsigned long arm_r7; unsigned long arm_r8; unsigned long arm_r9; unsigned long arm_r10; unsigned long arm_fp; unsigned long arm_ip; unsigned long arm_sp; unsigned long arm_lr; unsigned long arm_pc; unsigned long arm_cpsr; unsigned long fault_address; }; # 28 "/usr/include/bits/sigcontext.h" 2 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 32 "/usr/include/bits/sigcontext.h" 2 3 4 # 333 "/usr/include/signal.h" 2 3 4 extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 343 "/usr/include/signal.h" 2 3 4 extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/include/bits/sigstack.h" 1 3 4 # 25 "/usr/include/bits/sigstack.h" 3 4 struct sigstack { void *ss_sp; int ss_onstack; }; enum { SS_ONSTACK = 1, SS_DISABLE }; # 49 "/usr/include/bits/sigstack.h" 3 4 typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; # 350 "/usr/include/signal.h" 2 3 4 # 1 "/usr/include/sys/ucontext.h" 1 3 4 # 24 "/usr/include/sys/ucontext.h" 3 4 # 1 "/usr/include/signal.h" 1 3 4 # 25 "/usr/include/sys/ucontext.h" 2 3 4 # 1 "/usr/include/bits/sigcontext.h" 1 3 4 # 29 "/usr/include/sys/ucontext.h" 2 3 4 typedef int greg_t; typedef greg_t gregset_t[18]; enum { REG_R0 = 0, REG_R1 = 1, REG_R2 = 2, REG_R3 = 3, REG_R4 = 4, REG_R5 = 5, REG_R6 = 6, REG_R7 = 7, REG_R8 = 8, REG_R9 = 9, REG_R10 = 10, REG_R11 = 11, REG_R12 = 12, REG_R13 = 13, REG_R14 = 14, REG_R15 = 15 }; struct _libc_fpstate { struct { unsigned int sign1:1; unsigned int unused:15; unsigned int sign2:1; unsigned int exponent:14; unsigned int j:1; unsigned int mantissa1:31; unsigned int mantissa0:32; } fpregs[8]; unsigned int fpsr:32; unsigned int fpcr:32; unsigned char ftype[8]; unsigned int init_flag; }; typedef struct _libc_fpstate fpregset_t; typedef struct sigcontext mcontext_t; typedef struct ucontext { unsigned long uc_flags; struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; __sigset_t uc_sigmask; unsigned long uc_regspace[128] __attribute__((__aligned__(8))); } ucontext_t; # 353 "/usr/include/signal.h" 2 3 4 extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); extern int sigaltstack (const struct sigaltstack *__restrict __ss, struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__)); extern int sighold (int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern int sigrelse (int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern int sigignore (int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/include/bits/sigthread.h" 1 3 4 # 30 "/usr/include/bits/sigthread.h" 3 4 extern int pthread_sigmask (int __how, const __sigset_t *__restrict __newmask, __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__)); extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__)); extern int pthread_sigqueue (pthread_t __threadid, int __signo, const union sigval __value) __attribute__ ((__nothrow__ , __leaf__)); # 389 "/usr/include/signal.h" 2 3 4 extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__)); extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__)); # 23 "include/libbb.h" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 29 "/usr/include/stdio.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 34 "/usr/include/stdio.h" 2 3 4 # 44 "/usr/include/stdio.h" 3 4 struct _IO_FILE; typedef struct _IO_FILE FILE; # 64 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 74 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/libio.h" 1 3 4 # 31 "/usr/include/libio.h" 3 4 # 1 "/usr/include/_G_config.h" 1 3 4 # 15 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 16 "/usr/include/_G_config.h" 2 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 82 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { unsigned int __wch; char __wchb[4]; } __value; } __mbstate_t; # 21 "/usr/include/_G_config.h" 2 3 4 typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; # 32 "/usr/include/libio.h" 2 3 4 # 49 "/usr/include/libio.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stdarg.h" 1 3 4 # 40 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 50 "/usr/include/libio.h" 2 3 4 # 144 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 154 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 177 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 245 "/usr/include/libio.h" 3 4 struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 293 "/usr/include/libio.h" 3 4 __off64_t _offset; # 302 "/usr/include/libio.h" 3 4 void *__pad1; void *__pad2; void *__pad3; void *__pad4; size_t __pad5; int _mode; char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; }; typedef struct _IO_FILE _IO_FILE; struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_2_1_stdin_; extern struct _IO_FILE_plus _IO_2_1_stdout_; extern struct _IO_FILE_plus _IO_2_1_stderr_; # 338 "/usr/include/libio.h" 3 4 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, size_t __n); typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); typedef int __io_close_fn (void *__cookie); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern int __underflow (_IO_FILE *); extern int __uflow (_IO_FILE *); extern int __overflow (_IO_FILE *, int); # 434 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp); extern int _IO_putc (int __c, _IO_FILE *__fp); extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); extern int _IO_peekc_locked (_IO_FILE *__fp); extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); # 464 "/usr/include/libio.h" 3 4 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict); extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list); extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); # 75 "/usr/include/stdio.h" 2 3 4 typedef __gnuc_va_list va_list; # 108 "/usr/include/stdio.h" 3 4 typedef _G_fpos64_t fpos_t; typedef _G_fpos64_t fpos64_t; # 164 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 165 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__)); extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__)); extern int renameat (int __oldfd, const char *__old, int __newfd, const char *__new) __attribute__ ((__nothrow__ , __leaf__)); # 198 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") __attribute__ ((__warn_unused_result__)); extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); # 227 "/usr/include/stdio.h" 3 4 extern char *tempnam (const char *__dir, const char *__pfx) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 252 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 262 "/usr/include/stdio.h" 3 4 extern int fcloseall (void); # 283 "/usr/include/stdio.h" 3 4 extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) __asm__ ("" "fopen64") __attribute__ ((__warn_unused_result__)); extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") __attribute__ ((__warn_unused_result__)); extern FILE *fopen64 (const char *__restrict __filename, const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); extern FILE *freopen64 (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern FILE *fopencookie (void *__restrict __magic_cookie, const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)); extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern int fprintf (FILE *__restrict __stream, const char *__restrict __format, ...); extern int printf (const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, const char *__restrict __format, ...) __attribute__ ((__nothrow__)); extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)); extern int snprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); extern int __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); extern int asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); extern int vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); # 463 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0))); # 522 "/usr/include/stdio.h" 3 4 extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 550 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 561 "/usr/include/stdio.h" 3 4 extern int fgetc_unlocked (FILE *__stream); extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); # 594 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); # 640 "/usr/include/stdio.h" 3 4 # 649 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); # 665 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern int fputs (const char *__restrict __s, FILE *__restrict __stream); extern int puts (const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t fwrite (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); # 726 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (const char *__restrict __s, FILE *__restrict __stream); # 737 "/usr/include/stdio.h" 3 4 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern int fseek (FILE *__stream, long int __off, int __whence); extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); extern void rewind (FILE *__stream); # 781 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64") ; extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); # 806 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64") ; extern int fsetpos (FILE *__stream, const fpos_t *__pos) __asm__ ("" "fsetpos64") ; extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void perror (const char *__s); # 1 "/usr/include/bits/sys_errlist.h" 1 3 4 # 26 "/usr/include/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern const char *const sys_errlist[]; extern int _sys_nerr; extern const char *const _sys_errlist[]; # 854 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); # 873 "/usr/include/stdio.h" 3 4 extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); extern int pclose (FILE *__stream); extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__)); extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __format, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __format, __gnuc_va_list __args) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); # 934 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio.h" 1 3 4 # 43 "/usr/include/bits/stdio.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int getchar (void) { return _IO_getc (stdin); } extern __inline __attribute__ ((__gnu_inline__)) int fgetc_unlocked (FILE *__fp) { return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int getc_unlocked (FILE *__fp) { return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int getchar_unlocked (void) { return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int putchar (int __c) { return _IO_putc (__c, stdout); } extern __inline __attribute__ ((__gnu_inline__)) int fputc_unlocked (int __c, FILE *__stream) { return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline __attribute__ ((__gnu_inline__)) int putc_unlocked (int __c, FILE *__stream) { return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline __attribute__ ((__gnu_inline__)) int putchar_unlocked (int __c) { return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); } extern __inline __attribute__ ((__gnu_inline__)) __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x10) != 0); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x20) != 0); } # 935 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/bits/stdio2.h" 1 3 4 # 23 "/usr/include/bits/stdio2.h" 3 4 extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, const char *__restrict __format, __gnuc_va_list __ap) __attribute__ ((__nothrow__ , __leaf__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) { return __builtin___sprintf_chk (__s, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) { return __builtin___vsprintf_chk (__s, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __ap); } extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, size_t __slen, const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, size_t __slen, const char *__restrict __format, __gnuc_va_list __ap) __attribute__ ((__nothrow__ , __leaf__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) { return __builtin___snprintf_chk (__s, __n, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) { return __builtin___vsnprintf_chk (__s, __n, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __ap); } extern int __fprintf_chk (FILE *__restrict __stream, int __flag, const char *__restrict __format, ...); extern int __printf_chk (int __flag, const char *__restrict __format, ...); extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, const char *__restrict __format, __gnuc_va_list __ap); extern int __vprintf_chk (int __flag, const char *__restrict __format, __gnuc_va_list __ap); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) { return __fprintf_chk (__stream, 2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int printf (const char *__restrict __fmt, ...) { return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) { return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int vfprintf (FILE *__restrict __stream, const char *__restrict __fmt, __gnuc_va_list __ap) { return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); } extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern int __vdprintf_chk (int __fd, int __flag, const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 3, 0))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int dprintf (int __fd, const char *__restrict __fmt, ...) { return __dprintf_chk (__fd, 2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) { return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); } extern int __asprintf_chk (char **__restrict __ptr, int __flag, const char *__restrict __fmt, ...) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); extern int __vasprintf_chk (char **__restrict __ptr, int __flag, const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); extern int __obstack_printf_chk (struct obstack *__restrict __obstack, int __flag, const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__printf__, 3, 4))); extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, int __flag, const char *__restrict __format, __gnuc_va_list __args) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__printf__, 3, 0))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) { return __asprintf_chk (__ptr, 2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) { return __asprintf_chk (__ptr, 2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) { return __obstack_printf_chk (__obstack, 2 - 1, __fmt, __builtin_va_arg_pack ()); } # 206 "/usr/include/bits/stdio2.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) { return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) { return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, __ap); } # 241 "/usr/include/bits/stdio2.h" 3 4 extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") __attribute__ ((__warn_unused_result__)); extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * fgets (char *__restrict __s, int __n, FILE *__restrict __stream) { if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__n) || __n <= 0) return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); } return __fgets_alias (__s, __n, __stream); } extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") __attribute__ ((__warn_unused_result__)); extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) { if (__builtin_object_size (__ptr, 0) != (size_t) -1) { if (!__builtin_constant_p (__size) || !__builtin_constant_p (__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); if (__size * __n > __builtin_object_size (__ptr, 0)) return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); } return __fread_alias (__ptr, __size, __n, __stream); } extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") __attribute__ ((__warn_unused_result__)); extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) { if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__n) || __n <= 0) return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); } return __fgets_unlocked_alias (__s, __n, __stream); } extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") __attribute__ ((__warn_unused_result__)); extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) { if (__builtin_object_size (__ptr, 0) != (size_t) -1) { if (!__builtin_constant_p (__size) || !__builtin_constant_p (__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); if (__size * __n > __builtin_object_size (__ptr, 0)) return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); } if (__builtin_constant_p (__size) && __builtin_constant_p (__n) && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) && __size * __n <= 8) { size_t __cnt = __size * __n; char *__cptr = (char *) __ptr; if (__cnt == 0) return 0; for (; __cnt > 0; --__cnt) { int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); if (__c == (-1)) break; *__cptr++ = __c; } return (__cptr - (char *) __ptr) / __size; } return __fread_unlocked_alias (__ptr, __size, __n, __stream); } # 938 "/usr/include/stdio.h" 2 3 4 # 31 "include/libbb.h" 2 # 1 "/usr/include/stdlib.h" 1 3 4 # 32 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 324 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 3 4 typedef unsigned int wchar_t; # 33 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitflags.h" 1 3 4 # 42 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitstatus.h" 1 3 4 # 66 "/usr/include/bits/waitstatus.h" 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; # 43 "/usr/include/stdlib.h" 2 3 4 # 67 "/usr/include/stdlib.h" 3 4 typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); # 95 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 139 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern double atof (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int atoi (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern long int atol (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int atoll (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern double strtod (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern float strtof (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long double strtold (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 239 "/usr/include/stdlib.h" 3 4 extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))); extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))); __extension__ extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))); __extension__ extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))); extern double strtod_l (const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); extern float strtof_l (const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); extern long double strtold_l (const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr) { return (int) strtol (__nptr, (char **) ((void *)0), 10); } extern __inline __attribute__ ((__gnu_inline__)) long int __attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr) { return strtol (__nptr, (char **) ((void *)0), 10); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int __attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr) { return strtoll (__nptr, (char **) ((void *)0), 10); } # 305 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern long int a64l (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 321 "/usr/include/stdlib.h" 3 4 extern long int random (void) __attribute__ ((__nothrow__ , __leaf__)); extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) __attribute__ ((__nothrow__ , __leaf__)); extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__)); extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern long int nrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern long int jrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__)); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; __extension__ unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/include/alloca.h" 1 3 4 # 24 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 25 "/usr/include/alloca.h" 2 3 4 extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__)); # 493 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern void *aligned_alloc (size_t __alignment, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern char *secure_getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int setenv (const char *__name, const char *__value, int __replace) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__)); # 606 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 623 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 645 "/usr/include/stdlib.h" 3 4 extern int mkstemps (char *__template, int __suffixlen) __asm__ ("" "mkstemps64") __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int mkstemps64 (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 663 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 677 "/usr/include/stdlib.h" 3 4 extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64") __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 698 "/usr/include/stdlib.h" 3 4 extern int mkostemps (char *__template, int __suffixlen, int __flags) __asm__ ("" "mkostemps64") __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int mkostemps64 (char *__template, int __suffixlen, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); extern char *canonicalize_file_name (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 734 "/usr/include/stdlib.h" 3 4 extern char *realpath (const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); typedef int (*__compar_fn_t) (const void *, const void *); typedef __compar_fn_t comparison_fn_t; typedef int (*__compar_d_fn_t) (const void *, const void *, void *); extern void *bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); # 1 "/usr/include/bits/stdlib-bsearch.h" 1 3 4 # 19 "/usr/include/bits/stdlib-bsearch.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) void * bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) { size_t __l, __u, __idx; const void *__p; int __comparison; __l = 0; __u = __nmemb; while (__l < __u) { __idx = (__l + __u) / 2; __p = (void *) (((const char *) __base) + (__idx * __size)); __comparison = (*__compar) (__key, __p); if (__comparison < 0) __u = __idx; else if (__comparison > 0) __l = __idx + 1; else return (void *) __p; } return ((void *)0); } # 761 "/usr/include/stdlib.h" 2 3 4 extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); extern void qsort_r (void *__base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void *__arg) __attribute__ ((__nonnull__ (1, 4))); extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int llabs (long long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); # 812 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int mbtowc (wchar_t *__restrict __pwc, const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__)); extern size_t mbstowcs (wchar_t *__restrict __pwcs, const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern size_t wcstombs (char *__restrict __s, const wchar_t *__restrict __pwcs, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 899 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *const *__restrict __tokens, char **__restrict __valuep) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); extern void setkey (const char *__key) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); extern int grantpt (int __fd) __attribute__ ((__nothrow__ , __leaf__)); extern int unlockpt (int __fd) __attribute__ ((__nothrow__ , __leaf__)); extern char *ptsname (int __fd) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int ptsname_r (int __fd, char *__buf, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 1 "/usr/include/bits/stdlib-float.h" 1 3 4 # 24 "/usr/include/bits/stdlib-float.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) double __attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } # 956 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/stdlib.h" 1 3 4 # 23 "/usr/include/bits/stdlib.h" 3 4 extern char *__realpath_chk (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * __attribute__ ((__nothrow__ , __leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) { if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) { if (__builtin_object_size (__resolved, 2 > 1) < 4096) return __realpath_chk_warn (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); } return __realpath_alias (__name, __resolved); } extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __ptsname_r_alias (__fd, __buf, __buflen); } extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int __attribute__ ((__nothrow__ , __leaf__)) wctomb (char *__s, wchar_t __wchar) { if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); return __wctomb_alias (__s, __wchar); } extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__)); extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__ , __leaf__)) ; extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__ , __leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) { if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __mbstowcs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) return __mbstowcs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); } return __mbstowcs_alias (__dst, __src, __len); } extern size_t __wcstombs_chk (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__)); extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__ , __leaf__)) ; extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__ , __leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) { if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); if (__len > __builtin_object_size (__dst, 2 > 1)) return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); } return __wcstombs_alias (__dst, __src, __len); } # 960 "/usr/include/stdlib.h" 2 3 4 # 968 "/usr/include/stdlib.h" 3 4 # 32 "include/libbb.h" 2 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stdarg.h" 1 3 4 # 33 "include/libbb.h" 2 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 147 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 3 4 typedef int ptrdiff_t; # 34 "include/libbb.h" 2 # 1 "/usr/include/string.h" 1 3 4 # 27 "/usr/include/string.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 33 "/usr/include/string.h" 2 3 4 # 44 "/usr/include/string.h" 3 4 extern void *memcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, const void *__src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, const void *__restrict __src, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int memcmp (const void *__s1, const void *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 96 "/usr/include/string.h" 3 4 extern void *memchr (const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 110 "/usr/include/string.h" 3 4 extern void *rawmemchr (const void *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 121 "/usr/include/string.h" 3 4 extern void *memrchr (const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (const char *__s1, const char *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 166 "/usr/include/string.h" 3 4 extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (const char *__string, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 211 "/usr/include/string.h" 3 4 # 236 "/usr/include/string.h" 3 4 extern char *strchr (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 263 "/usr/include/string.h" 3 4 extern char *strrchr (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 277 "/usr/include/string.h" 3 4 extern char *strchrnul (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strcspn (const char *__s, const char *__reject) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (const char *__s, const char *__accept) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 315 "/usr/include/string.h" 3 4 extern char *strpbrk (const char *__s, const char *__accept) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 342 "/usr/include/string.h" 3 4 extern char *strstr (const char *__haystack, const char *__needle) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strtok (char *__restrict __s, const char *__restrict __delim) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); # 373 "/usr/include/string.h" 3 4 extern char *strcasestr (const char *__haystack, const char *__needle) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmem (const void *__haystack, size_t __haystacklen, const void *__needle, size_t __needlelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); extern void *__mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strlen (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (const char *__string, size_t __maxlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__)); # 438 "/usr/include/string.h" 3 4 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void bcopy (const void *__src, void *__dest, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int bcmp (const void *__s1, const void *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 489 "/usr/include/string.h" 3 4 extern char *index (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 517 "/usr/include/string.h" 3 4 extern char *rindex (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int strcasecmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcasecmp_l (const char *__s1, const char *__s2, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int strncasecmp_l (const char *__s1, const char *__s2, size_t __n, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); extern char *strsep (char **__restrict __stringp, const char *__restrict __delim) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int strverscmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strfry (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 604 "/usr/include/string.h" 3 4 extern char *basename (const char *__filename) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 632 "/usr/include/string.h" 3 4 # 1 "/usr/include/bits/string.h" 1 3 4 # 633 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/bits/string2.h" 1 3 4 # 79 "/usr/include/bits/string2.h" 3 4 typedef struct { unsigned char __arr[2]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR2; typedef struct { unsigned char __arr[3]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR3; typedef struct { unsigned char __arr[4]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR4; typedef struct { unsigned char __arr[5]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR5; typedef struct { unsigned char __arr[6]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR6; typedef struct { unsigned char __arr[7]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR7; typedef struct { unsigned char __arr[8]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR8; # 393 "/usr/include/bits/string2.h" 3 4 extern void *__rawmemchr (const void *__s, int __c); # 945 "/usr/include/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (const char *__s, int __reject); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (const char *__s, int __reject) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (const char *__s, int __reject1, int __reject2); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (const char *__s, int __reject1, int __reject2) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (const char *__s, int __reject1, int __reject2, int __reject3); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (const char *__s, int __reject1, int __reject2, int __reject3) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) ++__result; return __result; } # 1021 "/usr/include/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (const char *__s, int __accept); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (const char *__s, int __accept) { size_t __result = 0; while (__s[__result] == __accept) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (const char *__s, int __accept1, int __accept2); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (const char *__s, int __accept1, int __accept2) { size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3) { size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) ++__result; return __result; } # 1097 "/usr/include/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c2 (const char *__s, int __accept1, int __accept2); extern __inline __attribute__ ((__gnu_inline__)) char * __strpbrk_c2 (const char *__s, int __accept1, int __accept2) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3); extern __inline __attribute__ ((__gnu_inline__)) char * __strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } # 1147 "/usr/include/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strtok_r_1c (char *__s, char __sep, char **__nextp); extern __inline __attribute__ ((__gnu_inline__)) char * __strtok_r_1c (char *__s, char __sep, char **__nextp) { char *__result; if (__s == ((void *)0)) __s = *__nextp; while (*__s == __sep) ++__s; __result = ((void *)0); if (*__s != '\0') { __result = __s++; while (*__s != '\0') if (*__s++ == __sep) { __s[-1] = '\0'; break; } } *__nextp = __s; return __result; } # 1179 "/usr/include/bits/string2.h" 3 4 extern char *__strsep_g (char **__stringp, const char *__delim); # 1197 "/usr/include/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_1c (char **__s, char __reject); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_1c (char **__s, char __reject) { char *__retval = *__s; if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0)) *(*__s)++ = '\0'; return __retval; } extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_2c (char **__s, char __reject1, char __reject2); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_2c (char **__s, char __reject1, char __reject2) { char *__retval = *__s; if (__retval != ((void *)0)) { char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) { char *__retval = *__s; if (__retval != ((void *)0)) { char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } # 1278 "/usr/include/bits/string2.h" 3 4 extern char *__strdup (const char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); # 1297 "/usr/include/bits/string2.h" 3 4 extern char *__strndup (const char *__string, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); # 636 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/bits/string3.h" 1 3 4 # 22 "/usr/include/bits/string3.h" 3 4 extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters"))) ; # 47 "/usr/include/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) { return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memmove (void *__dest, const void *__src, size_t __len) { return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) { return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } # 75 "/usr/include/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memset (void *__dest, int __ch, size_t __len) { if (__builtin_constant_p (__len) && __len == 0 && (!__builtin_constant_p (__ch) || __ch != 0)) { __warn_memset_zero_len (); return __dest; } return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void __attribute__ ((__nothrow__ , __leaf__)) bcopy (const void *__src, void *__dest, size_t __len) { (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void __attribute__ ((__nothrow__ , __leaf__)) bzero (void *__dest, size_t __len) { (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) { return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) { return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) { return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); } extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, size_t __destlen) __attribute__ ((__nothrow__ , __leaf__)); extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__ , __leaf__)) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) { if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1))) return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); return __stpncpy_alias (__dest, __src, __n); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) { return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) { return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); } # 641 "/usr/include/string.h" 2 3 4 # 35 "include/libbb.h" 2 # 1 "/usr/include/libgen.h" 1 3 4 # 23 "/usr/include/libgen.h" 3 4 extern char *dirname (char *__path) __attribute__ ((__nothrow__ , __leaf__)); extern char *__xpg_basename (char *__path) __attribute__ ((__nothrow__ , __leaf__)); # 38 "include/libbb.h" 2 # 1 "/usr/include/sys/poll.h" 1 3 4 # 25 "/usr/include/sys/poll.h" 3 4 # 1 "/usr/include/bits/poll.h" 1 3 4 # 26 "/usr/include/sys/poll.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 29 "/usr/include/sys/poll.h" 2 3 4 # 1 "/usr/include/time.h" 1 3 4 # 32 "/usr/include/sys/poll.h" 2 3 4 typedef unsigned long int nfds_t; struct pollfd { int fd; short int events; short int revents; }; # 57 "/usr/include/sys/poll.h" 3 4 extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout); # 66 "/usr/include/sys/poll.h" 3 4 extern int ppoll (struct pollfd *__fds, nfds_t __nfds, const struct timespec *__timeout, const __sigset_t *__ss); # 1 "/usr/include/bits/poll2.h" 1 3 4 # 24 "/usr/include/bits/poll2.h" 3 4 extern int __poll_alias (struct pollfd *__fds, nfds_t __nfds, int __timeout) __asm__ ("" "poll") ; extern int __poll_chk (struct pollfd *__fds, nfds_t __nfds, int __timeout, unsigned int __fdslen); extern int __poll_chk_warn (struct pollfd *__fds, nfds_t __nfds, int __timeout, unsigned int __fdslen) __asm__ ("" "__poll_chk") __attribute__((__warning__ ("poll called with fds buffer too small file nfds entries"))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout) { if (__builtin_object_size (__fds, 2 > 1) != (unsigned int) -1) { if (! __builtin_constant_p (__nfds)) return __poll_chk (__fds, __nfds, __timeout, __builtin_object_size (__fds, 2 > 1)); else if (__builtin_object_size (__fds, 2 > 1) / sizeof (*__fds) < __nfds) return __poll_chk_warn (__fds, __nfds, __timeout, __builtin_object_size (__fds, 2 > 1)); } return __poll_alias (__fds, __nfds, __timeout); } extern int __ppoll_alias (struct pollfd *__fds, nfds_t __nfds, const struct timespec *__timeout, const __sigset_t *__ss) __asm__ ("" "ppoll") ; extern int __ppoll_chk (struct pollfd *__fds, nfds_t __nfds, const struct timespec *__timeout, const __sigset_t *__ss, unsigned int __fdslen); extern int __ppoll_chk_warn (struct pollfd *__fds, nfds_t __nfds, const struct timespec *__timeout, const __sigset_t *__ss, unsigned int __fdslen) __asm__ ("" "__ppoll_chk") __attribute__((__warning__ ("ppoll called with fds buffer too small file nfds entries"))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int ppoll (struct pollfd *__fds, nfds_t __nfds, const struct timespec *__timeout, const __sigset_t *__ss) { if (__builtin_object_size (__fds, 2 > 1) != (unsigned int) -1) { if (! __builtin_constant_p (__nfds)) return __ppoll_chk (__fds, __nfds, __timeout, __ss, __builtin_object_size (__fds, 2 > 1)); else if (__builtin_object_size (__fds, 2 > 1) / sizeof (*__fds) < __nfds) return __ppoll_chk_warn (__fds, __nfds, __timeout, __ss, __builtin_object_size (__fds, 2 > 1)); } return __ppoll_alias (__fds, __nfds, __timeout, __ss); } # 77 "/usr/include/sys/poll.h" 2 3 4 # 41 "include/libbb.h" 2 # 1 "/usr/include/sys/ioctl.h" 1 3 4 # 23 "/usr/include/sys/ioctl.h" 3 4 # 1 "/usr/include/bits/ioctls.h" 1 3 4 # 23 "/usr/include/bits/ioctls.h" 3 4 # 1 "/usr/include/asm/ioctls.h" 1 3 4 # 1 "/usr/include/asm-generic/ioctls.h" 1 3 4 # 1 "/usr/include/linux/ioctl.h" 1 3 4 # 1 "/usr/include/asm/ioctl.h" 1 3 4 # 1 "/usr/include/asm-generic/ioctl.h" 1 3 4 # 1 "/usr/include/asm/ioctl.h" 2 3 4 # 5 "/usr/include/linux/ioctl.h" 2 3 4 # 5 "/usr/include/asm-generic/ioctls.h" 2 3 4 # 7 "/usr/include/asm/ioctls.h" 2 3 4 # 24 "/usr/include/bits/ioctls.h" 2 3 4 # 27 "/usr/include/sys/ioctl.h" 2 3 4 # 1 "/usr/include/bits/ioctl-types.h" 1 3 4 # 27 "/usr/include/bits/ioctl-types.h" 3 4 struct winsize { unsigned short int ws_row; unsigned short int ws_col; unsigned short int ws_xpixel; unsigned short int ws_ypixel; }; struct termio { unsigned short int c_iflag; unsigned short int c_oflag; unsigned short int c_cflag; unsigned short int c_lflag; unsigned char c_line; unsigned char c_cc[8]; }; # 30 "/usr/include/sys/ioctl.h" 2 3 4 # 1 "/usr/include/sys/ttydefaults.h" 1 3 4 # 37 "/usr/include/sys/ioctl.h" 2 3 4 extern int ioctl (int __fd, unsigned long int __request, ...) __attribute__ ((__nothrow__ , __leaf__)); # 42 "include/libbb.h" 2 # 1 "/usr/include/sys/mman.h" 1 3 4 # 25 "/usr/include/sys/mman.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 26 "/usr/include/sys/mman.h" 2 3 4 # 41 "/usr/include/sys/mman.h" 3 4 # 1 "/usr/include/bits/mman.h" 1 3 4 # 40 "/usr/include/bits/mman.h" 3 4 # 1 "/usr/include/bits/mman-linux.h" 1 3 4 # 40 "/usr/include/bits/mman.h" 2 3 4 # 42 "/usr/include/sys/mman.h" 2 3 4 # 61 "/usr/include/sys/mman.h" 3 4 extern void * mmap (void *__addr, size_t __len, int __prot, int __flags, int __fd, __off64_t __offset) __asm__ ("" "mmap64") __attribute__ ((__nothrow__ , __leaf__)) ; extern void *mmap64 (void *__addr, size_t __len, int __prot, int __flags, int __fd, __off64_t __offset) __attribute__ ((__nothrow__ , __leaf__)); extern int munmap (void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern int mprotect (void *__addr, size_t __len, int __prot) __attribute__ ((__nothrow__ , __leaf__)); extern int msync (void *__addr, size_t __len, int __flags); extern int madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ , __leaf__)); extern int posix_madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ , __leaf__)); extern int mlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern int munlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern int mlockall (int __flags) __attribute__ ((__nothrow__ , __leaf__)); extern int munlockall (void) __attribute__ ((__nothrow__ , __leaf__)); extern int mincore (void *__start, size_t __len, unsigned char *__vec) __attribute__ ((__nothrow__ , __leaf__)); # 133 "/usr/include/sys/mman.h" 3 4 extern void *mremap (void *__addr, size_t __old_len, size_t __new_len, int __flags, ...) __attribute__ ((__nothrow__ , __leaf__)); extern int remap_file_pages (void *__start, size_t __size, int __prot, size_t __pgoff, int __flags) __attribute__ ((__nothrow__ , __leaf__)); extern int shm_open (const char *__name, int __oflag, mode_t __mode); extern int shm_unlink (const char *__name); # 43 "include/libbb.h" 2 # 1 "/usr/include/sys/stat.h" 1 3 4 # 37 "/usr/include/sys/stat.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 38 "/usr/include/sys/stat.h" 2 3 4 # 103 "/usr/include/sys/stat.h" 3 4 # 1 "/usr/include/bits/stat.h" 1 3 4 # 106 "/usr/include/sys/stat.h" 2 3 4 # 217 "/usr/include/sys/stat.h" 3 4 extern int stat (const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "stat64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int fstat (int __fd, struct stat *__buf) __asm__ ("" "fstat64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int stat64 (const char *__restrict __file, struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 243 "/usr/include/sys/stat.h" 3 4 extern int fstatat (int __fd, const char *__restrict __file, struct stat *__restrict __buf, int __flag) __asm__ ("" "fstatat64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); extern int fstatat64 (int __fd, const char *__restrict __file, struct stat64 *__restrict __buf, int __flag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); # 267 "/usr/include/sys/stat.h" 3 4 extern int lstat (const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "lstat64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int lstat64 (const char *__restrict __file, struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int chmod (const char *__file, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int lchmod (const char *__file, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)); extern int fchmodat (int __fd, const char *__file, __mode_t __mode, int __flag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__)); extern __mode_t getumask (void) __attribute__ ((__nothrow__ , __leaf__)); extern int mkdir (const char *__path, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int mkdirat (int __fd, const char *__path, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int mknodat (int __fd, const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int mkfifo (const char *__path, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int mkfifoat (int __fd, const char *__path, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int utimensat (int __fd, const char *__path, const struct timespec __times[2], int __flags) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__)); # 410 "/usr/include/sys/stat.h" 3 4 extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __asm__ ("" "__fxstat64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))); extern int __xstat (int __ver, const char *__filename, struct stat *__stat_buf) __asm__ ("" "__xstat64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); extern int __lxstat (int __ver, const char *__filename, struct stat *__stat_buf) __asm__ ("" "__lxstat64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); extern int __fxstatat (int __ver, int __fildes, const char *__filename, struct stat *__stat_buf, int __flag) __asm__ ("" "__fxstatat64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))); # 432 "/usr/include/sys/stat.h" 3 4 extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))); extern int __xstat64 (int __ver, const char *__filename, struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); extern int __lxstat64 (int __ver, const char *__filename, struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); extern int __fxstatat64 (int __ver, int __fildes, const char *__filename, struct stat64 *__stat_buf, int __flag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))); extern int __xmknod (int __ver, const char *__path, __mode_t __mode, __dev_t *__dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); extern int __xmknodat (int __ver, int __fd, const char *__path, __mode_t __mode, __dev_t *__dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 5))); extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) stat (const char *__path, struct stat *__statbuf) { return __xstat (3, __path, __statbuf); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) lstat (const char *__path, struct stat *__statbuf) { return __lxstat (3, __path, __statbuf); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) fstat (int __fd, struct stat *__statbuf) { return __fxstat (3, __fd, __statbuf); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) fstatat (int __fd, const char *__filename, struct stat *__statbuf, int __flag) { return __fxstatat (3, __fd, __filename, __statbuf, __flag); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) mknod (const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknod (1, __path, __mode, &__dev); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) mknodat (int __fd, const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknodat (1, __fd, __path, __mode, &__dev); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) stat64 (const char *__path, struct stat64 *__statbuf) { return __xstat64 (3, __path, __statbuf); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) lstat64 (const char *__path, struct stat64 *__statbuf) { return __lxstat64 (3, __path, __statbuf); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) fstat64 (int __fd, struct stat64 *__statbuf) { return __fxstat64 (3, __fd, __statbuf); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) fstatat64 (int __fd, const char *__filename, struct stat64 *__statbuf, int __flag) { return __fxstatat64 (3, __fd, __filename, __statbuf, __flag); } # 45 "include/libbb.h" 2 # 1 "/usr/include/sys/time.h" 1 3 4 # 25 "/usr/include/sys/time.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 26 "/usr/include/sys/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 28 "/usr/include/sys/time.h" 2 3 4 # 37 "/usr/include/sys/time.h" 3 4 # 55 "/usr/include/sys/time.h" 3 4 struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct timezone *__restrict __timezone_ptr_t; # 71 "/usr/include/sys/time.h" 3 4 extern int gettimeofday (struct timeval *__restrict __tv, __timezone_ptr_t __tz) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int settimeofday (const struct timeval *__tv, const struct timezone *__tz) __attribute__ ((__nothrow__ , __leaf__)); extern int adjtime (const struct timeval *__delta, struct timeval *__olddelta) __attribute__ ((__nothrow__ , __leaf__)); enum __itimer_which { ITIMER_REAL = 0, ITIMER_VIRTUAL = 1, ITIMER_PROF = 2 }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; typedef enum __itimer_which __itimer_which_t; extern int getitimer (__itimer_which_t __which, struct itimerval *__value) __attribute__ ((__nothrow__ , __leaf__)); extern int setitimer (__itimer_which_t __which, const struct itimerval *__restrict __new, struct itimerval *__restrict __old) __attribute__ ((__nothrow__ , __leaf__)); extern int utimes (const char *__file, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int lutimes (const char *__file, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int futimes (int __fd, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__)); extern int futimesat (int __fd, const char *__file, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__)); # 189 "/usr/include/sys/time.h" 3 4 # 46 "include/libbb.h" 2 # 1 "/usr/include/sys/wait.h" 1 3 4 # 27 "/usr/include/sys/wait.h" 3 4 # 99 "/usr/include/sys/wait.h" 3 4 typedef enum { P_ALL, P_PID, P_PGID } idtype_t; # 113 "/usr/include/sys/wait.h" 3 4 extern __pid_t wait (__WAIT_STATUS __stat_loc); # 136 "/usr/include/sys/wait.h" 3 4 extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options); # 146 "/usr/include/sys/wait.h" 3 4 # 1 "/usr/include/bits/siginfo.h" 1 3 4 # 24 "/usr/include/bits/siginfo.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 25 "/usr/include/bits/siginfo.h" 2 3 4 # 147 "/usr/include/sys/wait.h" 2 3 4 # 159 "/usr/include/sys/wait.h" 3 4 extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop, int __options); struct rusage; extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options, struct rusage * __usage) __attribute__ ((__nothrow__)); extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options, struct rusage *__usage) __attribute__ ((__nothrow__)); # 51 "include/libbb.h" 2 # 1 "/usr/include/termios.h" 1 3 4 # 35 "/usr/include/termios.h" 3 4 # 1 "/usr/include/bits/termios.h" 1 3 4 # 23 "/usr/include/bits/termios.h" 3 4 typedef unsigned char cc_t; typedef unsigned int speed_t; typedef unsigned int tcflag_t; struct termios { tcflag_t c_iflag; tcflag_t c_oflag; tcflag_t c_cflag; tcflag_t c_lflag; cc_t c_line; cc_t c_cc[32]; speed_t c_ispeed; speed_t c_ospeed; }; # 40 "/usr/include/termios.h" 2 3 4 # 48 "/usr/include/termios.h" 3 4 extern speed_t cfgetospeed (const struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__)); extern speed_t cfgetispeed (const struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__)); extern int cfsetospeed (struct termios *__termios_p, speed_t __speed) __attribute__ ((__nothrow__ , __leaf__)); extern int cfsetispeed (struct termios *__termios_p, speed_t __speed) __attribute__ ((__nothrow__ , __leaf__)); extern int cfsetspeed (struct termios *__termios_p, speed_t __speed) __attribute__ ((__nothrow__ , __leaf__)); extern int tcgetattr (int __fd, struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__)); extern int tcsetattr (int __fd, int __optional_actions, const struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__)); extern void cfmakeraw (struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__)); extern int tcsendbreak (int __fd, int __duration) __attribute__ ((__nothrow__ , __leaf__)); extern int tcdrain (int __fd); extern int tcflush (int __fd, int __queue_selector) __attribute__ ((__nothrow__ , __leaf__)); extern int tcflow (int __fd, int __action) __attribute__ ((__nothrow__ , __leaf__)); extern __pid_t tcgetsid (int __fd) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/include/sys/ttydefaults.h" 1 3 4 # 105 "/usr/include/termios.h" 2 3 4 # 52 "include/libbb.h" 2 # 1 "/usr/include/time.h" 1 3 4 # 29 "/usr/include/time.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 38 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 86 "/usr/include/bits/time.h" 3 4 # 1 "/usr/include/bits/timex.h" 1 3 4 # 25 "/usr/include/bits/timex.h" 3 4 struct timex { unsigned int modes; __syscall_slong_t offset; __syscall_slong_t freq; __syscall_slong_t maxerror; __syscall_slong_t esterror; int status; __syscall_slong_t constant; __syscall_slong_t precision; __syscall_slong_t tolerance; struct timeval time; __syscall_slong_t tick; __syscall_slong_t ppsfreq; __syscall_slong_t jitter; int shift; __syscall_slong_t stabil; __syscall_slong_t jitcnt; __syscall_slong_t calcnt; __syscall_slong_t errcnt; __syscall_slong_t stbcnt; int tai; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; }; # 87 "/usr/include/bits/time.h" 2 3 4 extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __attribute__ ((__nothrow__ , __leaf__)); # 42 "/usr/include/time.h" 2 3 4 # 131 "/usr/include/time.h" 3 4 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; const char *tm_zone; }; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct sigevent; # 186 "/usr/include/time.h" 3 4 extern clock_t clock (void) __attribute__ ((__nothrow__ , __leaf__)); extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); extern double difftime (time_t __time1, time_t __time0) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); extern size_t strftime (char *__restrict __s, size_t __maxsize, const char *__restrict __format, const struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); extern char *strptime (const char *__restrict __s, const char *__restrict __fmt, struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); extern size_t strftime_l (char *__restrict __s, size_t __maxsize, const char *__restrict __format, const struct tm *__restrict __tp, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)); extern char *strptime_l (const char *__restrict __s, const char *__restrict __fmt, struct tm *__tp, __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)); extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); extern struct tm *gmtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); extern struct tm *localtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); extern char *asctime_r (const struct tm *__restrict __tp, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); extern char *ctime_r (const time_t *__restrict __timer, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); extern char *__tzname[2]; extern int __daylight; extern long int __timezone; extern char *tzname[2]; extern void tzset (void) __attribute__ ((__nothrow__ , __leaf__)); extern int daylight; extern long int timezone; extern int stime (const time_t *__when) __attribute__ ((__nothrow__ , __leaf__)); # 319 "/usr/include/time.h" 3 4 extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); extern int dysize (int __year) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 334 "/usr/include/time.h" 3 4 extern int nanosleep (const struct timespec *__requested_time, struct timespec *__remaining); extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ , __leaf__)); extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__)); extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__)); extern int clock_nanosleep (clockid_t __clock_id, int __flags, const struct timespec *__req, struct timespec *__rem); extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ , __leaf__)); extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __attribute__ ((__nothrow__ , __leaf__)); extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__)); extern int timer_settime (timer_t __timerid, int __flags, const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ , __leaf__)); extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) __attribute__ ((__nothrow__ , __leaf__)); extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__)); extern int timespec_get (struct timespec *__ts, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 403 "/usr/include/time.h" 3 4 extern int getdate_err; # 412 "/usr/include/time.h" 3 4 extern struct tm *getdate (const char *__string); # 426 "/usr/include/time.h" 3 4 extern int getdate_r (const char *__restrict __string, struct tm *__restrict __resbufp); # 53 "include/libbb.h" 2 # 1 "/usr/include/sys/param.h" 1 3 4 # 23 "/usr/include/sys/param.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 24 "/usr/include/sys/param.h" 2 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include-fixed/limits.h" 1 3 4 # 27 "/usr/include/sys/param.h" 2 3 4 # 1 "/usr/include/bits/param.h" 1 3 4 # 28 "/usr/include/bits/param.h" 3 4 # 1 "/usr/include/linux/param.h" 1 3 4 # 1 "/usr/include/asm/param.h" 1 3 4 # 1 "/usr/include/asm-generic/param.h" 1 3 4 # 1 "/usr/include/asm/param.h" 2 3 4 # 5 "/usr/include/linux/param.h" 2 3 4 # 29 "/usr/include/bits/param.h" 2 3 4 # 32 "/usr/include/sys/param.h" 2 3 4 # 54 "include/libbb.h" 2 # 1 "/usr/include/pwd.h" 1 3 4 # 27 "/usr/include/pwd.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 33 "/usr/include/pwd.h" 2 3 4 # 49 "/usr/include/pwd.h" 3 4 struct passwd { char *pw_name; char *pw_passwd; __uid_t pw_uid; __gid_t pw_gid; char *pw_gecos; char *pw_dir; char *pw_shell; }; # 72 "/usr/include/pwd.h" 3 4 extern void setpwent (void); extern void endpwent (void); extern struct passwd *getpwent (void); # 94 "/usr/include/pwd.h" 3 4 extern struct passwd *fgetpwent (FILE *__stream); extern int putpwent (const struct passwd *__restrict __p, FILE *__restrict __f); extern struct passwd *getpwuid (__uid_t __uid); extern struct passwd *getpwnam (const char *__name); # 139 "/usr/include/pwd.h" 3 4 extern int getpwent_r (struct passwd *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct passwd **__restrict __result); extern int getpwuid_r (__uid_t __uid, struct passwd *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct passwd **__restrict __result); extern int getpwnam_r (const char *__restrict __name, struct passwd *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct passwd **__restrict __result); # 163 "/usr/include/pwd.h" 3 4 extern int fgetpwent_r (FILE *__restrict __stream, struct passwd *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct passwd **__restrict __result); # 180 "/usr/include/pwd.h" 3 4 extern int getpw (__uid_t __uid, char *__buffer); # 55 "include/libbb.h" 2 # 1 "/usr/include/grp.h" 1 3 4 # 27 "/usr/include/grp.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 33 "/usr/include/grp.h" 2 3 4 # 42 "/usr/include/grp.h" 3 4 struct group { char *gr_name; char *gr_passwd; __gid_t gr_gid; char **gr_mem; }; # 62 "/usr/include/grp.h" 3 4 extern void setgrent (void); # 71 "/usr/include/grp.h" 3 4 extern void endgrent (void); extern struct group *getgrent (void); # 87 "/usr/include/grp.h" 3 4 extern struct group *fgetgrent (FILE *__stream); # 97 "/usr/include/grp.h" 3 4 extern int putgrent (const struct group *__restrict __p, FILE *__restrict __f); extern struct group *getgrgid (__gid_t __gid); extern struct group *getgrnam (const char *__name); # 135 "/usr/include/grp.h" 3 4 extern int getgrent_r (struct group *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct group **__restrict __result); extern int getgrgid_r (__gid_t __gid, struct group *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct group **__restrict __result); extern int getgrnam_r (const char *__restrict __name, struct group *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct group **__restrict __result); # 165 "/usr/include/grp.h" 3 4 extern int fgetgrent_r (FILE *__restrict __stream, struct group *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct group **__restrict __result); # 177 "/usr/include/grp.h" 3 4 # 1 "/usr/lib/gcc/armv6j-hardfloat-linux-gnueabi/4.8.3/include/stddef.h" 1 3 4 # 178 "/usr/include/grp.h" 2 3 4 extern int setgroups (size_t __n, const __gid_t *__groups) __attribute__ ((__nothrow__ , __leaf__)); # 190 "/usr/include/grp.h" 3 4 extern int getgrouplist (const char *__user, __gid_t __group, __gid_t *__groups, int *__ngroups); # 201 "/usr/include/grp.h" 3 4 extern int initgroups (const char *__user, __gid_t __group); # 56 "include/libbb.h" 2 # 69 "include/libbb.h" # 1 "/usr/include/mntent.h" 1 3 4 # 25 "/usr/include/mntent.h" 3 4 # 1 "/usr/include/paths.h" 1 3 4 # 26 "/usr/include/mntent.h" 2 3 4 # 50 "/usr/include/mntent.h" 3 4 struct mntent { char *mnt_fsname; char *mnt_dir; char *mnt_type; char *mnt_opts; int mnt_freq; int mnt_passno; }; extern FILE *setmntent (const char *__file, const char *__mode) __attribute__ ((__nothrow__ , __leaf__)); extern struct mntent *getmntent (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern struct mntent *getmntent_r (FILE *__restrict __stream, struct mntent *__restrict __result, char *__restrict __buffer, int __bufsize) __attribute__ ((__nothrow__ , __leaf__)); extern int addmntent (FILE *__restrict __stream, const struct mntent *__restrict __mnt) __attribute__ ((__nothrow__ , __leaf__)); extern int endmntent (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern char *hasmntopt (const struct mntent *__mnt, const char *__opt) __attribute__ ((__nothrow__ , __leaf__)); # 70 "include/libbb.h" 2 # 1 "/usr/include/sys/statfs.h" 1 3 4 # 25 "/usr/include/sys/statfs.h" 3 4 # 1 "/usr/include/bits/statfs.h" 1 3 4 # 24 "/usr/include/bits/statfs.h" 3 4 struct statfs { __fsword_t f_type; __fsword_t f_bsize; __fsblkcnt64_t f_blocks; __fsblkcnt64_t f_bfree; __fsblkcnt64_t f_bavail; __fsfilcnt64_t f_files; __fsfilcnt64_t f_ffree; __fsid_t f_fsid; __fsword_t f_namelen; __fsword_t f_frsize; __fsword_t f_flags; __fsword_t f_spare[4]; }; struct statfs64 { __fsword_t f_type; __fsword_t f_bsize; __fsblkcnt64_t f_blocks; __fsblkcnt64_t f_bfree; __fsblkcnt64_t f_bavail; __fsfilcnt64_t f_files; __fsfilcnt64_t f_ffree; __fsid_t f_fsid; __fsword_t f_namelen; __fsword_t f_frsize; __fsword_t f_flags; __fsword_t f_spare[4]; }; # 26 "/usr/include/sys/statfs.h" 2 3 4 extern int statfs (const char *__file, struct statfs *__buf) __asm__ ("" "statfs64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int statfs64 (const char *__file, struct statfs64 *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); # 54 "/usr/include/sys/statfs.h" 3 4 extern int fstatfs (int __fildes, struct statfs *__buf) __asm__ ("" "fstatfs64") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int fstatfs64 (int __fildes, struct statfs64 *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 73 "include/libbb.h" 2 # 87 "include/libbb.h" # 1 "/usr/include/utmp.h" 1 3 4 # 26 "/usr/include/utmp.h" 3 4 # 1 "/usr/include/bits/utmp.h" 1 3 4 # 26 "/usr/include/bits/utmp.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 27 "/usr/include/bits/utmp.h" 2 3 4 # 36 "/usr/include/bits/utmp.h" 3 4 struct lastlog { __time_t ll_time; char ll_line[32]; char ll_host[256]; }; struct exit_status { short int e_termination; short int e_exit; }; struct utmp { short int ut_type; pid_t ut_pid; char ut_line[32]; char ut_id[4]; char ut_user[32]; char ut_host[256]; struct exit_status ut_exit; # 79 "/usr/include/bits/utmp.h" 3 4 long int ut_session; struct timeval ut_tv; int32_t ut_addr_v6[4]; char __glibc_reserved[20]; }; # 30 "/usr/include/utmp.h" 2 3 4 # 41 "/usr/include/utmp.h" 3 4 extern int login_tty (int __fd) __attribute__ ((__nothrow__ , __leaf__)); extern void login (const struct utmp *__entry) __attribute__ ((__nothrow__ , __leaf__)); extern int logout (const char *__ut_line) __attribute__ ((__nothrow__ , __leaf__)); extern void logwtmp (const char *__ut_line, const char *__ut_name, const char *__ut_host) __attribute__ ((__nothrow__ , __leaf__)); extern void updwtmp (const char *__wtmp_file, const struct utmp *__utmp) __attribute__ ((__nothrow__ , __leaf__)); extern int utmpname (const char *__file) __attribute__ ((__nothrow__ , __leaf__)); extern struct utmp *getutent (void) __attribute__ ((__nothrow__ , __leaf__)); extern void setutent (void) __attribute__ ((__nothrow__ , __leaf__)); extern void endutent (void) __attribute__ ((__nothrow__ , __leaf__)); extern struct utmp *getutid (const struct utmp *__id) __attribute__ ((__nothrow__ , __leaf__)); extern struct utmp *getutline (const struct utmp *__line) __attribute__ ((__nothrow__ , __leaf__)); extern struct utmp *pututline (const struct utmp *__utmp_ptr) __attribute__ ((__nothrow__ , __leaf__)); extern int getutent_r (struct utmp *__buffer, struct utmp **__result) __attribute__ ((__nothrow__ , __leaf__)); extern int getutid_r (const struct utmp *__id, struct utmp *__buffer, struct utmp **__result) __attribute__ ((__nothrow__ , __leaf__)); extern int getutline_r (const struct utmp *__line, struct utmp *__buffer, struct utmp **__result) __attribute__ ((__nothrow__ , __leaf__)); # 88 "include/libbb.h" 2 # 116 "include/libbb.h" # 1 "/usr/include/arpa/inet.h" 1 3 4 # 30 "/usr/include/arpa/inet.h" 3 4 extern in_addr_t inet_addr (const char *__cp) __attribute__ ((__nothrow__ , __leaf__)); extern in_addr_t inet_lnaof (struct in_addr __in) __attribute__ ((__nothrow__ , __leaf__)); extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host) __attribute__ ((__nothrow__ , __leaf__)); extern in_addr_t inet_netof (struct in_addr __in) __attribute__ ((__nothrow__ , __leaf__)); extern in_addr_t inet_network (const char *__cp) __attribute__ ((__nothrow__ , __leaf__)); extern char *inet_ntoa (struct in_addr __in) __attribute__ ((__nothrow__ , __leaf__)); extern int inet_pton (int __af, const char *__restrict __cp, void *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); extern const char *inet_ntop (int __af, const void *__restrict __cp, char *__restrict __buf, socklen_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern int inet_aton (const char *__cp, struct in_addr *__inp) __attribute__ ((__nothrow__ , __leaf__)); extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern char *inet_net_ntop (int __af, const void *__cp, int __bits, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern int inet_net_pton (int __af, const char *__cp, void *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); extern unsigned int inet_nsap_addr (const char *__cp, unsigned char *__buf, int __len) __attribute__ ((__nothrow__ , __leaf__)); extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp, char *__buf) __attribute__ ((__nothrow__ , __leaf__)); # 117 "include/libbb.h" 2 # 139 "include/libbb.h" extern char **environ; int klogctl(int type, char *b, int len); # 179 "include/libbb.h" # 179 "include/libbb.h" #pragma GCC visibility push(hidden) # 179 "include/libbb.h" # 1 "include/pwd_.h" 1 # 27 "include/pwd_.h" # 27 "include/pwd_.h" #pragma GCC visibility push(hidden) # 27 "include/pwd_.h" # 52 "include/pwd_.h" extern void bb_internal_setpwent(void); extern void bb_internal_endpwent(void); # 70 "include/pwd_.h" extern struct passwd *bb_internal_getpwuid(uid_t __uid); extern struct passwd *bb_internal_getpwnam(const char *__name); # 83 "include/pwd_.h" extern int bb_internal_getpwent_r(struct passwd *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct passwd **__restrict __result); extern int bb_internal_getpwuid_r(uid_t __uid, struct passwd *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct passwd **__restrict __result); extern int bb_internal_getpwnam_r(const char *__restrict __name, struct passwd *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct passwd **__restrict __result); extern int bb_internal_fgetpwent_r(FILE *__restrict __stream, struct passwd *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct passwd **__restrict __result); # 104 "include/pwd_.h" #pragma GCC visibility pop # 104 "include/pwd_.h" # 184 "include/libbb.h" 2 # 1 "include/grp_.h" 1 # 26 "include/grp_.h" # 26 "include/grp_.h" #pragma GCC visibility push(hidden) # 26 "include/grp_.h" # 53 "include/grp_.h" extern void bb_internal_setgrent(void); extern void bb_internal_endgrent(void); # 71 "include/grp_.h" extern struct group *bb_internal_getgrgid(gid_t __gid); extern struct group *bb_internal_getgrnam(const char *__name); # 84 "include/grp_.h" extern int bb_internal_getgrent_r(struct group *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct group **__restrict __result); extern int bb_internal_getgrgid_r(gid_t __gid, struct group *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct group **__restrict __result); extern int bb_internal_getgrnam_r(const char *__restrict __name, struct group *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct group **__restrict __result); extern int bb_internal_fgetgrent_r(FILE *__restrict __stream, struct group *__restrict __resultbuf, char *__restrict __buffer, size_t __buflen, struct group **__restrict __result); extern int bb_internal_getgrouplist(const char *__user, gid_t __group, gid_t *__groups, int *__ngroups); extern int bb_internal_initgroups(const char *__user, gid_t __group); # 117 "include/grp_.h" #pragma GCC visibility pop # 117 "include/grp_.h" # 185 "include/libbb.h" 2 # 1 "include/shadow_.h" 1 # 25 "include/shadow_.h" # 25 "include/shadow_.h" #pragma GCC visibility push(hidden) # 25 "include/shadow_.h" struct spwd { char *sp_namp; char *sp_pwdp; long sp_lstchg; long sp_min; long sp_max; long sp_warn; long sp_inact; long sp_expire; unsigned long sp_flag; }; # 85 "include/shadow_.h" extern int bb_internal_getspnam_r(const char *__name, struct spwd *__result_buf, char *__buffer, size_t __buflen, struct spwd **__result); # 104 "include/shadow_.h" # 104 "include/shadow_.h" #pragma GCC visibility pop # 104 "include/shadow_.h" # 189 "include/libbb.h" 2 # 226 "include/libbb.h" typedef unsigned long long uoff_t; # 255 "include/libbb.h" struct BUG_off_t_size_is_misdetected { char BUG_off_t_size_is_misdetected[sizeof(off_t) == sizeof(uoff_t) ? 1 : -1]; }; # 296 "include/libbb.h" extern int *const bb_errno; uint64_t bb_bswap_64(uint64_t x) ; unsigned long long monotonic_ns(void) ; unsigned long long monotonic_us(void) ; unsigned long long monotonic_ms(void) ; unsigned monotonic_sec(void) ; extern void chomp(char *s) ; extern void trim(char *s) ; extern char *skip_whitespace(const char *) ; extern char *skip_non_whitespace(const char *) ; extern char *skip_dev_pfx(const char *tty_name) ; extern char *strrstr(const char *haystack, const char *needle) ; extern const char *bb_mode_string(mode_t mode) ; extern int is_directory(const char *name, int followLinks) ; enum { FILEUTILS_PRESERVE_STATUS = 1 << 0, FILEUTILS_DEREFERENCE = 1 << 1, FILEUTILS_RECUR = 1 << 2, FILEUTILS_FORCE = 1 << 3, FILEUTILS_INTERACTIVE = 1 << 4, FILEUTILS_MAKE_HARDLINK = 1 << 5, FILEUTILS_MAKE_SOFTLINK = 1 << 6, FILEUTILS_DEREF_SOFTLINK = 1 << 7, FILEUTILS_DEREFERENCE_L0 = 1 << 8, FILEUTILS_IGNORE_CHMOD_ERR = 1 << 11, }; extern int remove_file(const char *path, int flags) ; extern int copy_file(const char *source, const char *dest, int flags) ; enum { ACTION_RECURSE = (1 << 0), ACTION_FOLLOWLINKS = (1 << 1), ACTION_FOLLOWLINKS_L0 = (1 << 2), ACTION_DEPTHFIRST = (1 << 3), ACTION_QUIET = (1 << 5), ACTION_DANGLING_OK = (1 << 6), }; typedef uint8_t recurse_flags_t; extern int recursive_action(const char *fileName, unsigned flags, int (*fileAction)(const char *fileName, struct stat* statbuf, void* userData, int depth), int (*dirAction)(const char *fileName, struct stat* statbuf, void* userData, int depth), void* userData, unsigned depth) ; extern int device_open(const char *device, int mode) ; enum { GETPTY_BUFSIZE = 16 }; extern int xgetpty(char *line) ; extern int get_console_fd_or_die(void) ; extern void console_make_active(int fd, const int vt_num) ; extern char *find_block_device(const char *path) ; extern off_t bb_copyfd_eof(int fd1, int fd2) ; extern off_t bb_copyfd_size(int fd1, int fd2, off_t size) ; extern void bb_copyfd_exact_size(int fd1, int fd2, off_t size) ; extern void complain_copyfd_and_die(off_t sz) __attribute__ ((__noreturn__)) ; extern char bb_process_escape_sequence(const char **ptr) ; char* strcpy_and_process_escape_sequences(char *dst, const char *src) ; char *bb_get_last_path_component_strip(char *path) ; char *bb_get_last_path_component_nostrip(const char *path) ; const char *bb_basename(const char *name) ; char *last_char_is(const char *s, int c) ; void ndelay_on(int fd) ; void ndelay_off(int fd) ; void close_on_exec_on(int fd) ; void xdup2(int, int) ; void xmove_fd(int, int) ; DIR *xopendir(const char *path) ; DIR *warn_opendir(const char *path) ; char *xmalloc_realpath(const char *path) __attribute__ ((malloc)); char *xmalloc_readlink(const char *path) __attribute__ ((malloc)); char *xmalloc_readlink_or_warn(const char *path) __attribute__ ((malloc)); char *xrealloc_getcwd_or_warn(char *cwd) ; char *xmalloc_follow_symlinks(const char *path) __attribute__ ((malloc)); enum { # 424 "include/libbb.h" BB_FATAL_SIGS = (int)(0 + (1LL << 1) + (1LL << 2) + (1LL << 15) + (1LL << 13) + (1LL << 3) + (1LL << 6) + (1LL << 14) + (1LL << 26) + (1LL << 24) + (1LL << 25) + (1LL << 10) + (1LL << 12) + 0), }; void bb_signals(int sigs, void (*f)(int)) ; void bb_signals_recursive_norestart(int sigs, void (*f)(int)) ; void signal_no_SA_RESTART_empty_mask(int sig, void (*handler)(int)) ; void signal_SA_RESTART_empty_mask(int sig, void (*handler)(int)) ; void wait_for_any_sig(void) ; void kill_myself_with_sig(int sig) __attribute__ ((__noreturn__)) ; void sig_block(int sig) ; void sig_unblock(int sig) ; int sigaction_set(int sig, const struct sigaction *act) ; int sigprocmask_allsigs(int how) ; extern smallint bb_got_signal; void record_signo(int signo); void xsetgid(gid_t gid) ; void xsetuid(uid_t uid) ; void xchdir(const char *path) ; void xchroot(const char *path) ; void xsetenv(const char *key, const char *value) ; void bb_unsetenv(const char *key) ; void bb_unsetenv_and_free(char *key) ; void xunlink(const char *pathname) ; void xstat(const char *pathname, struct stat *buf) ; void xfstat(int fd, struct stat *buf, const char *errmsg) ; int xopen(const char *pathname, int flags) ; int xopen_nonblocking(const char *pathname) ; int xopen3(const char *pathname, int flags, int mode) ; int open_or_warn(const char *pathname, int flags) ; int open3_or_warn(const char *pathname, int flags, int mode) ; int open_or_warn_stdin(const char *pathname) ; int xopen_stdin(const char *pathname) ; void xrename(const char *oldpath, const char *newpath) ; int rename_or_warn(const char *oldpath, const char *newpath) ; off_t xlseek(int fd, off_t offset, int whence) ; int xmkstemp(char *template) ; off_t fdlength(int fd) ; uoff_t get_volume_size_in_bytes(int fd, const char *override, unsigned override_units, int extend); void xpipe(int filedes[2]) ; struct fd_pair { int rd; int wr; }; typedef int8_t socktype_t; typedef int8_t family_t; struct BUG_too_small { char BUG_socktype_t_too_small[(0 | SOCK_STREAM | SOCK_DGRAM | SOCK_RDM | SOCK_SEQPACKET | SOCK_RAW ) <= 127 ? 1 : -1]; char BUG_family_t_too_small[(0 | 0 | 2 | 10 | 1 | 17 | 16 ) <= 127 ? 1 : -1]; }; void parse_datestr(const char *date_str, struct tm *ptm) ; time_t validate_tm_time(const char *date_str, struct tm *ptm) ; int xsocket(int domain, int type, int protocol) ; void xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) ; void xlisten(int s, int backlog) ; void xconnect(int s, const struct sockaddr *s_addr, socklen_t addrlen) ; ssize_t xsendto(int s, const void *buf, size_t len, const struct sockaddr *to, socklen_t tolen) ; void setsockopt_reuseaddr(int fd) ; int setsockopt_broadcast(int fd) ; int setsockopt_bindtodevice(int fd, const char *iface) ; unsigned bb_lookup_port(const char *port, const char *protocol, unsigned default_port) ; typedef struct len_and_sockaddr { socklen_t len; union { struct sockaddr sa; struct sockaddr_in sin; struct sockaddr_in6 sin6; } u; } len_and_sockaddr; enum { LSA_LEN_SIZE = __builtin_offsetof (len_and_sockaddr, u), LSA_SIZEOF_SA = sizeof( union { struct sockaddr sa; struct sockaddr_in sin; struct sockaddr_in6 sin6; } ) }; int xsocket_type(len_and_sockaddr **lsap, int af, int sock_type) ; int xsocket_stream(len_and_sockaddr **lsap) ; int create_and_bind_stream_or_die(const char *bindaddr, int port) ; int create_and_bind_dgram_or_die(const char *bindaddr, int port) ; int create_and_connect_stream_or_die(const char *peer, int port) ; int xconnect_stream(const len_and_sockaddr *lsa) ; len_and_sockaddr *get_sock_lsa(int fd) __attribute__ ((malloc)); len_and_sockaddr *get_peer_lsa(int fd) __attribute__ ((malloc)); len_and_sockaddr* host2sockaddr(const char *host, int port) __attribute__ ((malloc)); len_and_sockaddr* xhost2sockaddr(const char *host, int port) __attribute__ ((malloc)); len_and_sockaddr* xdotted2sockaddr(const char *host, int port) __attribute__ ((malloc)); len_and_sockaddr* host_and_af2sockaddr(const char *host, int port, sa_family_t af) __attribute__ ((malloc)); len_and_sockaddr* xhost_and_af2sockaddr(const char *host, int port, sa_family_t af) __attribute__ ((malloc)); void set_nport(struct sockaddr *sa, unsigned port) ; int get_nport(const struct sockaddr *sa) ; char* xmalloc_sockaddr2host(const struct sockaddr *sa) __attribute__ ((malloc)); char* xmalloc_sockaddr2host_noport(const struct sockaddr *sa) __attribute__ ((malloc)); char* xmalloc_sockaddr2hostonly_noport(const struct sockaddr *sa) __attribute__ ((malloc)); char* xmalloc_sockaddr2dotted(const struct sockaddr *sa) __attribute__ ((malloc)); char* xmalloc_sockaddr2dotted_noport(const struct sockaddr *sa) __attribute__ ((malloc)); struct hostent *xgethostbyname(const char *name) ; void socket_want_pktinfo(int fd) ; ssize_t send_to_from(int fd, void *buf, size_t len, int flags, const struct sockaddr *to, const struct sockaddr *from, socklen_t tolen) ; ssize_t recv_from_to(int fd, void *buf, size_t len, int flags, struct sockaddr *from, struct sockaddr *to, socklen_t sa_size) ; uint16_t inet_cksum(uint16_t *addr, int len) ; char *xstrdup(const char *s) __attribute__ ((malloc)); char *xstrndup(const char *s, int n) __attribute__ ((malloc)); void overlapping_strcpy(char *dst, const char *src) ; char *safe_strncpy(char *dst, const char *src, size_t size) ; char *strncpy_IFNAMSIZ(char *dst, const char *src) ; int bb_putchar(int ch) ; int bb_putchar_stderr(char ch) ; char *xasprintf(const char *format, ...) __attribute__ ((format(printf, 1, 2))) __attribute__ ((malloc)); # 666 "include/libbb.h" typedef struct uni_stat_t { unsigned byte_count; unsigned unicode_count; unsigned unicode_width; } uni_stat_t; const char* printable_string(uni_stat_t *stats, const char *str); enum { PRINTABLE_META = 0x100 }; void fputc_printable(int ch, FILE *file) ; void *malloc_or_warn(size_t size) __attribute__ ((malloc)); void *xmalloc(size_t size) __attribute__ ((malloc)); void *xzalloc(size_t size) __attribute__ ((malloc)); void *xrealloc(void *old, size_t size) ; # 695 "include/libbb.h" void* xrealloc_vector_helper(void *vector, unsigned sizeof_and_shift, int idx) ; extern ssize_t safe_read(int fd, void *buf, size_t count) ; extern ssize_t nonblock_immune_read(int fd, void *buf, size_t count, int loop_on_EINTR) ; extern ssize_t full_read(int fd, void *buf, size_t count) ; extern void xread(int fd, void *buf, size_t count) ; extern unsigned char xread_char(int fd) ; extern ssize_t read_close(int fd, void *buf, size_t maxsz) ; extern ssize_t open_read_close(const char *filename, void *buf, size_t maxsz) ; extern char *xmalloc_reads(int fd, size_t *maxsz_p) ; extern void *xmalloc_read(int fd, size_t *maxsz_p) __attribute__ ((malloc)); extern void *xmalloc_open_read_close(const char *filename, size_t *maxsz_p) __attribute__ ((malloc)); extern void *xmalloc_xopen_read_close(const char *filename, size_t *maxsz_p) __attribute__ ((malloc)); # 727 "include/libbb.h" extern int setup_unzip_on_fd(int fd, int fail_if_not_detected) ; extern int open_zipped(const char *fname) ; extern void *xmalloc_open_zipped_read_close(const char *fname, size_t *maxsz_p) __attribute__ ((malloc)); extern ssize_t safe_write(int fd, const void *buf, size_t count) ; extern ssize_t full_write(int fd, const void *buf, size_t count) ; extern void xwrite(int fd, const void *buf, size_t count) ; extern void xwrite_str(int fd, const char *str) ; extern ssize_t full_write1_str(const char *str) ; extern ssize_t full_write2_str(const char *str) ; extern void xopen_xwrite_close(const char* file, const char *str) ; extern void xclose(int fd) ; extern void xprint_and_close_file(FILE *file) ; extern char *bb_get_chunk_from_file(FILE *file, int *end) ; extern char *xmalloc_fgets_str(FILE *file, const char *terminating_string) __attribute__ ((malloc)); extern char *xmalloc_fgets_str_len(FILE *file, const char *terminating_string, size_t *maxsz_p) __attribute__ ((malloc)); extern char *xmalloc_fgetline_str(FILE *file, const char *terminating_string) __attribute__ ((malloc)); extern char *xmalloc_fgets(FILE *file) __attribute__ ((malloc)); extern char *xmalloc_fgetline(FILE *file) __attribute__ ((malloc)); void die_if_ferror(FILE *file, const char *msg) ; void die_if_ferror_stdout(void) ; int fflush_all(void) ; void fflush_stdout_and_exit(int retval) __attribute__ ((__noreturn__)) ; int fclose_if_not_stdin(FILE *file) ; FILE* xfopen(const char *filename, const char *mode) ; FILE* fopen_or_warn(const char *filename, const char *mode) ; FILE* xfopen_stdin(const char *filename) ; FILE* fopen_or_warn_stdin(const char *filename) ; FILE* fopen_for_read(const char *path) ; FILE* xfopen_for_read(const char *path) ; FILE* fopen_for_write(const char *path) ; FILE* xfopen_for_write(const char *path) ; FILE* xfdopen_for_read(int fd) ; FILE* xfdopen_for_write(int fd) ; int bb_pstrcmp(const void *a, const void *b) ; void qsort_string_vector(char **sv, unsigned count) ; int safe_poll(struct pollfd *ufds, nfds_t nfds, int timeout_ms) ; char *safe_gethostname(void) ; char* str_tolower(char *str) ; char *utoa(unsigned n) ; char *itoa(int n) ; char *utoa_to_buf(unsigned n, char *buf, unsigned buflen) ; char *itoa_to_buf(int n, char *buf, unsigned buflen) ; void smart_ulltoa4(unsigned long long ul, char buf[4], const char *scale) ; void smart_ulltoa5(unsigned long long ul, char buf[5], const char *scale) ; const char *make_human_readable_str(unsigned long long size, unsigned long block_size, unsigned long display_unit) ; char *bin2hex(char *dst, const char *src, int count) ; char* hex2bin(char *dst, const char *src, int count) ; void generate_uuid(uint8_t *buf) ; struct suffix_mult { char suffix[4]; unsigned mult; }; # 1 "include/xatonum.h" 1 # 10 "include/xatonum.h" # 10 "include/xatonum.h" #pragma GCC visibility push(hidden) # 10 "include/xatonum.h" # 32 "include/xatonum.h" unsigned long long xstrtoull_range_sfx(const char *str, int b, unsigned long long l, unsigned long long u, const struct suffix_mult *sfx) ; unsigned long long xstrtoull_range(const char *str, int b, unsigned long long l, unsigned long long u) ; unsigned long long xstrtoull_sfx(const char *str, int b, const struct suffix_mult *sfx) ; unsigned long long xstrtoull(const char *str, int b) ; unsigned long long xatoull_range_sfx(const char *str, unsigned long long l, unsigned long long u, const struct suffix_mult *sfx) ; unsigned long long xatoull_range(const char *str, unsigned long long l, unsigned long long u) ; unsigned long long xatoull_sfx(const char *str, const struct suffix_mult *sfx) ; unsigned long long xatoull(const char *str) ; long long xstrtoll_range_sfx(const char *str, int b, long long l, long long u, const struct suffix_mult *sfx) ; long long xstrtoll_range(const char *str, int b, long long l, long long u) ; long long xstrtoll(const char *str, int b) ; long long xatoll_range_sfx(const char *str, long long l, long long u, const struct suffix_mult *sfx) ; long long xatoll_range(const char *str, long long l, long long u) ; long long xatoll_sfx(const char *str, const struct suffix_mult *sfx) ; long long xatoll(const char *str) ; # 90 "include/xatonum.h" unsigned long xstrtoul_range_sfx(const char *str, int b, unsigned long l, unsigned long u, const struct suffix_mult *sfx) ; unsigned long xstrtoul_range(const char *str, int b, unsigned long l, unsigned long u) ; unsigned long xstrtoul_sfx(const char *str, int b, const struct suffix_mult *sfx) ; unsigned long xstrtoul(const char *str, int b) ; unsigned long xatoul_range_sfx(const char *str, unsigned long l, unsigned long u, const struct suffix_mult *sfx) ; unsigned long xatoul_range(const char *str, unsigned long l, unsigned long u) ; unsigned long xatoul_sfx(const char *str, const struct suffix_mult *sfx) ; unsigned long xatoul(const char *str) ; long xstrtol_range_sfx(const char *str, int b, long l, long u, const struct suffix_mult *sfx) ; long xstrtol_range(const char *str, int b, long l, long u) ; long xstrtol(const char *str, int b) ; long xatol_range_sfx(const char *str, long l, long u, const struct suffix_mult *sfx) ; long xatol_range(const char *str, long l, long u) ; long xatol_sfx(const char *str, const struct suffix_mult *sfx) ; long xatol(const char *str) ; static __attribute__ ((always_inline)) __inline__ unsigned int xstrtou_range_sfx(const char *str, int b, unsigned int l, unsigned int u, const struct suffix_mult *sfx) { return xstrtoul_range_sfx(str, b, l, u, sfx); } static __attribute__ ((always_inline)) __inline__ unsigned int xstrtou_range(const char *str, int b, unsigned int l, unsigned int u) { return xstrtoul_range(str, b, l, u); } static __attribute__ ((always_inline)) __inline__ unsigned int xstrtou_sfx(const char *str, int b, const struct suffix_mult *sfx) { return xstrtoul_sfx(str, b, sfx); } static __attribute__ ((always_inline)) __inline__ unsigned int xstrtou(const char *str, int b) { return xstrtoul(str, b); } static __attribute__ ((always_inline)) __inline__ unsigned int xatou_range_sfx(const char *str, unsigned int l, unsigned int u, const struct suffix_mult *sfx) { return xatoul_range_sfx(str, l, u, sfx); } static __attribute__ ((always_inline)) __inline__ unsigned int xatou_range(const char *str, unsigned int l, unsigned int u) { return xatoul_range(str, l, u); } static __attribute__ ((always_inline)) __inline__ unsigned int xatou_sfx(const char *str, const struct suffix_mult *sfx) { return xatoul_sfx(str, sfx); } static __attribute__ ((always_inline)) __inline__ unsigned int xatou(const char *str) { return xatoul(str); } static __attribute__ ((always_inline)) __inline__ int xstrtoi_range_sfx(const char *str, int b, int l, int u, const struct suffix_mult *sfx) { return xstrtol_range_sfx(str, b, l, u, sfx); } static __attribute__ ((always_inline)) __inline__ int xstrtoi_range(const char *str, int b, int l, int u) { return xstrtol_range(str, b, l, u); } static __attribute__ ((always_inline)) __inline__ int xstrtoi(const char *str, int b) { return xstrtol(str, b); } static __attribute__ ((always_inline)) __inline__ int xatoi_range_sfx(const char *str, int l, int u, const struct suffix_mult *sfx) { return xatol_range_sfx(str, l, u, sfx); } static __attribute__ ((always_inline)) __inline__ int xatoi_range(const char *str, int l, int u) { return xatol_range(str, l, u); } static __attribute__ ((always_inline)) __inline__ int xatoi_sfx(const char *str, const struct suffix_mult *sfx) { return xatol_sfx(str, sfx); } static __attribute__ ((always_inline)) __inline__ int xatoi(const char *str) { return xatol(str); } uint32_t BUG_xatou32_unimplemented(void); static __attribute__ ((always_inline)) __inline__ uint32_t xatou32(const char *numstr) { if ((2147483647 * 2U + 1U) == 0xffffffff) return xatou(numstr); if ((2147483647L * 2UL + 1UL) == 0xffffffff) return xatoul(numstr); return BUG_xatou32_unimplemented(); } # 127 "include/xatonum.h" unsigned long long bb_strtoull(const char *arg, char **endp, int base) ; long long bb_strtoll(const char *arg, char **endp, int base) ; # 138 "include/xatonum.h" unsigned long bb_strtoul(const char *arg, char **endp, int base) ; long bb_strtol(const char *arg, char **endp, int base) ; # 150 "include/xatonum.h" static __attribute__ ((always_inline)) __inline__ unsigned bb_strtou(const char *arg, char **endp, int base) { return bb_strtoul(arg, endp, base); } static __attribute__ ((always_inline)) __inline__ int bb_strtoi(const char *arg, char **endp, int base) { return bb_strtol(arg, endp, base); } uint32_t BUG_bb_strtou32_unimplemented(void); static __attribute__ ((always_inline)) __inline__ uint32_t bb_strtou32(const char *arg, char **endp, int base) { if (sizeof(uint32_t) == sizeof(unsigned)) return bb_strtou(arg, endp, base); if (sizeof(uint32_t) == sizeof(unsigned long)) return bb_strtoul(arg, endp, base); return BUG_bb_strtou32_unimplemented(); } static __attribute__ ((always_inline)) __inline__ int32_t bb_strtoi32(const char *arg, char **endp, int base) { if (sizeof(int32_t) == sizeof(int)) return bb_strtoi(arg, endp, base); if (sizeof(int32_t) == sizeof(long)) return bb_strtol(arg, endp, base); return BUG_bb_strtou32_unimplemented(); } double bb_strtod(const char *arg, char **endp) ; # 185 "include/xatonum.h" #pragma GCC visibility pop # 185 "include/xatonum.h" # 834 "include/libbb.h" 2 # 843 "include/libbb.h" int xatoi_positive(const char *numstr) ; uint16_t xatou16(const char *numstr) ; long xuname2uid(const char *name) ; long xgroup2gid(const char *name) ; unsigned long get_ug_id(const char *s, long (*xname2id)(const char *)) ; struct bb_uidgid_t { uid_t uid; gid_t gid; }; int get_uidgid(struct bb_uidgid_t*, const char*, int numeric_ok) ; void xget_uidgid(struct bb_uidgid_t*, const char*) ; void parse_chown_usergroup_or_die(struct bb_uidgid_t *u, char *user_group) ; struct passwd* xgetpwnam(const char *name) ; struct group* xgetgrnam(const char *name) ; struct passwd* xgetpwuid(uid_t uid) ; struct group* xgetgrgid(gid_t gid) ; char* xuid2uname(uid_t uid) ; char* xgid2group(gid_t gid) ; char* uid2uname(uid_t uid) ; char* gid2group(gid_t gid) ; char* uid2uname_utoa(uid_t uid) ; char* gid2group_utoa(gid_t gid) ; const char* get_cached_username(uid_t uid) ; const char* get_cached_groupname(gid_t gid) ; void clear_username_cache(void) ; enum { USERNAME_MAX_SIZE = 32 - sizeof(uid_t) }; void die_if_bad_username(const char* name) ; void write_new_utmp(pid_t pid, int new_type, const char *tty_name, const char *username, const char *hostname); void update_utmp(pid_t pid, int new_type, const char *tty_name, const char *username, const char *hostname); int execable_file(const char *name) ; char *find_execable(const char *filename, char **PATHp) ; int exists_execable(const char *filename) ; int BB_EXECVP(const char *file, char *const argv[]) ; # 917 "include/libbb.h" int BB_EXECVP_or_die(char **argv) __attribute__ ((__noreturn__)) ; # 929 "include/libbb.h" pid_t xfork(void) ; pid_t spawn(char **argv) ; pid_t xspawn(char **argv) ; pid_t safe_waitpid(pid_t pid, int *wstat, int options) ; pid_t wait_any_nohang(int *wstat) ; # 946 "include/libbb.h" int wait4pid(pid_t pid) ; int spawn_and_wait(char **argv) ; int run_nofork_applet(int applet_no, char **argv) ; # 975 "include/libbb.h" enum { DAEMON_CHDIR_ROOT = 1, DAEMON_DEVNULL_STDIO = 2, DAEMON_CLOSE_EXTRA_FDS = 4, DAEMON_ONLY_SANITIZE = 8, DAEMON_DOUBLE_FORK = 16, }; enum { re_execed = 0 }; # 1002 "include/libbb.h" void bb_daemonize_or_rexec(int flags) ; void bb_sanitize_stdio(void) ; int sanitize_env_if_suid(void) ; char* single_argv(char **argv) ; extern const char *const bb_argv_dash[]; extern const char *opt_complementary; extern const char *applet_long_options; extern uint32_t option_mask32; extern uint32_t getopt32(char **argv, const char *applet_opts, ...) ; typedef struct llist_t { struct llist_t *link; char *data; } llist_t; void llist_add_to(llist_t **old_head, void *data) ; void llist_add_to_end(llist_t **list_head, void *data) ; void *llist_pop(llist_t **elm) ; void llist_unlink(llist_t **head, llist_t *elm) ; void llist_free(llist_t *elm, void (*freeit)(void *data)) ; llist_t *llist_rev(llist_t *list) ; llist_t *llist_find_str(llist_t *first, const char *str) ; # 1044 "include/libbb.h" extern smallint wrote_pidfile; void write_pidfile(const char *path) ; enum { LOGMODE_NONE = 0, LOGMODE_STDIO = (1 << 0), LOGMODE_SYSLOG = (1 << 1) * 1, LOGMODE_BOTH = LOGMODE_SYSLOG + LOGMODE_STDIO, }; extern const char *msg_eol; extern smallint logmode; extern int die_sleep; extern uint8_t xfunc_error_retval; extern jmp_buf die_jmp; extern void xfunc_die(void) __attribute__ ((__noreturn__)) ; extern void bb_show_usage(void) __attribute__ ((__noreturn__)) ; extern void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) ; extern void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) ; extern void bb_perror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) ; extern void bb_simple_perror_msg(const char *s) ; extern void bb_perror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) ; extern void bb_simple_perror_msg_and_die(const char *s) __attribute__ ((__noreturn__)) ; extern void bb_herror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) ; extern void bb_herror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) ; extern void bb_perror_nomsg_and_die(void) __attribute__ ((__noreturn__)) ; extern void bb_perror_nomsg(void) ; extern void bb_info_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) ; extern void bb_verror_msg(const char *s, va_list p, const char *strerr) ; # 1090 "include/libbb.h" int bb_cat(char** argv); int echo_main(int argc, char** argv) ; int printf_main(int argc, char **argv) ; int test_main(int argc, char **argv) ; int kill_main(int argc, char **argv) ; int chown_main(int argc, char **argv) ; int ls_main(int argc, char **argv) ; int gunzip_main(int argc, char **argv) ; int bunzip2_main(int argc, char **argv) ; void bb_displayroutes(int noresolve, int netstatfmt) ; int create_icmp_socket(void) ; int create_icmp6_socket(void) ; struct aftype { const char *name; const char *title; int af; int alen; char* (*print)(unsigned char *); const char* (*sprint)(struct sockaddr *, int numeric); int (*input)( const char *bufp, struct sockaddr *); void (*herror)(char *text); int (*rprint)(int options); int (*rinput)(int typ, int ext, char **argv); int (*getmask)(char *src, struct sockaddr *mask, char *name); }; struct hwtype { const char *name; const char *title; int type; int alen; char* (*print)(unsigned char *); int (*input)(const char *, struct sockaddr *); int (*activate)(int fd); int suppress_null_addr; }; extern smallint interface_opt_a; int display_interfaces(char *ifname) ; int in_ib(const char *bufp, struct sockaddr *sap) ; const struct aftype *get_aftype(const char *name) ; const struct hwtype *get_hwtype(const char *name) ; const struct hwtype *get_hwntype(int type) ; extern int find_applet_by_name(const char *name) ; extern void run_applet_and_exit(const char *name, char **argv) ; extern void run_applet_no_and_exit(int a, char **argv) __attribute__ ((__noreturn__)) ; extern int match_fstype(const struct mntent *mt, const char *fstypes) ; extern struct mntent *find_mount_point(const char *name, int subdir_too) ; extern void erase_mtab(const char * name) ; extern unsigned int tty_baud_to_value(speed_t speed) ; extern speed_t tty_value_to_baud(unsigned int value) ; extern void bb_warn_ignoring_args(char *arg) ; extern int get_linux_version_code(void) ; extern char *query_loop(const char *device) ; extern int del_loop(const char *device) ; extern int set_loop(char **devname, const char *file, unsigned long long offset, int ro) ; char *bb_ask_stdin(const char * prompt) ; char *bb_ask(const int fd, int timeout, const char * prompt) ; int bb_ask_confirmation(void) ; int bb_parse_mode(const char* s, mode_t* theMode) ; enum { PARSE_COLLAPSE = 0x00010000, PARSE_TRIM = 0x00020000, PARSE_GREEDY = 0x00040000, PARSE_MIN_DIE = 0x00100000, PARSE_KEEP_COPY = 0x00200000 * 1, PARSE_EOL_COMMENTS = 0x00400000, PARSE_NORMAL = PARSE_COLLAPSE | PARSE_TRIM | PARSE_GREEDY | PARSE_EOL_COMMENTS, }; typedef struct parser_t { FILE *fp; char *data; char *line, *nline; size_t line_alloc, nline_alloc; int lineno; } parser_t; parser_t* config_open(const char *filename) ; parser_t* config_open2(const char *filename, FILE* (*fopen_func)(const char *path)) ; int config_read(parser_t *parser, char **tokens, unsigned flags, const char *delims) ; void config_close(parser_t *parser) ; char *concat_path_file(const char *path, const char *filename) ; char *concat_subpath_file(const char *path, const char *filename) ; int bb_make_directory(char *path, long mode, int flags) ; int get_signum(const char *name) ; const char *get_signame(int number) ; void print_signames(void) ; char *bb_simplify_path(const char *path) ; char *bb_simplify_abs_path_inplace(char *path) ; extern void bb_do_delay(int seconds) ; extern void change_identity(const struct passwd *pw) ; extern void run_shell(const char *shell, int loginshell, const char *command, const char **additional_args) __attribute__ ((__noreturn__)) ; const char *get_shell_name(void) ; # 1263 "include/libbb.h" extern void selinux_or_die(void) ; int sd_listen_fds(void); # 1290 "include/libbb.h" extern void setup_environment(const char *shell, int flags, const struct passwd *pw) ; extern int correct_password(const struct passwd *pw) ; extern char *pw_encrypt(const char *clear, const char *salt, int cleanup) ; extern int obscure(const char *old, const char *newval, const struct passwd *pwdp) ; # 1306 "include/libbb.h" extern int crypt_make_salt(char *p, int cnt ) ; extern char* crypt_make_pw_salt(char p[(3 + 16 + 1)], const char *algo) ; extern int update_passwd(const char *filename, const char *username, const char *data, const char *member) ; int index_in_str_array(const char *const string_array[], const char *key) ; int index_in_strings(const char *strings, const char *key) ; int index_in_substr_array(const char *const string_array[], const char *key) ; int index_in_substrings(const char *strings, const char *key) ; const char *nth_string(const char *strings, int n) ; extern void print_login_issue(const char *issue_file, const char *tty) ; extern void print_login_prompt(void) ; char *xmalloc_ttyname(int fd) __attribute__ ((malloc)); int get_terminal_width_height(int fd, unsigned *width, unsigned *height) ; int tcsetattr_stdin_TCSANOW(const struct termios *tp) ; int ioctl_or_perror(int fd, unsigned request, void *argp, const char *fmt,...) __attribute__ ((format (printf, 4, 5))) ; int ioctl_or_perror_and_die(int fd, unsigned request, void *argp, const char *fmt,...) __attribute__ ((format (printf, 4, 5))) ; int bb_ioctl_or_warn(int fd, unsigned request, void *argp, const char *ioctl_name) ; int bb_xioctl(int fd, unsigned request, void *argp, const char *ioctl_name) ; # 1352 "include/libbb.h" char *is_in_ino_dev_hashtable(const struct stat *statbuf) ; void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name) ; void reset_ino_dev_hashtable(void) ; unsigned long long bb_makedev(unsigned major, unsigned minor) ; # 1367 "include/libbb.h" enum { KEYCODE_UP = -2, KEYCODE_DOWN = -3, KEYCODE_RIGHT = -4, KEYCODE_LEFT = -5, KEYCODE_HOME = -6, KEYCODE_END = -7, KEYCODE_INSERT = -8, KEYCODE_DELETE = -9, KEYCODE_PAGEUP = -10, KEYCODE_PAGEDOWN = -11, # 1402 "include/libbb.h" KEYCODE_CTRL_RIGHT = KEYCODE_RIGHT & ~0x40, KEYCODE_CTRL_LEFT = KEYCODE_LEFT & ~0x40, KEYCODE_ALT_RIGHT = KEYCODE_RIGHT & ~0x20, KEYCODE_ALT_LEFT = KEYCODE_LEFT & ~0x20, KEYCODE_CURSOR_POS = -0x100, KEYCODE_BUFFER_SIZE = 16 }; # 1429 "include/libbb.h" int64_t read_key(int fd, char *buffer, int timeout) ; void read_key_ungets(char *buffer, const char *str, unsigned len) ; unsigned size_from_HISTFILESIZE(const char *hp); typedef struct line_input_t { int flags; const char *path_lookup; int cnt_history; int cur_history; int max_history; unsigned cnt_history_in_file; const char *hist_file; char *history[(255 + 0) + 1]; } line_input_t; enum { DO_HISTORY = 1 * ((255 + 0) > 0), TAB_COMPLETION = 2 * 1, USERNAME_COMPLETION = 4 * 1, VI_MODE = 8 * 1, WITH_PATH_LOOKUP = 0x10, FOR_SHELL = DO_HISTORY | TAB_COMPLETION | USERNAME_COMPLETION, }; line_input_t *new_line_input_t(int flags) ; # 1478 "include/libbb.h" int read_line_input(line_input_t *st, const char *prompt, char *command, int maxsize, int timeout) ; void save_history(line_input_t *st); # 1495 "include/libbb.h" enum { COMM_LEN = 16 }; struct smaprec { unsigned long mapped_rw; unsigned long mapped_ro; unsigned long shared_clean; unsigned long shared_dirty; unsigned long private_clean; unsigned long private_dirty; unsigned long stack; unsigned long smap_pss, smap_swap; unsigned long smap_size; unsigned long smap_start; char smap_mode[5]; char *smap_name; }; int procps_read_smaps(pid_t pid, struct smaprec *total, void (*cb)(struct smaprec *, void *), void *data); typedef struct procps_status_t { DIR *dir; DIR *task_dir; uint8_t shift_pages_to_bytes; uint8_t shift_pages_to_kb; uint16_t argv_len; char *argv0; char *exe; unsigned main_thread_pid; unsigned long vsz, rss; unsigned long stime, utime; unsigned long start_time; unsigned pid; unsigned ppid; unsigned pgid; unsigned sid; unsigned uid; unsigned gid; unsigned ruid; unsigned rgid; int niceness; unsigned tty_major,tty_minor; struct smaprec smaps; char state[4]; char comm[COMM_LEN]; int last_seen_on_cpu; } procps_status_t; enum { PSSCAN_PID = 1 << 0, PSSCAN_PPID = 1 << 1, PSSCAN_PGID = 1 << 2, PSSCAN_SID = 1 << 3, PSSCAN_UIDGID = 1 << 4, PSSCAN_COMM = 1 << 5, PSSCAN_ARGV0 = 1 << 7, PSSCAN_EXE = 1 << 8, PSSCAN_STATE = 1 << 9, PSSCAN_VSZ = 1 << 10, PSSCAN_RSS = 1 << 11, PSSCAN_STIME = 1 << 12, PSSCAN_UTIME = 1 << 13, PSSCAN_TTY = 1 << 14, PSSCAN_SMAPS = (1 << 15) * 1, PSSCAN_ARGVN = (1 << 16) * (1 || 1 || 1 || 1 || 0 ), PSSCAN_CONTEXT = (1 << 17) * 0, PSSCAN_START_TIME = 1 << 18, PSSCAN_CPU = (1 << 19) * 1, PSSCAN_NICE = (1 << 20) * 1, PSSCAN_RUIDGID = (1 << 21) * 1, PSSCAN_TASKS = (1 << 22) * 1, }; void free_procps_scan(procps_status_t* sp) ; procps_status_t* procps_scan(procps_status_t* sp, int flags) ; void read_cmdline(char *buf, int size, unsigned pid, const char *comm) ; pid_t *find_pid_by_name(const char* procName) ; pid_t *pidlist_reverse(pid_t *pidList) ; int starts_with_cpu(const char *str) ; unsigned get_cpu_count(void) ; # 1612 "include/libbb.h" char *percent_decode_in_place(char *str, int strict) ; extern const char bb_uuenc_tbl_base64[] __attribute__((aligned(1))); extern const char bb_uuenc_tbl_std[] __attribute__((aligned(1))); void bb_uuencode(char *store, const void *s, int length, const char *tbl) ; enum { BASE64_FLAG_UU_STOP = 0x100, BASE64_FLAG_NO_STOP_CHAR = 0x80, }; const char *decode_base64(char **pp_dst, const char *src) ; void read_base64(FILE *src_stream, FILE *dst_stream, int flags) ; typedef struct md5_ctx_t { uint8_t wbuffer[64]; void (*process_block)(struct md5_ctx_t*) ; uint64_t total64; uint32_t hash[8]; } md5_ctx_t; typedef struct md5_ctx_t sha1_ctx_t; typedef struct md5_ctx_t sha256_ctx_t; typedef struct sha512_ctx_t { uint64_t total64[2]; uint64_t hash[8]; uint8_t wbuffer[128]; } sha512_ctx_t; typedef struct sha3_ctx_t { uint64_t state[25]; unsigned bytes_queued; } sha3_ctx_t; void md5_begin(md5_ctx_t *ctx) ; void md5_hash(md5_ctx_t *ctx, const void *buffer, size_t len) ; void md5_end(md5_ctx_t *ctx, void *resbuf) ; void sha1_begin(sha1_ctx_t *ctx) ; void sha1_end(sha1_ctx_t *ctx, void *resbuf) ; void sha256_begin(sha256_ctx_t *ctx) ; void sha512_begin(sha512_ctx_t *ctx) ; void sha512_hash(sha512_ctx_t *ctx, const void *buffer, size_t len) ; void sha512_end(sha512_ctx_t *ctx, void *resbuf) ; void sha3_begin(sha3_ctx_t *ctx) ; void sha3_hash(sha3_ctx_t *ctx, const void *buffer, size_t len) ; void sha3_end(sha3_ctx_t *ctx, void *resbuf) ; extern uint32_t *global_crc32_table; uint32_t *crc32_filltable(uint32_t *tbl256, int endian) ; uint32_t crc32_block_endian1(uint32_t val, const void *buf, unsigned len, uint32_t *crc_table) ; uint32_t crc32_block_endian0(uint32_t val, const void *buf, unsigned len, uint32_t *crc_table) ; typedef struct masks_labels_t { const char *labels; const int masks[]; } masks_labels_t; int print_flags_separated(const int *masks, const char *labels, int flags, const char *separator) ; int print_flags(const masks_labels_t *ml, int flags) ; typedef struct bb_progress_t { unsigned last_size; unsigned last_update_sec; unsigned last_change_sec; unsigned start_sec; const char *curfile; } bb_progress_t; void bb_progress_init(bb_progress_t *p, const char *curfile) ; void bb_progress_update(bb_progress_t *p, uoff_t beg_range, uoff_t transferred, uoff_t totalsize) ; extern const char *applet_name; # 1704 "include/libbb.h" extern const char bb_banner[] __attribute__((aligned(1))); extern const char bb_msg_memory_exhausted[] __attribute__((aligned(1))); extern const char bb_msg_invalid_date[] __attribute__((aligned(1))); extern const char bb_msg_unknown[] __attribute__((aligned(1))); extern const char bb_msg_can_not_create_raw_socket[] __attribute__((aligned(1))); extern const char bb_msg_perm_denied_are_you_root[] __attribute__((aligned(1))); extern const char bb_msg_you_must_be_root[] __attribute__((aligned(1))); extern const char bb_msg_requires_arg[] __attribute__((aligned(1))); extern const char bb_msg_invalid_arg[] __attribute__((aligned(1))); extern const char bb_msg_standard_input[] __attribute__((aligned(1))); extern const char bb_msg_standard_output[] __attribute__((aligned(1))); extern const char bb_hexdigits_upcase[] __attribute__((aligned(1))); extern const char bb_path_wtmp_file[] __attribute__((aligned(1))); # 1735 "include/libbb.h" extern const char bb_busybox_exec_path[] __attribute__((aligned(1))); extern const char bb_PATH_root_path[] __attribute__((aligned(1))); extern const int const_int_0; extern const int const_int_1; enum { COMMON_BUFSIZE = (8192 >= 256*sizeof(void*) ? 8192 +1 : 256*sizeof(void*)) }; extern char bb_common_bufsiz1[COMMON_BUFSIZE]; struct globals; extern struct globals *const ptr_to_globals; # 1768 "include/libbb.h" extern const char bb_default_login_shell[] __attribute__((aligned(1))); # 1866 "include/libbb.h" static __attribute__ ((always_inline)) __inline__ int bb_ascii_isalnum(unsigned char a) { unsigned char b = a - '0'; if (b <= 9) return (b <= 9); b = (a|0x20) - 'a'; return b <= 'z' - 'a'; } static __attribute__ ((always_inline)) __inline__ int bb_ascii_isxdigit(unsigned char a) { unsigned char b = a - '0'; if (b <= 9) return (b <= 9); b = (a|0x20) - 'a'; return b <= 'f' - 'a'; } static __attribute__ ((always_inline)) __inline__ unsigned char bb_ascii_toupper(unsigned char a) { unsigned char b = a - 'a'; if (b <= ('z' - 'a')) a -= 'a' - 'A'; return a; } static __attribute__ ((always_inline)) __inline__ unsigned char bb_ascii_tolower(unsigned char a) { unsigned char b = a - 'A'; if (b <= ('Z' - 'A')) a += 'a' - 'A'; return a; } # 1909 "include/libbb.h" # 1909 "include/libbb.h" #pragma GCC visibility pop # 1909 "include/libbb.h" # 6 "networking/libiproute/ip_common.h" 2 # 1 "/usr/include/asm/types.h" 1 3 4 # 1 "/usr/include/asm-generic/int-ll64.h" 1 3 4 # 11 "/usr/include/asm-generic/int-ll64.h" 3 4 # 1 "/usr/include/asm/bitsperlong.h" 1 3 4 # 1 "/usr/include/asm-generic/bitsperlong.h" 1 3 4 # 1 "/usr/include/asm/bitsperlong.h" 2 3 4 # 12 "/usr/include/asm-generic/int-ll64.h" 2 3 4 typedef __signed__ char __s8; typedef unsigned char __u8; typedef __signed__ short __s16; typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; __extension__ typedef __signed__ long long __s64; __extension__ typedef unsigned long long __u64; # 5 "/usr/include/asm/types.h" 2 3 4 # 7 "networking/libiproute/ip_common.h" 2 # 1 "/usr/include/linux/netlink.h" 1 3 4 # 1 "/usr/include/linux/kernel.h" 1 3 4 # 1 "/usr/include/linux/sysinfo.h" 1 3 4 # 1 "/usr/include/linux/types.h" 1 3 4 # 1 "/usr/include/linux/posix_types.h" 1 3 4 # 1 "/usr/include/linux/stddef.h" 1 3 4 # 5 "/usr/include/linux/posix_types.h" 2 3 4 # 24 "/usr/include/linux/posix_types.h" 3 4 typedef struct { unsigned long fds_bits[1024 / (8 * sizeof(long))]; } __kernel_fd_set; typedef void (*__kernel_sighandler_t)(int); typedef int __kernel_key_t; typedef int __kernel_mqd_t; # 1 "/usr/include/asm/posix_types.h" 1 3 4 # 22 "/usr/include/asm/posix_types.h" 3 4 typedef unsigned short __kernel_mode_t; typedef unsigned short __kernel_ipc_pid_t; typedef unsigned short __kernel_uid_t; typedef unsigned short __kernel_gid_t; typedef unsigned short __kernel_old_dev_t; # 1 "/usr/include/asm-generic/posix_types.h" 1 3 4 # 1 "/usr/include/asm/bitsperlong.h" 1 3 4 # 5 "/usr/include/asm-generic/posix_types.h" 2 3 4 # 14 "/usr/include/asm-generic/posix_types.h" 3 4 typedef long __kernel_long_t; typedef unsigned long __kernel_ulong_t; typedef __kernel_ulong_t __kernel_ino_t; typedef int __kernel_pid_t; # 40 "/usr/include/asm-generic/posix_types.h" 3 4 typedef __kernel_long_t __kernel_suseconds_t; typedef int __kernel_daddr_t; typedef unsigned int __kernel_uid32_t; typedef unsigned int __kernel_gid32_t; typedef __kernel_uid_t __kernel_old_uid_t; typedef __kernel_gid_t __kernel_old_gid_t; # 67 "/usr/include/asm-generic/posix_types.h" 3 4 typedef unsigned int __kernel_size_t; typedef int __kernel_ssize_t; typedef int __kernel_ptrdiff_t; # 78 "/usr/include/asm-generic/posix_types.h" 3 4 typedef struct { int val[2]; } __kernel_fsid_t; typedef __kernel_long_t __kernel_off_t; typedef long long __kernel_loff_t; typedef __kernel_long_t __kernel_time_t; typedef __kernel_long_t __kernel_clock_t; typedef int __kernel_timer_t; typedef int __kernel_clockid_t; typedef char * __kernel_caddr_t; typedef unsigned short __kernel_uid16_t; typedef unsigned short __kernel_gid16_t; # 36 "/usr/include/asm/posix_types.h" 2 3 4 # 36 "/usr/include/linux/posix_types.h" 2 3 4 # 9 "/usr/include/linux/types.h" 2 3 4 # 27 "/usr/include/linux/types.h" 3 4 typedef __u16 __le16; typedef __u16 __be16; typedef __u32 __le32; typedef __u32 __be32; typedef __u64 __le64; typedef __u64 __be64; typedef __u16 __sum16; typedef __u32 __wsum; # 5 "/usr/include/linux/sysinfo.h" 2 3 4 struct sysinfo { __kernel_long_t uptime; __kernel_ulong_t loads[3]; __kernel_ulong_t totalram; __kernel_ulong_t freeram; __kernel_ulong_t sharedram; __kernel_ulong_t bufferram; __kernel_ulong_t totalswap; __kernel_ulong_t freeswap; __u16 procs; __u16 pad; __kernel_ulong_t totalhigh; __kernel_ulong_t freehigh; __u32 mem_unit; char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; }; # 5 "/usr/include/linux/kernel.h" 2 3 4 # 5 "/usr/include/linux/netlink.h" 2 3 4 # 1 "/usr/include/linux/socket.h" 1 3 4 # 11 "/usr/include/linux/socket.h" 3 4 typedef unsigned short __kernel_sa_family_t; struct __kernel_sockaddr_storage { __kernel_sa_family_t ss_family; char __data[128 - sizeof(unsigned short)]; } __attribute__ ((aligned((__alignof__ (struct sockaddr *))))); # 6 "/usr/include/linux/netlink.h" 2 3 4 # 35 "/usr/include/linux/netlink.h" 3 4 struct sockaddr_nl { __kernel_sa_family_t nl_family; unsigned short nl_pad; __u32 nl_pid; __u32 nl_groups; }; struct nlmsghdr { __u32 nlmsg_len; __u16 nlmsg_type; __u16 nlmsg_flags; __u32 nlmsg_seq; __u32 nlmsg_pid; }; # 99 "/usr/include/linux/netlink.h" 3 4 struct nlmsgerr { int error; struct nlmsghdr msg; }; # 112 "/usr/include/linux/netlink.h" 3 4 struct nl_pktinfo { __u32 group; }; struct nl_mmap_req { unsigned int nm_block_size; unsigned int nm_block_nr; unsigned int nm_frame_size; unsigned int nm_frame_nr; }; struct nl_mmap_hdr { unsigned int nm_status; unsigned int nm_len; __u32 nm_group; __u32 nm_pid; __u32 nm_uid; __u32 nm_gid; }; enum nl_mmap_status { NL_MMAP_STATUS_UNUSED, NL_MMAP_STATUS_RESERVED, NL_MMAP_STATUS_VALID, NL_MMAP_STATUS_COPY, NL_MMAP_STATUS_SKIP, }; enum { NETLINK_UNCONNECTED = 0, NETLINK_CONNECTED, }; # 161 "/usr/include/linux/netlink.h" 3 4 struct nlattr { __u16 nla_len; __u16 nla_type; }; # 8 "networking/libiproute/ip_common.h" 2 # 1 "/usr/include/linux/rtnetlink.h" 1 3 4 # 1 "/usr/include/linux/if_link.h" 1 3 4 struct rtnl_link_stats { __u32 rx_packets; __u32 tx_packets; __u32 rx_bytes; __u32 tx_bytes; __u32 rx_errors; __u32 tx_errors; __u32 rx_dropped; __u32 tx_dropped; __u32 multicast; __u32 collisions; __u32 rx_length_errors; __u32 rx_over_errors; __u32 rx_crc_errors; __u32 rx_frame_errors; __u32 rx_fifo_errors; __u32 rx_missed_errors; __u32 tx_aborted_errors; __u32 tx_carrier_errors; __u32 tx_fifo_errors; __u32 tx_heartbeat_errors; __u32 tx_window_errors; __u32 rx_compressed; __u32 tx_compressed; }; struct rtnl_link_stats64 { __u64 rx_packets; __u64 tx_packets; __u64 rx_bytes; __u64 tx_bytes; __u64 rx_errors; __u64 tx_errors; __u64 rx_dropped; __u64 tx_dropped; __u64 multicast; __u64 collisions; __u64 rx_length_errors; __u64 rx_over_errors; __u64 rx_crc_errors; __u64 rx_frame_errors; __u64 rx_fifo_errors; __u64 rx_missed_errors; __u64 tx_aborted_errors; __u64 tx_carrier_errors; __u64 tx_fifo_errors; __u64 tx_heartbeat_errors; __u64 tx_window_errors; __u64 rx_compressed; __u64 tx_compressed; }; struct rtnl_link_ifmap { __u64 mem_start; __u64 mem_end; __u64 base_addr; __u16 irq; __u8 dma; __u8 port; }; # 101 "/usr/include/linux/if_link.h" 3 4 enum { IFLA_UNSPEC, IFLA_ADDRESS, IFLA_BROADCAST, IFLA_IFNAME, IFLA_MTU, IFLA_LINK, IFLA_QDISC, IFLA_STATS, IFLA_COST, IFLA_PRIORITY, IFLA_MASTER, IFLA_WIRELESS, IFLA_PROTINFO, IFLA_TXQLEN, IFLA_MAP, IFLA_WEIGHT, IFLA_OPERSTATE, IFLA_LINKMODE, IFLA_LINKINFO, IFLA_NET_NS_PID, IFLA_IFALIAS, IFLA_NUM_VF, IFLA_VFINFO_LIST, IFLA_STATS64, IFLA_VF_PORTS, IFLA_PORT_SELF, IFLA_AF_SPEC, IFLA_GROUP, IFLA_NET_NS_FD, IFLA_EXT_MASK, IFLA_PROMISCUITY, IFLA_NUM_TX_QUEUES, IFLA_NUM_RX_QUEUES, IFLA_CARRIER, IFLA_PHYS_PORT_ID, __IFLA_MAX }; # 157 "/usr/include/linux/if_link.h" 3 4 enum { IFLA_INET_UNSPEC, IFLA_INET_CONF, __IFLA_INET_MAX, }; # 195 "/usr/include/linux/if_link.h" 3 4 enum { IFLA_INET6_UNSPEC, IFLA_INET6_FLAGS, IFLA_INET6_CONF, IFLA_INET6_STATS, IFLA_INET6_MCAST, IFLA_INET6_CACHEINFO, IFLA_INET6_ICMP6STATS, IFLA_INET6_TOKEN, __IFLA_INET6_MAX }; enum { BRIDGE_MODE_UNSPEC, BRIDGE_MODE_HAIRPIN, }; enum { IFLA_BRPORT_UNSPEC, IFLA_BRPORT_STATE, IFLA_BRPORT_PRIORITY, IFLA_BRPORT_COST, IFLA_BRPORT_MODE, IFLA_BRPORT_GUARD, IFLA_BRPORT_PROTECT, IFLA_BRPORT_FAST_LEAVE, IFLA_BRPORT_LEARNING, IFLA_BRPORT_UNICAST_FLOOD, __IFLA_BRPORT_MAX }; struct ifla_cacheinfo { __u32 max_reasm_len; __u32 tstamp; __u32 reachable_time; __u32 retrans_time; }; enum { IFLA_INFO_UNSPEC, IFLA_INFO_KIND, IFLA_INFO_DATA, IFLA_INFO_XSTATS, __IFLA_INFO_MAX, }; enum { IFLA_VLAN_UNSPEC, IFLA_VLAN_ID, IFLA_VLAN_FLAGS, IFLA_VLAN_EGRESS_QOS, IFLA_VLAN_INGRESS_QOS, IFLA_VLAN_PROTOCOL, __IFLA_VLAN_MAX, }; struct ifla_vlan_flags { __u32 flags; __u32 mask; }; enum { IFLA_VLAN_QOS_UNSPEC, IFLA_VLAN_QOS_MAPPING, __IFLA_VLAN_QOS_MAX }; struct ifla_vlan_qos_mapping { __u32 from; __u32 to; }; enum { IFLA_MACVLAN_UNSPEC, IFLA_MACVLAN_MODE, IFLA_MACVLAN_FLAGS, __IFLA_MACVLAN_MAX, }; enum macvlan_mode { MACVLAN_MODE_PRIVATE = 1, MACVLAN_MODE_VEPA = 2, MACVLAN_MODE_BRIDGE = 4, MACVLAN_MODE_PASSTHRU = 8, }; enum { IFLA_VXLAN_UNSPEC, IFLA_VXLAN_ID, IFLA_VXLAN_GROUP, IFLA_VXLAN_LINK, IFLA_VXLAN_LOCAL, IFLA_VXLAN_TTL, IFLA_VXLAN_TOS, IFLA_VXLAN_LEARNING, IFLA_VXLAN_AGEING, IFLA_VXLAN_LIMIT, IFLA_VXLAN_PORT_RANGE, IFLA_VXLAN_PROXY, IFLA_VXLAN_RSC, IFLA_VXLAN_L2MISS, IFLA_VXLAN_L3MISS, IFLA_VXLAN_PORT, IFLA_VXLAN_GROUP6, IFLA_VXLAN_LOCAL6, __IFLA_VXLAN_MAX }; struct ifla_vxlan_port_range { __be16 low; __be16 high; }; enum { IFLA_BOND_UNSPEC, IFLA_BOND_MODE, IFLA_BOND_ACTIVE_SLAVE, __IFLA_BOND_MAX, }; enum { IFLA_VF_INFO_UNSPEC, IFLA_VF_INFO, __IFLA_VF_INFO_MAX, }; enum { IFLA_VF_UNSPEC, IFLA_VF_MAC, IFLA_VF_VLAN, IFLA_VF_TX_RATE, IFLA_VF_SPOOFCHK, IFLA_VF_LINK_STATE, __IFLA_VF_MAX, }; struct ifla_vf_mac { __u32 vf; __u8 mac[32]; }; struct ifla_vf_vlan { __u32 vf; __u32 vlan; __u32 qos; }; struct ifla_vf_tx_rate { __u32 vf; __u32 rate; }; struct ifla_vf_spoofchk { __u32 vf; __u32 setting; }; enum { IFLA_VF_LINK_STATE_AUTO, IFLA_VF_LINK_STATE_ENABLE, IFLA_VF_LINK_STATE_DISABLE, __IFLA_VF_LINK_STATE_MAX, }; struct ifla_vf_link_state { __u32 vf; __u32 link_state; }; # 407 "/usr/include/linux/if_link.h" 3 4 enum { IFLA_VF_PORT_UNSPEC, IFLA_VF_PORT, __IFLA_VF_PORT_MAX, }; enum { IFLA_PORT_UNSPEC, IFLA_PORT_VF, IFLA_PORT_PROFILE, IFLA_PORT_VSI_TYPE, IFLA_PORT_INSTANCE_UUID, IFLA_PORT_HOST_UUID, IFLA_PORT_REQUEST, IFLA_PORT_RESPONSE, __IFLA_PORT_MAX, }; enum { PORT_REQUEST_PREASSOCIATE = 0, PORT_REQUEST_PREASSOCIATE_RR, PORT_REQUEST_ASSOCIATE, PORT_REQUEST_DISASSOCIATE, }; enum { PORT_VDP_RESPONSE_SUCCESS = 0, PORT_VDP_RESPONSE_INVALID_FORMAT, PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, PORT_VDP_RESPONSE_UNUSED_VTID, PORT_VDP_RESPONSE_VTID_VIOLATION, PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, PORT_VDP_RESPONSE_OUT_OF_SYNC, PORT_PROFILE_RESPONSE_SUCCESS = 0x100, PORT_PROFILE_RESPONSE_INPROGRESS, PORT_PROFILE_RESPONSE_INVALID, PORT_PROFILE_RESPONSE_BADSTATE, PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, PORT_PROFILE_RESPONSE_ERROR, }; struct ifla_port_vsi { __u8 vsi_mgr_id; __u8 vsi_type_id[3]; __u8 vsi_type_version; __u8 pad[3]; }; enum { IFLA_IPOIB_UNSPEC, IFLA_IPOIB_PKEY, IFLA_IPOIB_MODE, IFLA_IPOIB_UMCAST, __IFLA_IPOIB_MAX }; enum { IPOIB_MODE_DATAGRAM = 0, IPOIB_MODE_CONNECTED = 1, }; enum { IFLA_HSR_UNSPEC, IFLA_HSR_SLAVE1, IFLA_HSR_SLAVE2, IFLA_HSR_MULTICAST_SPEC, IFLA_HSR_SUPERVISION_ADDR, IFLA_HSR_SEQ_NR, __IFLA_HSR_MAX, }; # 7 "/usr/include/linux/rtnetlink.h" 2 3 4 # 1 "/usr/include/linux/if_addr.h" 1 3 4 struct ifaddrmsg { __u8 ifa_family; __u8 ifa_prefixlen; __u8 ifa_flags; __u8 ifa_scope; __u32 ifa_index; }; # 22 "/usr/include/linux/if_addr.h" 3 4 enum { IFA_UNSPEC, IFA_ADDRESS, IFA_LOCAL, IFA_LABEL, IFA_BROADCAST, IFA_ANYCAST, IFA_CACHEINFO, IFA_MULTICAST, __IFA_MAX, }; # 48 "/usr/include/linux/if_addr.h" 3 4 struct ifa_cacheinfo { __u32 ifa_prefered; __u32 ifa_valid; __u32 cstamp; __u32 tstamp; }; # 8 "/usr/include/linux/rtnetlink.h" 2 3 4 # 1 "/usr/include/linux/neighbour.h" 1 3 4 struct ndmsg { __u8 ndm_family; __u8 ndm_pad1; __u16 ndm_pad2; __s32 ndm_ifindex; __u16 ndm_state; __u8 ndm_flags; __u8 ndm_type; }; enum { NDA_UNSPEC, NDA_DST, NDA_LLADDR, NDA_CACHEINFO, NDA_PROBES, NDA_VLAN, NDA_PORT, NDA_VNI, NDA_IFINDEX, __NDA_MAX }; # 64 "/usr/include/linux/neighbour.h" 3 4 struct nda_cacheinfo { __u32 ndm_confirmed; __u32 ndm_used; __u32 ndm_updated; __u32 ndm_refcnt; }; # 96 "/usr/include/linux/neighbour.h" 3 4 struct ndt_stats { __u64 ndts_allocs; __u64 ndts_destroys; __u64 ndts_hash_grows; __u64 ndts_res_failed; __u64 ndts_lookups; __u64 ndts_hits; __u64 ndts_rcv_probes_mcast; __u64 ndts_rcv_probes_ucast; __u64 ndts_periodic_gc_runs; __u64 ndts_forced_gc_runs; }; enum { NDTPA_UNSPEC, NDTPA_IFINDEX, NDTPA_REFCNT, NDTPA_REACHABLE_TIME, NDTPA_BASE_REACHABLE_TIME, NDTPA_RETRANS_TIME, NDTPA_GC_STALETIME, NDTPA_DELAY_PROBE_TIME, NDTPA_QUEUE_LEN, NDTPA_APP_PROBES, NDTPA_UCAST_PROBES, NDTPA_MCAST_PROBES, NDTPA_ANYCAST_DELAY, NDTPA_PROXY_DELAY, NDTPA_PROXY_QLEN, NDTPA_LOCKTIME, NDTPA_QUEUE_LENBYTES, __NDTPA_MAX }; struct ndtmsg { __u8 ndtm_family; __u8 ndtm_pad1; __u16 ndtm_pad2; }; struct ndt_config { __u16 ndtc_key_len; __u16 ndtc_entry_size; __u32 ndtc_entries; __u32 ndtc_last_flush; __u32 ndtc_last_rand; __u32 ndtc_hash_rnd; __u32 ndtc_hash_mask; __u32 ndtc_hash_chain_gc; __u32 ndtc_proxy_qlen; }; enum { NDTA_UNSPEC, NDTA_NAME, NDTA_THRESH1, NDTA_THRESH2, NDTA_THRESH3, NDTA_CONFIG, NDTA_PARMS, NDTA_STATS, NDTA_GC_INTERVAL, __NDTA_MAX }; # 9 "/usr/include/linux/rtnetlink.h" 2 3 4 # 23 "/usr/include/linux/rtnetlink.h" 3 4 enum { RTM_BASE = 16, RTM_NEWLINK = 16, RTM_DELLINK, RTM_GETLINK, RTM_SETLINK, RTM_NEWADDR = 20, RTM_DELADDR, RTM_GETADDR, RTM_NEWROUTE = 24, RTM_DELROUTE, RTM_GETROUTE, RTM_NEWNEIGH = 28, RTM_DELNEIGH, RTM_GETNEIGH, RTM_NEWRULE = 32, RTM_DELRULE, RTM_GETRULE, RTM_NEWQDISC = 36, RTM_DELQDISC, RTM_GETQDISC, RTM_NEWTCLASS = 40, RTM_DELTCLASS, RTM_GETTCLASS, RTM_NEWTFILTER = 44, RTM_DELTFILTER, RTM_GETTFILTER, RTM_NEWACTION = 48, RTM_DELACTION, RTM_GETACTION, RTM_NEWPREFIX = 52, RTM_GETMULTICAST = 58, RTM_GETANYCAST = 62, RTM_NEWNEIGHTBL = 64, RTM_GETNEIGHTBL = 66, RTM_SETNEIGHTBL, RTM_NEWNDUSEROPT = 68, RTM_NEWADDRLABEL = 72, RTM_DELADDRLABEL, RTM_GETADDRLABEL, RTM_GETDCB = 78, RTM_SETDCB, RTM_NEWNETCONF = 80, RTM_GETNETCONF = 82, RTM_NEWMDB = 84, RTM_DELMDB = 85, RTM_GETMDB = 86, __RTM_MAX, }; # 149 "/usr/include/linux/rtnetlink.h" 3 4 struct rtattr { unsigned short rta_len; unsigned short rta_type; }; # 175 "/usr/include/linux/rtnetlink.h" 3 4 struct rtmsg { unsigned char rtm_family; unsigned char rtm_dst_len; unsigned char rtm_src_len; unsigned char rtm_tos; unsigned char rtm_table; unsigned char rtm_protocol; unsigned char rtm_scope; unsigned char rtm_type; unsigned rtm_flags; }; enum { RTN_UNSPEC, RTN_UNICAST, RTN_LOCAL, RTN_BROADCAST, RTN_ANYCAST, RTN_MULTICAST, RTN_BLACKHOLE, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_THROW, RTN_NAT, RTN_XRESOLVE, __RTN_MAX }; # 250 "/usr/include/linux/rtnetlink.h" 3 4 enum rt_scope_t { RT_SCOPE_UNIVERSE=0, RT_SCOPE_SITE=200, RT_SCOPE_LINK=253, RT_SCOPE_HOST=254, RT_SCOPE_NOWHERE=255 }; # 268 "/usr/include/linux/rtnetlink.h" 3 4 enum rt_class_t { RT_TABLE_UNSPEC=0, RT_TABLE_COMPAT=252, RT_TABLE_DEFAULT=253, RT_TABLE_MAIN=254, RT_TABLE_LOCAL=255, RT_TABLE_MAX=0xFFFFFFFF }; enum rtattr_type_t { RTA_UNSPEC, RTA_DST, RTA_SRC, RTA_IIF, RTA_OIF, RTA_GATEWAY, RTA_PRIORITY, RTA_PREFSRC, RTA_METRICS, RTA_MULTIPATH, RTA_PROTOINFO, RTA_FLOW, RTA_CACHEINFO, RTA_SESSION, RTA_MP_ALGO, RTA_TABLE, RTA_MARK, RTA_MFC_STATS, __RTA_MAX }; # 317 "/usr/include/linux/rtnetlink.h" 3 4 struct rtnexthop { unsigned short rtnh_len; unsigned char rtnh_flags; unsigned char rtnh_hops; int rtnh_ifindex; }; # 343 "/usr/include/linux/rtnetlink.h" 3 4 struct rta_cacheinfo { __u32 rta_clntref; __u32 rta_lastuse; __s32 rta_expires; __u32 rta_error; __u32 rta_used; __u32 rta_id; __u32 rta_ts; __u32 rta_tsage; }; enum { RTAX_UNSPEC, RTAX_LOCK, RTAX_MTU, RTAX_WINDOW, RTAX_RTT, RTAX_RTTVAR, RTAX_SSTHRESH, RTAX_CWND, RTAX_ADVMSS, RTAX_REORDERING, RTAX_HOPLIMIT, RTAX_INITCWND, RTAX_FEATURES, RTAX_RTO_MIN, RTAX_INITRWND, RTAX_QUICKACK, __RTAX_MAX }; # 401 "/usr/include/linux/rtnetlink.h" 3 4 struct rta_session { __u8 proto; __u8 pad1; __u16 pad2; union { struct { __u16 sport; __u16 dport; } ports; struct { __u8 type; __u8 code; __u16 ident; } icmpt; __u32 spi; } u; }; struct rta_mfc_stats { __u64 mfcs_packets; __u64 mfcs_bytes; __u64 mfcs_wrong_if; }; struct rtgenmsg { unsigned char rtgen_family; }; # 445 "/usr/include/linux/rtnetlink.h" 3 4 struct ifinfomsg { unsigned char ifi_family; unsigned char __ifi_pad; unsigned short ifi_type; int ifi_index; unsigned ifi_flags; unsigned ifi_change; }; struct prefixmsg { unsigned char prefix_family; unsigned char prefix_pad1; unsigned short prefix_pad2; int prefix_ifindex; unsigned char prefix_type; unsigned char prefix_len; unsigned char prefix_flags; unsigned char prefix_pad3; }; enum { PREFIX_UNSPEC, PREFIX_ADDRESS, PREFIX_CACHEINFO, __PREFIX_MAX }; struct prefix_cacheinfo { __u32 preferred_time; __u32 valid_time; }; struct tcmsg { unsigned char tcm_family; unsigned char tcm__pad1; unsigned short tcm__pad2; int tcm_ifindex; __u32 tcm_handle; __u32 tcm_parent; __u32 tcm_info; }; enum { TCA_UNSPEC, TCA_KIND, TCA_OPTIONS, TCA_STATS, TCA_XSTATS, TCA_RATE, TCA_FCNT, TCA_STATS2, TCA_STAB, __TCA_MAX }; # 521 "/usr/include/linux/rtnetlink.h" 3 4 struct nduseroptmsg { unsigned char nduseropt_family; unsigned char nduseropt_pad1; unsigned short nduseropt_opts_len; int nduseropt_ifindex; __u8 nduseropt_icmp_type; __u8 nduseropt_icmp_code; unsigned short nduseropt_pad2; unsigned int nduseropt_pad3; }; enum { NDUSEROPT_UNSPEC, NDUSEROPT_SRCADDR, __NDUSEROPT_MAX }; # 563 "/usr/include/linux/rtnetlink.h" 3 4 enum rtnetlink_groups { RTNLGRP_NONE, RTNLGRP_LINK, RTNLGRP_NOTIFY, RTNLGRP_NEIGH, RTNLGRP_TC, RTNLGRP_IPV4_IFADDR, RTNLGRP_IPV4_MROUTE, RTNLGRP_IPV4_ROUTE, RTNLGRP_IPV4_RULE, RTNLGRP_IPV6_IFADDR, RTNLGRP_IPV6_MROUTE, RTNLGRP_IPV6_ROUTE, RTNLGRP_IPV6_IFINFO, RTNLGRP_DECnet_IFADDR, RTNLGRP_NOP2, RTNLGRP_DECnet_ROUTE, RTNLGRP_DECnet_RULE, RTNLGRP_NOP4, RTNLGRP_IPV6_PREFIX, RTNLGRP_IPV6_RULE, RTNLGRP_ND_USEROPT, RTNLGRP_PHONET_IFADDR, RTNLGRP_PHONET_ROUTE, RTNLGRP_DCB, RTNLGRP_IPV4_NETCONF, RTNLGRP_IPV6_NETCONF, RTNLGRP_MDB, __RTNLGRP_MAX }; struct tcamsg { unsigned char tca_family; unsigned char tca__pad1; unsigned short tca__pad2; }; # 9 "networking/libiproute/ip_common.h" 2 # 16 "networking/libiproute/ip_common.h" #pragma GCC visibility push(hidden) # 16 "networking/libiproute/ip_common.h" char **ip_parse_common_args(char **argv); int ipaddr_list_or_flush(char **argv, int flush); int do_ipaddr(char **argv); int do_iproute(char **argv); int do_iprule(char **argv); int do_iptunnel(char **argv); int do_iplink(char **argv); # 34 "networking/libiproute/ip_common.h" #pragma GCC visibility pop # 34 "networking/libiproute/ip_common.h" # 16 "networking/libiproute/ipaddress.c" 2 # 1 "networking/libiproute/rt_names.h" 1 # 5 "networking/libiproute/rt_names.h" #pragma GCC visibility push(hidden) # 5 "networking/libiproute/rt_names.h" extern const char* rtnl_rtprot_n2a(int id, char *buf) ; extern const char* rtnl_rtscope_n2a(int id, char *buf) ; extern const char* rtnl_rtrealm_n2a(int id, char *buf) ; extern const char* rtnl_dsfield_n2a(int id, char *buf) ; extern const char* rtnl_rttable_n2a(int id, char *buf) ; extern int rtnl_rtprot_a2n(uint32_t *id, char *arg) ; extern int rtnl_rtscope_a2n(uint32_t *id, char *arg) ; extern int rtnl_rtrealm_a2n(uint32_t *id, char *arg) ; extern int rtnl_dsfield_a2n(uint32_t *id, char *arg) ; extern int rtnl_rttable_a2n(uint32_t *id, char *arg) ; extern const char* ll_type_n2a(int type, char *buf) ; extern const char* ll_addr_n2a(unsigned char *addr, int alen, int type, char *buf, int blen) ; extern int ll_addr_a2n(unsigned char *lladdr, int len, char *arg) ; extern const char* ll_proto_n2a(unsigned short id, char *buf, int len) ; extern int ll_proto_a2n(unsigned short *id, char *buf) ; # 28 "networking/libiproute/rt_names.h" #pragma GCC visibility pop # 28 "networking/libiproute/rt_names.h" # 17 "networking/libiproute/ipaddress.c" 2 # 1 "networking/libiproute/utils.h" 1 # 1 "networking/libiproute/libnetlink.h" 1 # 11 "networking/libiproute/libnetlink.h" # 11 "networking/libiproute/libnetlink.h" #pragma GCC visibility push(hidden) # 11 "networking/libiproute/libnetlink.h" struct rtnl_handle { int fd; struct sockaddr_nl local; struct sockaddr_nl peer; uint32_t seq; uint32_t dump; }; extern void xrtnl_open(struct rtnl_handle *rth) ; extern int xrtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type) ; extern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len) ; extern int xrtnl_dump_filter(struct rtnl_handle *rth, int (*filter)(const struct sockaddr_nl*, struct nlmsghdr *n, void*) , void *arg1) ; extern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, struct nlmsghdr *answer) ; extern int rtnl_send(struct rtnl_handle *rth, char *buf, int) ; extern int addattr32(struct nlmsghdr *n, int maxlen, int type, uint32_t data) ; extern int addattr_l(struct nlmsghdr *n, int maxlen, int type, void *data, int alen) ; extern int rta_addattr32(struct rtattr *rta, int maxlen, int type, uint32_t data) ; extern int rta_addattr_l(struct rtattr *rta, int maxlen, int type, void *data, int alen) ; extern void parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len) ; # 47 "networking/libiproute/libnetlink.h" #pragma GCC visibility pop # 47 "networking/libiproute/libnetlink.h" # 6 "networking/libiproute/utils.h" 2 # 1 "networking/libiproute/ll_map.h" 1 # 5 "networking/libiproute/ll_map.h" #pragma GCC visibility push(hidden) # 5 "networking/libiproute/ll_map.h" int ll_remember_index(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) ; int ll_init_map(struct rtnl_handle *rth) ; int xll_name_to_index(const char *name) ; const char *ll_index_to_name(int idx) ; const char *ll_idx_n2a(int idx, char *buf) ; unsigned ll_index_to_flags(int idx) ; # 15 "networking/libiproute/ll_map.h" #pragma GCC visibility pop # 15 "networking/libiproute/ll_map.h" # 7 "networking/libiproute/utils.h" 2 # 1 "networking/libiproute/rtm_map.h" 1 # 5 "networking/libiproute/rtm_map.h" #pragma GCC visibility push(hidden) # 5 "networking/libiproute/rtm_map.h" const char *rtnl_rtntype_n2a(int id, char *buf) ; int rtnl_rtntype_a2n(int *id, char *arg) ; int get_rt_realms(uint32_t *realms, char *arg) ; # 12 "networking/libiproute/rtm_map.h" #pragma GCC visibility pop # 12 "networking/libiproute/rtm_map.h" # 8 "networking/libiproute/utils.h" 2 # 9 "networking/libiproute/utils.h" #pragma GCC visibility push(hidden) # 9 "networking/libiproute/utils.h" extern family_t preferred_family; extern smallint show_stats; extern smallint show_details; extern smallint show_raw; extern smallint resolve_hosts; extern smallint oneline; extern char _SL_; # 29 "networking/libiproute/utils.h" extern void incomplete_command(void) __attribute__ ((__noreturn__)); typedef struct { uint8_t family; uint8_t bytelen; int16_t bitlen; uint32_t data[4]; } inet_prefix; # 47 "networking/libiproute/utils.h" struct dn_naddr { unsigned short a_len; unsigned char a_addr[20]; }; struct ipx_addr { uint32_t ipx_net; uint8_t ipx_node[6]; }; extern uint32_t get_addr32(char *name); extern int get_addr_1(inet_prefix *dst, char *arg, int family); extern int get_addr(inet_prefix *dst, char *arg, int family); extern void get_prefix(inet_prefix *dst, char *arg, int family); extern unsigned get_unsigned(char *arg, const char *errmsg); extern uint32_t get_u32(char *arg, const char *errmsg); extern uint16_t get_u16(char *arg, const char *errmsg); extern const char *rt_addr_n2a(int af, void *addr, char *buf, int buflen); void invarg(const char *, const char *) __attribute__ ((__noreturn__)); void duparg(const char *, const char *) __attribute__ ((__noreturn__)); void duparg2(const char *, const char *) __attribute__ ((__noreturn__)); int inet_addr_match(const inet_prefix *a, const inet_prefix *b, int bits); const char *dnet_ntop(int af, const void *addr, char *str, size_t len); int dnet_pton(int af, const char *src, void *addr); const char *ipx_ntop(int af, const void *addr, char *str, size_t len); int ipx_pton(int af, const char *src, void *addr); # 88 "networking/libiproute/utils.h" #pragma GCC visibility pop # 88 "networking/libiproute/utils.h" # 18 "networking/libiproute/ipaddress.c" 2 struct filter_t { char *label; char *flushb; struct rtnl_handle *rth; int scope, scopemask; int flags, flagmask; int flushp; int flushe; int ifindex; family_t family; smallint showqueue; smallint oneline; smallint up; smallint flushed; inet_prefix pfx; } __attribute__((__may_alias__)); typedef struct filter_t filter_t; static void print_link_flags(unsigned flags, unsigned mdown) { static const int flag_masks[] = { IFF_LOOPBACK, IFF_BROADCAST, IFF_POINTOPOINT, IFF_MULTICAST, IFF_NOARP, IFF_UP, 0x10000 }; static const char flag_labels[] __attribute__((aligned(1))) = "LOOPBACK\0""BROADCAST\0""POINTOPOINT\0" "MULTICAST\0""NOARP\0""UP\0""LOWER_UP\0"; bb_putchar('<'); if (flags & IFF_UP && !(flags & IFF_RUNNING)) printf("NO-CARRIER,"); flags &= ~IFF_RUNNING; # 69 "networking/libiproute/ipaddress.c" flags = print_flags_separated(flag_masks, flag_labels, flags, ","); if (flags) printf("%x", flags); if (mdown) printf(",M-DOWN"); printf("> "); } static void print_queuelen(char *name) { struct ifreq ifr; int s; s = socket(2, SOCK_STREAM, 0); if (s < 0) return; memset(&ifr, 0, sizeof(ifr)); strncpy_IFNAMSIZ(ifr.ifr_ifrn.ifrn_name, name); if (bb_ioctl_or_warn(s,0x8942,&ifr,"SIOCGIFTXQLEN") < 0) { close(s); return; } close(s); if (ifr.ifr_ifru.ifru_ivalue) printf("qlen %d", ifr.ifr_ifru.ifru_ivalue); } static __attribute__((__noinline__)) int print_linkinfo(const struct nlmsghdr *n) { struct ifinfomsg *ifi = ((void*)(((char*)n) + ((0) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))))); struct rtattr *tb[(__IFLA_MAX - 1)+1]; int len = n->nlmsg_len; if (n->nlmsg_type != RTM_NEWLINK && n->nlmsg_type != RTM_DELLINK) return 0; len -= ((sizeof(*ifi)) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))); if (len < 0) return -1; if ((*(filter_t*)&bb_common_bufsiz1).ifindex && ifi->ifi_index != (*(filter_t*)&bb_common_bufsiz1).ifindex) return 0; if ((*(filter_t*)&bb_common_bufsiz1).up && !(ifi->ifi_flags & IFF_UP)) return 0; memset(tb, 0, sizeof(tb)); parse_rtattr(tb, (__IFLA_MAX - 1), ((struct rtattr*)(((char*)(ifi)) + ( ((sizeof(struct ifinfomsg))+4U -1) & ~(4U -1) ))), len); if (tb[IFLA_IFNAME] == ((void *)0)) { bb_error_msg("nil ifname"); return -1; } if ((*(filter_t*)&bb_common_bufsiz1).label && (!(*(filter_t*)&bb_common_bufsiz1).family || (*(filter_t*)&bb_common_bufsiz1).family == 17) && fnmatch((*(filter_t*)&bb_common_bufsiz1).label, ((void*)(((char*)(tb[IFLA_IFNAME])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), 0) ) { return 0; } if (n->nlmsg_type == RTM_DELLINK) printf("Deleted "); printf("%d: %s", ifi->ifi_index, (char*)((void*)(((char*)(tb[IFLA_IFNAME])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))) ); { unsigned m_flag = 0; if (tb[IFLA_LINK]) { char b1[64]; int iflink = *(int*)((void*)(((char*)(tb[IFLA_LINK])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))); if (iflink == 0) printf("@NONE: "); else { printf("@%s: ", ll_idx_n2a(iflink, b1)); m_flag = ll_index_to_flags(iflink); m_flag = !(m_flag & IFF_UP); } } else { printf(": "); } print_link_flags(ifi->ifi_flags, m_flag); } if (tb[IFLA_MTU]) printf("mtu %u ", *(int*)((void*)(((char*)(tb[IFLA_MTU])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0))))); if (tb[IFLA_QDISC]) printf("qdisc %s ", (char*)((void*)(((char*)(tb[IFLA_QDISC])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0))))); if (tb[IFLA_MASTER]) { char b1[64]; printf("master %s ", ll_idx_n2a(*(int*)((void*)(((char*)(tb[IFLA_MASTER])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), b1)); } # 175 "networking/libiproute/ipaddress.c" if ((*(filter_t*)&bb_common_bufsiz1).showqueue) print_queuelen((char*)((void*)(((char*)(tb[IFLA_IFNAME])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0))))); if (!(*(filter_t*)&bb_common_bufsiz1).family || (*(filter_t*)&bb_common_bufsiz1).family == 17) { char b1[64]; printf("%c link/%s ", _SL_, ll_type_n2a(ifi->ifi_type, b1)); if (tb[IFLA_ADDRESS]) { fputs_unlocked(ll_addr_n2a(((void*)(((char*)(tb[IFLA_ADDRESS])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), ((int)((tb[IFLA_ADDRESS])->rta_len) - (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0))), ifi->ifi_type, b1, sizeof(b1)), stdout) ; } if (tb[IFLA_BROADCAST]) { if (ifi->ifi_flags & IFF_POINTOPOINT) printf(" peer "); else printf(" brd "); fputs_unlocked(ll_addr_n2a(((void*)(((char*)(tb[IFLA_BROADCAST])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), ((int)((tb[IFLA_BROADCAST])->rta_len) - (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0))), ifi->ifi_type, b1, sizeof(b1)), stdout) ; } } bb_putchar('\n'); return 0; } static int flush_update(void) { if (rtnl_send((*(filter_t*)&bb_common_bufsiz1).rth, (*(filter_t*)&bb_common_bufsiz1).flushb, (*(filter_t*)&bb_common_bufsiz1).flushp) < 0) { bb_perror_msg("can't send flush request"); return -1; } (*(filter_t*)&bb_common_bufsiz1).flushp = 0; return 0; } static int print_addrinfo(const struct sockaddr_nl *who __attribute__ ((__unused__)), struct nlmsghdr *n, void *arg __attribute__ ((__unused__))) { struct ifaddrmsg *ifa = ((void*)(((char*)n) + ((0) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))))); int len = n->nlmsg_len; struct rtattr * rta_tb[(__IFA_MAX - 1)+1]; char abuf[256]; char b1[64]; if (n->nlmsg_type != RTM_NEWADDR && n->nlmsg_type != RTM_DELADDR) return 0; len -= ((sizeof(*ifa)) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))); if (len < 0) { bb_error_msg("wrong nlmsg len %d", len); return -1; } if ((*(filter_t*)&bb_common_bufsiz1).flushb && n->nlmsg_type != RTM_NEWADDR) return 0; memset(rta_tb, 0, sizeof(rta_tb)); parse_rtattr(rta_tb, (__IFA_MAX - 1), ((struct rtattr*)(((char*)(ifa)) + ( ((sizeof(struct ifaddrmsg))+4U -1) & ~(4U -1) ))), n->nlmsg_len - ((sizeof(*ifa)) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) )))); if (!rta_tb[IFA_LOCAL]) rta_tb[IFA_LOCAL] = rta_tb[IFA_ADDRESS]; if (!rta_tb[IFA_ADDRESS]) rta_tb[IFA_ADDRESS] = rta_tb[IFA_LOCAL]; if ((*(filter_t*)&bb_common_bufsiz1).ifindex && (*(filter_t*)&bb_common_bufsiz1).ifindex != ifa->ifa_index) return 0; if (((*(filter_t*)&bb_common_bufsiz1).scope ^ ifa->ifa_scope) & (*(filter_t*)&bb_common_bufsiz1).scopemask) return 0; if (((*(filter_t*)&bb_common_bufsiz1).flags ^ ifa->ifa_flags) & (*(filter_t*)&bb_common_bufsiz1).flagmask) return 0; if ((*(filter_t*)&bb_common_bufsiz1).label) { const char *label; if (rta_tb[IFA_LABEL]) label = ((void*)(((char*)(rta_tb[IFA_LABEL])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))); else label = ll_idx_n2a(ifa->ifa_index, b1); if (fnmatch((*(filter_t*)&bb_common_bufsiz1).label, label, 0) != 0) return 0; } if ((*(filter_t*)&bb_common_bufsiz1).pfx.family) { if (rta_tb[IFA_LOCAL]) { inet_prefix dst; memset(&dst, 0, sizeof(dst)); dst.family = ifa->ifa_family; memcpy(&dst.data, ((void*)(((char*)(rta_tb[IFA_LOCAL])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), ((int)((rta_tb[IFA_LOCAL])->rta_len) - (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))); if (inet_addr_match(&dst, &(*(filter_t*)&bb_common_bufsiz1).pfx, (*(filter_t*)&bb_common_bufsiz1).pfx.bitlen)) return 0; } } if ((*(filter_t*)&bb_common_bufsiz1).flushb) { struct nlmsghdr *fn; if (( (((*(filter_t*)&bb_common_bufsiz1).flushp)+4U -1) & ~(4U -1) ) + n->nlmsg_len > (*(filter_t*)&bb_common_bufsiz1).flushe) { if (flush_update()) return -1; } fn = (struct nlmsghdr*)((*(filter_t*)&bb_common_bufsiz1).flushb + ( (((*(filter_t*)&bb_common_bufsiz1).flushp)+4U -1) & ~(4U -1) )); memcpy(fn, n, n->nlmsg_len); fn->nlmsg_type = RTM_DELADDR; fn->nlmsg_flags = 1; fn->nlmsg_seq = ++(*(filter_t*)&bb_common_bufsiz1).rth->seq; (*(filter_t*)&bb_common_bufsiz1).flushp = (((char*)fn) + n->nlmsg_len) - (*(filter_t*)&bb_common_bufsiz1).flushb; (*(filter_t*)&bb_common_bufsiz1).flushed = 1; return 0; } if (n->nlmsg_type == RTM_DELADDR) printf("Deleted "); if ((*(filter_t*)&bb_common_bufsiz1).oneline) printf("%u: %s", ifa->ifa_index, ll_index_to_name(ifa->ifa_index)); if (ifa->ifa_family == 2) printf(" inet "); else if (ifa->ifa_family == 10) printf(" inet6 "); else printf(" family %d ", ifa->ifa_family); if (rta_tb[IFA_LOCAL]) { fputs_unlocked(rt_addr_n2a(ifa->ifa_family, ((void*)(((char*)(rta_tb[IFA_LOCAL])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), abuf, sizeof(abuf)), stdout) ; if (rta_tb[IFA_ADDRESS] == ((void *)0) || memcmp(((void*)(((char*)(rta_tb[IFA_ADDRESS])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), ((void*)(((char*)(rta_tb[IFA_LOCAL])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), 4) == 0 ) { printf("/%d ", ifa->ifa_prefixlen); } else { printf(" peer %s/%d ", rt_addr_n2a(ifa->ifa_family, ((void*)(((char*)(rta_tb[IFA_ADDRESS])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), abuf, sizeof(abuf)), ifa->ifa_prefixlen); } } if (rta_tb[IFA_BROADCAST]) { printf("brd %s ", rt_addr_n2a(ifa->ifa_family, ((void*)(((char*)(rta_tb[IFA_BROADCAST])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), abuf, sizeof(abuf)) ); } if (rta_tb[IFA_ANYCAST]) { printf("any %s ", rt_addr_n2a(ifa->ifa_family, ((void*)(((char*)(rta_tb[IFA_ANYCAST])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), abuf, sizeof(abuf)) ); } printf("scope %s ", rtnl_rtscope_n2a(ifa->ifa_scope, b1)); if (ifa->ifa_flags & 0x01) { ifa->ifa_flags &= ~0x01; printf("secondary "); } if (ifa->ifa_flags & 0x40) { ifa->ifa_flags &= ~0x40; printf("tentative "); } if (ifa->ifa_flags & 0x20) { ifa->ifa_flags &= ~0x20; printf("deprecated "); } if (!(ifa->ifa_flags & 0x80)) { printf("dynamic "); } else ifa->ifa_flags &= ~0x80; if (ifa->ifa_flags) printf("flags %02x ", ifa->ifa_flags); if (rta_tb[IFA_LABEL]) fputs_unlocked((char*)((void*)(((char*)(rta_tb[IFA_LABEL])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), stdout); if (rta_tb[IFA_CACHEINFO]) { struct ifa_cacheinfo *ci = ((void*)(((char*)(rta_tb[IFA_CACHEINFO])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))); char buf[128]; bb_putchar(_SL_); if (ci->ifa_valid == 0xFFFFFFFFU) sprintf(buf, "valid_lft forever"); else sprintf(buf, "valid_lft %dsec", ci->ifa_valid); if (ci->ifa_prefered == 0xFFFFFFFFU) sprintf(buf+strlen(buf), " preferred_lft forever"); else sprintf(buf+strlen(buf), " preferred_lft %dsec", ci->ifa_prefered); printf(" %s", buf); } bb_putchar('\n'); return 0; } struct nlmsg_list { struct nlmsg_list *next; struct nlmsghdr h; }; static int print_selected_addrinfo(int ifindex, struct nlmsg_list *ainfo) { for (; ainfo; ainfo = ainfo->next) { struct nlmsghdr *n = &ainfo->h; struct ifaddrmsg *ifa = ((void*)(((char*)n) + ((0) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))))); if (n->nlmsg_type != RTM_NEWADDR) continue; if (n->nlmsg_len < ((sizeof(ifa)) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) )))) return -1; if (ifa->ifa_index != ifindex || ((*(filter_t*)&bb_common_bufsiz1).family && (*(filter_t*)&bb_common_bufsiz1).family != ifa->ifa_family) ) { continue; } print_addrinfo(((void *)0), n, ((void *)0)); } return 0; } static int store_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) { struct nlmsg_list **linfo = (struct nlmsg_list**)arg; struct nlmsg_list *h; struct nlmsg_list **lp; h = xzalloc(n->nlmsg_len + sizeof(void*)); memcpy(&h->h, n, n->nlmsg_len); for (lp = linfo; *lp; lp = &(*lp)->next) continue; *lp = h; ll_remember_index(who, n, ((void *)0)); return 0; } static void ipaddr_reset_filter(int _oneline) { memset(&(*(filter_t*)&bb_common_bufsiz1), 0, sizeof((*(filter_t*)&bb_common_bufsiz1))); (*(filter_t*)&bb_common_bufsiz1).oneline = _oneline; } int ipaddr_list_or_flush(char **argv, int flush) { static const char option[] __attribute__((aligned(1))) = "to\0""scope\0""up\0""label\0""dev\0"; struct nlmsg_list *linfo = ((void *)0); struct nlmsg_list *ainfo = ((void *)0); struct nlmsg_list *l; struct rtnl_handle rth; char *filter_dev = ((void *)0); int no_link = 0; ipaddr_reset_filter(oneline); (*(filter_t*)&bb_common_bufsiz1).showqueue = 1; if ((*(filter_t*)&bb_common_bufsiz1).family == 0) (*(filter_t*)&bb_common_bufsiz1).family = preferred_family; if (flush) { if (!*argv) { bb_error_msg_and_die(bb_msg_requires_arg, "flush"); } if ((*(filter_t*)&bb_common_bufsiz1).family == 17) { bb_error_msg_and_die("can't flush link addresses"); } } while (*argv) { const smalluint key = index_in_strings(option, *argv); if (key == 0) { do { if (!*++argv) incomplete_command(); } while (0); get_prefix(&(*(filter_t*)&bb_common_bufsiz1).pfx, *argv, (*(filter_t*)&bb_common_bufsiz1).family); if ((*(filter_t*)&bb_common_bufsiz1).family == 0) { (*(filter_t*)&bb_common_bufsiz1).family = (*(filter_t*)&bb_common_bufsiz1).pfx.family; } } else if (key == 1) { uint32_t scope = 0; do { if (!*++argv) incomplete_command(); } while (0); (*(filter_t*)&bb_common_bufsiz1).scopemask = -1; if (rtnl_rtscope_a2n(&scope, *argv)) { if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (*argv) && __builtin_constant_p ("all") && (__s1_len = strlen (*argv), __s2_len = strlen ("all"), (!((size_t)(const void *)((*argv) + 1) - (size_t)(const void *)(*argv) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("all") + 1) - (size_t)(const void *)("all") == 1) || __s2_len >= 4)) ? __builtin_strcmp (*argv, "all") : (__builtin_constant_p (*argv) && ((size_t)(const void *)((*argv) + 1) - (size_t)(const void *)(*argv) == 1) && (__s1_len = strlen (*argv), __s1_len < 4) ? (__builtin_constant_p ("all") && ((size_t)(const void *)(("all") + 1) - (size_t)(const void *)("all") == 1) ? __builtin_strcmp (*argv, "all") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("all"); int __result = (((const unsigned char *) (const char *) (*argv))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (*argv))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (*argv))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (*argv))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("all") && ((size_t)(const void *)(("all") + 1) - (size_t)(const void *)("all") == 1) && (__s2_len = strlen ("all"), __s2_len < 4) ? (__builtin_constant_p (*argv) && ((size_t)(const void *)((*argv) + 1) - (size_t)(const void *)(*argv) == 1) ? __builtin_strcmp (*argv, "all") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (*argv); int __result = (((const unsigned char *) (const char *) ("all"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("all"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("all"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("all"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (*argv, "all")))); }) != 0) { invarg(*argv, "scope"); } scope = RT_SCOPE_NOWHERE; (*(filter_t*)&bb_common_bufsiz1).scopemask = 0; } (*(filter_t*)&bb_common_bufsiz1).scope = scope; } else if (key == 2) { (*(filter_t*)&bb_common_bufsiz1).up = 1; } else if (key == 3) { do { if (!*++argv) incomplete_command(); } while (0); (*(filter_t*)&bb_common_bufsiz1).label = *argv; } else { if (key == 4) do { if (!*++argv) incomplete_command(); } while (0); if (filter_dev) duparg2("dev", *argv); filter_dev = *argv; } argv++; } xrtnl_open(&rth); xrtnl_wilddump_request(&rth, preferred_family, RTM_GETLINK); xrtnl_dump_filter(&rth, store_nlmsg, &linfo); if (filter_dev) { (*(filter_t*)&bb_common_bufsiz1).ifindex = xll_name_to_index(filter_dev); } if (flush) { char flushb[4096-512]; (*(filter_t*)&bb_common_bufsiz1).flushb = flushb; (*(filter_t*)&bb_common_bufsiz1).flushp = 0; (*(filter_t*)&bb_common_bufsiz1).flushe = sizeof(flushb); (*(filter_t*)&bb_common_bufsiz1).rth = &rth; for (;;) { xrtnl_wilddump_request(&rth, (*(filter_t*)&bb_common_bufsiz1).family, RTM_GETADDR); (*(filter_t*)&bb_common_bufsiz1).flushed = 0; xrtnl_dump_filter(&rth, print_addrinfo, ((void *)0)); if ((*(filter_t*)&bb_common_bufsiz1).flushed == 0) { return 0; } if (flush_update() < 0) { return 1; } } } if ((*(filter_t*)&bb_common_bufsiz1).family != 17) { xrtnl_wilddump_request(&rth, (*(filter_t*)&bb_common_bufsiz1).family, RTM_GETADDR); xrtnl_dump_filter(&rth, store_nlmsg, &ainfo); } if ((*(filter_t*)&bb_common_bufsiz1).family && (*(filter_t*)&bb_common_bufsiz1).family != 17) { struct nlmsg_list **lp; lp = &linfo; if ((*(filter_t*)&bb_common_bufsiz1).oneline) no_link = 1; while ((l = *lp) != ((void *)0)) { int ok = 0; struct ifinfomsg *ifi = ((void*)(((char*)&l->h) + ((0) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))))); struct nlmsg_list *a; for (a = ainfo; a; a = a->next) { struct nlmsghdr *n = &a->h; struct ifaddrmsg *ifa = ((void*)(((char*)n) + ((0) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))))); if (ifa->ifa_index != ifi->ifi_index || ((*(filter_t*)&bb_common_bufsiz1).family && (*(filter_t*)&bb_common_bufsiz1).family != ifa->ifa_family) ) { continue; } if (((*(filter_t*)&bb_common_bufsiz1).scope ^ ifa->ifa_scope) & (*(filter_t*)&bb_common_bufsiz1).scopemask) continue; if (((*(filter_t*)&bb_common_bufsiz1).flags ^ ifa->ifa_flags) & (*(filter_t*)&bb_common_bufsiz1).flagmask) continue; if ((*(filter_t*)&bb_common_bufsiz1).pfx.family || (*(filter_t*)&bb_common_bufsiz1).label) { struct rtattr *tb[(__IFA_MAX - 1)+1]; memset(tb, 0, sizeof(tb)); parse_rtattr(tb, (__IFA_MAX - 1), ((struct rtattr*)(((char*)(ifa)) + ( ((sizeof(struct ifaddrmsg))+4U -1) & ~(4U -1) ))), ((n)->nlmsg_len - ( (((((sizeof(struct ifaddrmsg))) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))))+4U -1) & ~(4U -1) ))); if (!tb[IFA_LOCAL]) tb[IFA_LOCAL] = tb[IFA_ADDRESS]; if ((*(filter_t*)&bb_common_bufsiz1).pfx.family && tb[IFA_LOCAL]) { inet_prefix dst; memset(&dst, 0, sizeof(dst)); dst.family = ifa->ifa_family; memcpy(&dst.data, ((void*)(((char*)(tb[IFA_LOCAL])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), ((int)((tb[IFA_LOCAL])->rta_len) - (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))); if (inet_addr_match(&dst, &(*(filter_t*)&bb_common_bufsiz1).pfx, (*(filter_t*)&bb_common_bufsiz1).pfx.bitlen)) continue; } if ((*(filter_t*)&bb_common_bufsiz1).label) { char b1[64]; const char *label; if (tb[IFA_LABEL]) label = ((void*)(((char*)(tb[IFA_LABEL])) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))); else label = ll_idx_n2a(ifa->ifa_index, b1); if (fnmatch((*(filter_t*)&bb_common_bufsiz1).label, label, 0) != 0) continue; } } ok = 1; break; } if (!ok) *lp = l->next; else lp = &l->next; } } for (l = linfo; l; l = l->next) { if (no_link || print_linkinfo(&l->h) == 0) { struct ifinfomsg *ifi = ((void*)(((char*)&l->h) + ((0) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))))); if ((*(filter_t*)&bb_common_bufsiz1).family != 17) print_selected_addrinfo(ifi->ifi_index, ainfo); } } return 0; } static int default_scope(inet_prefix *lcl) { if (lcl->family == 2) { if (lcl->bytelen >= 1 && *(uint8_t*)&lcl->data == 127) return RT_SCOPE_HOST; } return 0; } static int ipaddr_modify(int cmd, char **argv) { static const char option[] __attribute__((aligned(1))) = "peer\0""remote\0""broadcast\0""brd\0" "anycast\0""scope\0""dev\0""label\0""local\0"; struct rtnl_handle rth; struct { struct nlmsghdr n; struct ifaddrmsg ifa; char buf[256]; } req; char *d = ((void *)0); char *l = ((void *)0); inet_prefix lcl; inet_prefix peer; int local_len = 0; int peer_len = 0; int brd_len = 0; int any_len = 0; _Bool scoped = 0; memset(&req, 0, sizeof(req)); req.n.nlmsg_len = ((sizeof(struct ifaddrmsg)) + ((int) ( ((sizeof(struct nlmsghdr))+4U -1) & ~(4U -1) ))); req.n.nlmsg_flags = 1; req.n.nlmsg_type = cmd; req.ifa.ifa_family = preferred_family; while (*argv) { const smalluint arg = index_in_strings(option, *argv); if (arg <= 1) { do { if (!*++argv) incomplete_command(); } while (0); if (peer_len) { duparg("peer", *argv); } get_prefix(&peer, *argv, req.ifa.ifa_family); peer_len = peer.bytelen; if (req.ifa.ifa_family == 0) { req.ifa.ifa_family = peer.family; } addattr_l(&req.n, sizeof(req), IFA_ADDRESS, &peer.data, peer.bytelen); req.ifa.ifa_prefixlen = peer.bitlen; } else if (arg <= 3) { inet_prefix addr; do { if (!*++argv) incomplete_command(); } while (0); if (brd_len) { duparg("broadcast", *argv); } if (((*argv)[0] == ('+') && !(*argv)[1])) { brd_len = -1; } else if (((*argv)[0] == '-' && !(*argv)[1])) { brd_len = -2; } else { get_addr(&addr, *argv, req.ifa.ifa_family); if (req.ifa.ifa_family == 0) req.ifa.ifa_family = addr.family; addattr_l(&req.n, sizeof(req), IFA_BROADCAST, &addr.data, addr.bytelen); brd_len = addr.bytelen; } } else if (arg == 4) { inet_prefix addr; do { if (!*++argv) incomplete_command(); } while (0); if (any_len) { duparg("anycast", *argv); } get_addr(&addr, *argv, req.ifa.ifa_family); if (req.ifa.ifa_family == 0) { req.ifa.ifa_family = addr.family; } addattr_l(&req.n, sizeof(req), IFA_ANYCAST, &addr.data, addr.bytelen); any_len = addr.bytelen; } else if (arg == 5) { uint32_t scope = 0; do { if (!*++argv) incomplete_command(); } while (0); if (rtnl_rtscope_a2n(&scope, *argv)) { invarg(*argv, "scope"); } req.ifa.ifa_scope = scope; scoped = 1; } else if (arg == 6) { do { if (!*++argv) incomplete_command(); } while (0); d = *argv; } else if (arg == 7) { do { if (!*++argv) incomplete_command(); } while (0); l = *argv; addattr_l(&req.n, sizeof(req), IFA_LABEL, l, strlen(l) + 1); } else { if (arg == 8) do { if (!*++argv) incomplete_command(); } while (0); if (local_len) { duparg2("local", *argv); } get_prefix(&lcl, *argv, req.ifa.ifa_family); if (req.ifa.ifa_family == 0) { req.ifa.ifa_family = lcl.family; } addattr_l(&req.n, sizeof(req), IFA_LOCAL, &lcl.data, lcl.bytelen); local_len = lcl.bytelen; } argv++; } if (!d) { bb_error_msg_and_die("need \"dev IFACE\""); } if (l && (__extension__ (__builtin_constant_p (strlen(d)) && ((__builtin_constant_p (d) && strlen (d) < ((size_t) (strlen(d)))) || (__builtin_constant_p (l) && strlen (l) < ((size_t) (strlen(d))))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (d) && __builtin_constant_p (l) && (__s1_len = strlen (d), __s2_len = strlen (l), (!((size_t)(const void *)((d) + 1) - (size_t)(const void *)(d) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((l) + 1) - (size_t)(const void *)(l) == 1) || __s2_len >= 4)) ? __builtin_strcmp (d, l) : (__builtin_constant_p (d) && ((size_t)(const void *)((d) + 1) - (size_t)(const void *)(d) == 1) && (__s1_len = strlen (d), __s1_len < 4) ? (__builtin_constant_p (l) && ((size_t)(const void *)((l) + 1) - (size_t)(const void *)(l) == 1) ? __builtin_strcmp (d, l) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (l); int __result = (((const unsigned char *) (const char *) (d))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (d))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (d))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (d))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (l) && ((size_t)(const void *)((l) + 1) - (size_t)(const void *)(l) == 1) && (__s2_len = strlen (l), __s2_len < 4) ? (__builtin_constant_p (d) && ((size_t)(const void *)((d) + 1) - (size_t)(const void *)(d) == 1) ? __builtin_strcmp (d, l) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (d); int __result = (((const unsigned char *) (const char *) (l))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (l))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (l))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (l))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (d, l)))); }) : strncmp (d, l, strlen(d)))) != 0) { bb_error_msg_and_die("\"dev\" (%s) must match \"label\" (%s)", d, l); } if (peer_len == 0 && local_len && cmd != RTM_DELADDR) { peer = lcl; addattr_l(&req.n, sizeof(req), IFA_ADDRESS, &lcl.data, lcl.bytelen); } if (req.ifa.ifa_prefixlen == 0) req.ifa.ifa_prefixlen = lcl.bitlen; if (brd_len < 0 && cmd != RTM_DELADDR) { inet_prefix brd; int i; if (req.ifa.ifa_family != 2) { bb_error_msg_and_die("broadcast can be set only for IPv4 addresses"); } brd = peer; if (brd.bitlen <= 30) { for (i=31; i>=brd.bitlen; i--) { if (brd_len == -1) brd.data[0] |= __bswap_32 (1<<(31-i)); else brd.data[0] &= ~__bswap_32 (1<<(31-i)); } addattr_l(&req.n, sizeof(req), IFA_BROADCAST, &brd.data, brd.bytelen); brd_len = brd.bytelen; } } if (!scoped && cmd != RTM_DELADDR) req.ifa.ifa_scope = default_scope(&lcl); xrtnl_open(&rth); ll_init_map(&rth); req.ifa.ifa_index = xll_name_to_index(d); if (rtnl_talk(&rth, &req.n, ((void *)0)) < 0) return 2; return 0; } int do_ipaddr(char **argv) { static const char commands[] __attribute__((aligned(1))) = "add\0""delete\0""list\0""show\0""lst\0""flush\0"; smalluint cmd = 2; if (*argv) { cmd = index_in_substrings(commands, *argv); if (cmd > 5) bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name); argv++; if (cmd <= 1) return ipaddr_modify((cmd == 0) ? RTM_NEWADDR : RTM_DELADDR, argv); } return ipaddr_list_or_flush(argv, cmd == 5); }