summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTias Guns <tias@ulyssis.org>2012-06-10 14:40:30 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2012-06-10 14:40:30 +0200
commitc9677ed83c948c9afb7f1bbd9bac91c854289887 (patch)
treef1e29d1e221b0ac256a0682c972af6e518e1eeae
parentbd01f22986c03c9cb951d5c54196c28e958a6cd4 (diff)
libbb: add missing_syscalls.c: for now, only Android syscalls
Signed-off-by: Tias Guns <tias@ulyssis.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--libbb/missing_syscalls.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
new file mode 100644
index 000000000..dd430e3e2
--- /dev/null
+++ b/libbb/missing_syscalls.c
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2012, Denys Vlasenko
+ *
+ * Licensed under GPLv2, see file LICENSE in this source tree.
+ */
+
+//kbuild:lib-y += missing_syscalls.o
+
+/*#include <linux/timex.h> - for struct timex, but may collide with <time.h> */
+#include <sys/syscall.h>
+#include "libbb.h"
+
+#if defined(ANDROID) || defined(__ANDROID__)
+pid_t getsid(pid_t pid)
+{
+ return syscall(__NR_getsid, pid);
+}
+
+int stime(const time_t *t)
+{
+ struct timeval tv;
+ tv.tv_sec = *t;
+ tv.tv_usec = 0;
+ return settimeofday(&tv, NULL);
+}
+
+int sethostname(const char *name, size_t len)
+{
+ return syscall(__NR_sethostname, name, len);
+}
+
+struct timex;
+int adjtimex(struct timex *buf)
+{
+ return syscall(__NR_adjtimex, buf);
+}
+
+int pivot_root(const char *new_root, const char *put_old)
+{
+ return syscall(__NR_pivot_root, new_root, put_old);
+}
+#endif