96 lines
2.3 KiB
C
96 lines
2.3 KiB
C
/* 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 <libgen.h>
|
|
|
|
#if ENABLE_FEATURE_DC_LIBM
|
|
# include <math.h>
|
|
#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 <fcntl.h>
|
|
#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
|