/* vi: set sw=4 ts=4: */ /* Copyright 2010, Dylan Simon Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */ #ifndef BB_ANDROID_H #define BB_ANDROID_H 1 /* for dirname, basename */ #include #if ENABLE_FEATURE_DC_LIBM # include #endif /* lutimes doesnt exists in libc */ #if ENABLE_FEATURE_TOUCH_NODEREF # define lutimes utimes #endif #define killpg_busybox(P, S) kill(-(P), S) #define setmntent fopen #define endmntent fclose /* defined in bionic/utmp.c */ void endutent(void); /* defined in bionic/mktemp.c */ char *mkdtemp(char *); char *bb_mktemp(char *); /* SYSCALLS */ int stime(const time_t *); int swapon(const char *, int); int swapoff(const char *); int getsid(pid_t); #ifndef SYS_ioprio_set #define SYS_ioprio_set __NR_ioprio_set #define SYS_ioprio_get __NR_ioprio_get #endif /* XXX These need to be obtained from kernel headers. See b/9336527 */ #define SWAP_FLAG_PREFER 0x8000 #define SWAP_FLAG_PRIO_MASK 0x7fff #define SWAP_FLAG_PRIO_SHIFT 0 #define SWAP_FLAG_DISCARD 0x10000 /* local definition in libbb/xfuncs_printf.c */ int fdprintf(int fd, const char *format, ...); /* local definitions in android/libc/pty.c */ #include #ifndef SPLICE_F_GIFT /* if this constant is not defined, ttyname is not in bionic */ char* bb_ttyname(int); int bb_ttyname_r(int, char *, size_t); #define ttyname(n) bb_ttyname(n) #define ttyname_r(n,s,z) bb_ttyname_r(n,s,z) #else /* should be available in android M ? */ extern char* ttyname(int); extern int ttyname_r(int, char *, size_t); #endif /* local definitions in android/android.c */ char *getusershell(void); void setusershell(void); void endusershell(void); struct mntent; struct __sFILE; int addmntent(struct __sFILE *, const struct mntent *); struct mntent *getmntent_r(struct __sFILE *fp, struct mntent *mnt, char *buf, int buflen); char *hasmntopt(const struct mntent *, const char *); #define MNTOPT_NOAUTO "noauto" /* bionic's vfork is rather broken; for now a terrible bandaid: */ #define vfork fork #if !defined(BIONIC_L) && !defined(BLOATCHECK) #define _SOCKLEN_T_DECLARED typedef int socklen_t; #endif /* wait3 was removed in android L */ #ifdef BIONIC_L #define wait3(status, options, rusage) wait4(-1, status, options, rusage) #endif #endif