| Index: sysdeps/nacl/sysdep.h
|
| diff --git a/sysdeps/nacl/sysdep.h b/sysdeps/nacl/sysdep.h
|
| index 0f43b4dc5a0974f70b64446de5bc766d9b3fe843..9ab8a1a066c339f1283622bdfd362464b08f6fd1 100644
|
| --- a/sysdeps/nacl/sysdep.h
|
| +++ b/sysdeps/nacl/sysdep.h
|
| @@ -114,7 +114,7 @@ INTERNAL_SYSCALL_capset_2 (int *err, struct __user_cap_header_struct *hdrp,
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_chdir_1 (int *err, const char *path)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| + *err = __nacl_irt_chdir (path);
|
| return 0;
|
| }
|
|
|
| @@ -238,34 +238,38 @@ INTERNAL_SYSCALL_dup3_3 (int *err, int oldfd, int newfd, int flags)
|
| }
|
|
|
| __extern_always_inline int
|
| -INTERNAL_SYSCALL_epoll_create_1 (int *err, int flags)
|
| +INTERNAL_SYSCALL_epoll_create_1 (int *err, int size)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int fd;
|
| + *err = __nacl_irt_epoll_create (size, &fd);
|
| + return fd;
|
| }
|
|
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_epoll_create1_1 (int *err, int flags)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int fd;
|
| + *err = __nacl_irt_epoll_create1 (flags, &fd);
|
| + return fd;
|
| }
|
|
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_epoll_ctl_4 (int *err, int epfd, int op, int fd,
|
| struct epoll_event *event)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| + *err = __nacl_irt_epoll_ctl (epfd, op, fd, event);
|
| return 0;
|
| }
|
|
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_epoll_pwait_6 (int *err, int epfd, struct epoll_event *events,
|
| int maxevents, int timeout,
|
| - const sigset_t *sigmask, size_t sigsetsize)
|
| + const sigset_t *sigmask, size_t sigset_size)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int count;
|
| + *err = __nacl_irt_epoll_pwait (epfd, events, maxevents, timeout, sigmask,
|
| + sigset_size, &count);
|
| + return count;
|
| }
|
|
|
| __extern_always_inline int
|
| @@ -280,8 +284,9 @@ __extern_always_inline int
|
| INTERNAL_SYSCALL_epoll_wait_4 (int *err, int epfd, struct epoll_event *events,
|
| int maxevents, int timeout)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int count;
|
| + *err = __nacl_irt_epoll_wait (epfd, events, maxevents, timeout, &count);
|
| + return count;
|
| }
|
|
|
| __extern_always_inline int
|
| @@ -588,8 +593,9 @@ INTERNAL_SYSCALL_getcpu_3 (int *err, unsigned *cpu, unsigned *node,
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_getcwd_2 (int *err, char *buf, size_t size)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int len;
|
| + *err = __nacl_irt_getcwd (buf, size, &len);
|
| + return len;
|
| }
|
|
|
| __extern_always_inline gid_t
|
| @@ -915,7 +921,7 @@ INTERNAL_SYSCALL_mincore_3 (int *err, void *addr, size_t length,
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_mkdir_2 (int *err, const char *pathname, mode_t mode)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| + *err = __nacl_irt_mkdir (pathname, mode);
|
| return 0;
|
| }
|
|
|
| @@ -1163,17 +1169,19 @@ INTERNAL_SYSCALL_pivot_root_2 (int *err, const char *new_root,
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_poll_3 (int *err, struct pollfd *fds, nfds_t nfds, int timeout)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int count;
|
| + *err = __nacl_irt_poll (fds, nfds, timeout, &count);
|
| + return count;
|
| }
|
|
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_ppoll_5 (int *err, struct pollfd *fds, nfds_t nfds,
|
| const struct timespec *timeout,
|
| - const sigset_t *sigmask, size_t sigsetsize)
|
| + const sigset_t *sigmask, size_t sigset_size)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int count;
|
| + *err = __nacl_irt_ppoll (fds, nfds, timeout, sigmask, sigset_size, &count);
|
| + return count;
|
| }
|
|
|
| __extern_always_inline int
|
| @@ -1187,12 +1195,14 @@ INTERNAL_SYSCALL_prctl_5 (int *err, int option, unsigned long arg2,
|
|
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_pselect6_6 (int *err, int nfds, fd_set *readfds,
|
| - fd_set *writefds, fd_set *exceptfds,
|
| - const struct timespec *timeout,
|
| - void *sigmask)
|
| + fd_set *writefds, fd_set *exceptfds,
|
| + const struct timeval *timeout,
|
| + void *sigmask)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int count;
|
| + *err = __nacl_irt_pselect (nfds, readfds, writefds, exceptfds, timeout,
|
| + sigmask, &count);
|
| + return count;
|
| }
|
|
|
| __extern_always_inline long
|
| @@ -1305,7 +1315,7 @@ INTERNAL_SYSCALL_renameat_4 (int *err, int olddfd, const char *oldname,
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_rmdir_1 (int *err, const char *pathname)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| + *err = __nacl_irt_rmdir (pathname);
|
| return 0;
|
| }
|
|
|
| @@ -1427,8 +1437,9 @@ INTERNAL_SYSCALL_select_5 (int *err, int nfds, fd_set *readfds,
|
| fd_set *writefds, fd_set *exceptfds,
|
| const struct timeval *timeout)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| - return 0;
|
| + int count;
|
| + *err = __nacl_irt_select (nfds, readfds, writefds, exceptfds, timeout, &count);
|
| + return count;
|
| }
|
|
|
| __extern_always_inline int
|
| @@ -1649,10 +1660,141 @@ INTERNAL_SYSCALL_signalfd_3 (int *err, int fd, const sigset_t *mask,
|
| __extern_always_inline int
|
| INTERNAL_SYSCALL_socket_3 (int *err, int domain, int type, int protocol)
|
| {
|
| - *err = (38 /* ENOSYS */);
|
| + int sd;
|
| + *err = __nacl_irt_socket (domain, type, protocol, &sd);
|
| + return sd;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_accept_3 (int *err, int sockfd, struct sockaddr* addr,
|
| + socklen_t* addr_len)
|
| +{
|
| + int sd;
|
| + *err = __nacl_irt_accept (sockfd, addr, addr_len, &sd);
|
| + return sd;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_bind_3 (int *err, int sockfd, struct sockaddr* addr,
|
| + socklen_t addr_len)
|
| +{
|
| + *err = __nacl_irt_bind (sockfd, addr, addr_len);
|
| return 0;
|
| }
|
|
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_getpeername_3 (int *err, int sockfd, struct sockaddr* addr,
|
| + socklen_t* addr_len)
|
| +{
|
| + *err = __nacl_irt_getpeername (sockfd, addr, addr_len);
|
| + return 0;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_getsockname_3 (int *err, int sockfd, struct sockaddr* addr,
|
| + socklen_t* addr_len)
|
| +{
|
| + *err = __nacl_irt_getsockname (sockfd, addr, addr_len);
|
| + return 0;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_getsockopt_5 (int *err, int sockfd, int level, int optname,
|
| + void *optval, socklen_t *optlen)
|
| +{
|
| + *err = __nacl_irt_getsockopt (sockfd, level, optname, optval, optlen);
|
| + return 0;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_setsockopt_5 (int *err, int sockfd, int level, int optname,
|
| + const void *optval, socklen_t optlen)
|
| +{
|
| + *err = __nacl_irt_setsockopt (sockfd, level, optname, optval, optlen);
|
| + return 0;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_listen_2 (int *err, int sockfd, int backlog)
|
| +{
|
| + *err = __nacl_irt_listen (sockfd, backlog);
|
| + return 0;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_connect_3 (int *err, int sockfd, struct sockaddr* addr,
|
| + socklen_t addr_len)
|
| +{
|
| + *err = __nacl_irt_connect (sockfd, addr, addr_len);
|
| + return 0;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_socketpair_4 (int *err, int domain, int type, int protocol,
|
| + int sv[2])
|
| +{
|
| + *err = __nacl_irt_socketpair (domain, type, protocol, sv);
|
| + return 0;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_shutdown_2 (int *err, int sockfd, int how)
|
| +{
|
| + *err = __nacl_irt_shutdown (sockfd, how);
|
| + return 0;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_send_4 (int *err, int sockfd, const void *buf, size_t len, int flags)
|
| +{
|
| + int ret;
|
| + *err = __nacl_irt_send (sockfd, buf, len, flags, &ret);
|
| + return ret;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_sendto_6 (int *err, int sockfd, const void *buf, size_t len,
|
| + int flags, const struct sockaddr *dest_addr,
|
| + socklen_t addrlen)
|
| +{
|
| + int ret;
|
| + *err = __nacl_irt_sendto (sockfd, buf, len, flags, dest_addr, addrlen, &ret);
|
| + return ret;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_recv_4 (int *err, int sockfd, void *buf, size_t len, int flags)
|
| +{
|
| + int ret;
|
| + *err = __nacl_irt_recv (sockfd, buf, len, flags, &ret);
|
| + return ret;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_recvfrom_6 (int *err, int sockfd, void *buf, size_t len, int flags,
|
| + struct sockaddr *dest_addr, socklen_t *addrlen)
|
| +{
|
| + int ret;
|
| + *err = __nacl_irt_recvfrom (sockfd, buf, len, flags, dest_addr, addrlen, &ret);
|
| + return ret;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_sendmsg_3 (int *err, int sockfd, const struct msghdr *msg, int flags)
|
| +{
|
| + int ret;
|
| + *err = __nacl_irt_sendmsg (sockfd, msg, flags, &ret);
|
| + return ret;
|
| +}
|
| +
|
| +__extern_always_inline int
|
| +INTERNAL_SYSCALL_recvmsg_3 (int *err, int sockfd, struct msghdr *msg, int flags)
|
| +{
|
| + int ret;
|
| + *err = __nacl_irt_recvmsg (sockfd, msg, flags, &ret);
|
| + return ret;
|
| +}
|
| +
|
| __extern_always_inline ssize_t
|
| INTERNAL_SYSCALL_splice_6 (int *err, int fd_in, loff_t *off_in, int fd_out,
|
| loff_t *off_out, size_t len, unsigned int flags)
|
|
|