Add chmod/chown/poll/ioctl/utimes/fabs
Adds __ioctol.c, chmod.c, chown.c, poll.c and utimes.c.
Removes enosys definitions from libc_common_stubs and enosys.c
Adds fabs to libm.
diff --git a/libc/Makefile b/libc/Makefile
index 813afdc..a62205d 100644
--- a/libc/Makefile
+++ b/libc/Makefile
@@ -362,6 +362,8 @@
arch-nacl/syscalls/access.c \
arch-nacl/syscalls/bind.c \
arch-nacl/syscalls/chdir.c \
+ arch-nacl/syscalls/chmod.c \
+ arch-nacl/syscalls/chown.c \
arch-nacl/syscalls/clock_getres.c \
arch-nacl/syscalls/clock_gettime.c \
arch-nacl/syscalls/close.c \
@@ -386,6 +388,7 @@
arch-nacl/syscalls/gettid.c \
arch-nacl/syscalls/gettimeofday.c \
arch-nacl/syscalls/getuid.c \
+ arch-nacl/syscalls/__ioctl.c \
arch-nacl/syscalls/kill.c \
arch-nacl/syscalls/listen.c \
arch-nacl/syscalls/lseek.c \
@@ -405,6 +408,7 @@
arch-nacl/syscalls/nacl_timeval.c \
arch-nacl/syscalls/nanosleep.c \
arch-nacl/syscalls/__open.c \
+ arch-nacl/syscalls/poll.c \
arch-nacl/syscalls/pipe.c \
arch-nacl/syscalls/read.c \
arch-nacl/syscalls/recvfrom.c \
@@ -422,6 +426,7 @@
arch-nacl/syscalls/symlink.c \
arch-nacl/syscalls/truncate.c \
arch-nacl/syscalls/unlink.c \
+ arch-nacl/syscalls/utimes.c \
arch-nacl/syscalls/write.c \
arch-nacl/syscalls/writev.c \
arch-nacl/tmp/libc_common_stubs.c \
diff --git a/libc/arch-nacl/syscalls/__ioctl.c b/libc/arch-nacl/syscalls/__ioctl.c
new file mode 100644
index 0000000..805fe6d
--- /dev/null
+++ b/libc/arch-nacl/syscalls/__ioctl.c
@@ -0,0 +1,11 @@
+// Copyright 2014 Google Inc. All Rights Reserved
+
+#include <errno.h>
+#include <irt_syscalls.h>
+#include <unistd.h>
+
+int __ioctl(int fd, mode_t mode) {
+ errno = ENOSYS;
+ return -1;
+}
+
diff --git a/libc/arch-nacl/syscalls/chmod.c b/libc/arch-nacl/syscalls/chmod.c
new file mode 100644
index 0000000..f52c2ed
--- /dev/null
+++ b/libc/arch-nacl/syscalls/chmod.c
@@ -0,0 +1,11 @@
+// Copyright 2014 Google Inc. All Rights Reserved.auto
+
+#include <errno.h>
+#include <irt_syscalls.h>
+#include <unistd.h>
+
+int chmod(const char* name, mode_t mode) {
+ errno = ENOSYS;
+ return -1;
+}
+
diff --git a/libc/arch-nacl/syscalls/chown.c b/libc/arch-nacl/syscalls/chown.c
new file mode 100644
index 0000000..01f564c
--- /dev/null
+++ b/libc/arch-nacl/syscalls/chown.c
@@ -0,0 +1,11 @@
+// Copyright 2014 Google Inc. All Rights Reserved.auto
+
+#include <errno.h>
+#include <irt_syscalls.h>
+#include <unistd.h>
+
+int chown(const char* name, uid_t uid, gid_t gid) {
+ errno = ENOSYS;
+ return -1;
+}
+
diff --git a/libc/arch-nacl/syscalls/enosys.c b/libc/arch-nacl/syscalls/enosys.c
index 80a973a..14621e9 100644
--- a/libc/arch-nacl/syscalls/enosys.c
+++ b/libc/arch-nacl/syscalls/enosys.c
@@ -41,12 +41,9 @@
DEFINE_ENOSYS_SYSCALL(void *, __brk, void *addr)
DEFINE_ENOSYS_SYSCALL(int, __fcntl64, int fd, int cmd, ...)
DEFINE_ENOSYS_SYSCALL(pid_t, __fork, void)
-DEFINE_ENOSYS_SYSCALL(int, __ioctl, int d, int request, ...)
DEFINE_ENOSYS_SYSCALL(long, __ptrace, int request, pid_t pid,
void *addr, void *data)
DEFINE_ENOSYS_SYSCALL(int, __sigsuspend, const sigset_t *mask)
-DEFINE_ENOSYS_SYSCALL(int, chmod, const char *path, mode_t mode);
-DEFINE_ENOSYS_SYSCALL(int, chown, const char *path, uid_t owner, gid_t group);
DEFINE_ENOSYS_SYSCALL(int, execve, const char *filename, char *const argv[],
char *const envp[])
@@ -95,6 +92,4 @@
DEFINE_ENOSYS_SYSCALL(int, unlinkat,
int dirfd, const char *pathname, int flags)
DEFINE_ENOSYS_SYSCALL(int, unshare, int flags)
-DEFINE_ENOSYS_SYSCALL(int, utimes, const char *filename,
- const struct timeval *times)
DEFINE_ENOSYS_SYSCALL(pid_t, vfork, void)
diff --git a/libc/arch-nacl/syscalls/irt_poll.h b/libc/arch-nacl/syscalls/irt_poll.h
index d1daf99..c32bde6 100644
--- a/libc/arch-nacl/syscalls/irt_poll.h
+++ b/libc/arch-nacl/syscalls/irt_poll.h
@@ -43,7 +43,7 @@
*/
#define NACL_IRT_DEV_POLL_v0_1 "nacl-irt-dev-poll-0.1"
struct nacl_irt_dev_poll {
- int (*poll)(struct NaClPollFD* fds, size_t nfds, int timeout);
+ int (*poll)(struct NaClPollFD* fds, size_t nfds, int timeout, int* cnt);
int (*select)(size_t nfds, struct NaClFDSet* readfds,
struct NaClFDSet* writefds, struct NaClFDSet* exceptfds,
struct timeval* timeout);
diff --git a/libc/arch-nacl/syscalls/poll.c b/libc/arch-nacl/syscalls/poll.c
new file mode 100644
index 0000000..fd35a6c
--- /dev/null
+++ b/libc/arch-nacl/syscalls/poll.c
@@ -0,0 +1,17 @@
+// Copyright 2014 Google Inc. All Rights Reserved
+
+#include <errno.h>
+#include <irt_syscalls.h>
+#include <poll.h>
+
+int poll(struct pollfd *p, nfds_t cnt, long timeout) {
+ ENOSYS_IF_NULL(__nacl_irt_poll)
+ int count = 0;
+
+ int result = __nacl_irt_poll(p, cnt, timeout, &count);
+ if (result != 0) {
+ errno = __nacl_abi_errno_to_errno(result);
+ return -1;
+ }
+ return count;
+}
diff --git a/libc/arch-nacl/syscalls/utimes.c b/libc/arch-nacl/syscalls/utimes.c
new file mode 100644
index 0000000..70b203b
--- /dev/null
+++ b/libc/arch-nacl/syscalls/utimes.c
@@ -0,0 +1,10 @@
+// Copyright 2014 Google Inc. All Rights Reserved
+
+#include <errno.h>
+#include <sys/types.h>
+#include <utime.h>
+
+int utimes(const char *filename, const struct timeval *times) {
+ errno = ENOSYS;
+ return -1;
+}
\ No newline at end of file
diff --git a/libc/arch-nacl/tmp/libc_common_stubs.c b/libc/arch-nacl/tmp/libc_common_stubs.c
index ee50cea..ebe65a6 100644
--- a/libc/arch-nacl/tmp/libc_common_stubs.c
+++ b/libc/arch-nacl/tmp/libc_common_stubs.c
@@ -15,4 +15,3 @@
DEFINE_STUB(__futex_wait)
DEFINE_STUB(__futex_wake)
-DEFINE_STUB(poll)
diff --git a/libm/Makefile b/libm/Makefile
index 7ba660d..d73201b 100644
--- a/libm/Makefile
+++ b/libm/Makefile
@@ -30,7 +30,7 @@
s_asinh.c s_asinhf.c s_atan.c s_atanf.c s_cbrt.c s_cbrtf.c \
s_ceil.c s_ceilf.c s_ceill.c \
s_copysign.c s_copysignf.c s_cos.c s_cosf.c s_erf.c s_erff.c \
- s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c s_fabsf.c s_fdim.c \
+ s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c s_fabs.c s_fabsf.c s_fdim.c \
s_finite.c s_finitef.c \
s_floor.c s_floorf.c s_floorl.c s_fma.c s_fmaf.c \
s_fmax.c s_fmaxf.c s_fmaxl.c s_fmin.c \