Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: sysdeps/nacl/sysdep.h

Issue 9969049: added several system call hooks for future sockets implementation (Closed) Base URL: http://git.chromium.org/native_client/nacl-glibc.git@master
Patch Set: fixed warnings Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sysdeps/nacl/syscalls.list ('k') | sysdeps/unix/make-syscalls.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #ifndef _NACL_SYSDEP_H 1 #ifndef _NACL_SYSDEP_H
2 #define _NACL_SYSDEP_H 1 2 #define _NACL_SYSDEP_H 1
3 3
4 #if !defined(__ASSEMBLER__) 4 #if !defined(__ASSEMBLER__)
5 #include <futex_emulation.h> 5 #include <futex_emulation.h>
6 #include <irt_syscalls.h> 6 #include <irt_syscalls.h>
7 #include <lowlevellock.h> 7 #include <lowlevellock.h>
8 8
9 /* Implementation of all syscalls for use in platform- and OS- independent code 9 /* Implementation of all syscalls for use in platform- and OS- independent code
10 as inline functions. Each function translates the syscall arguments into IRT 10 as inline functions. Each function translates the syscall arguments into IRT
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 } 231 }
232 232
233 __extern_always_inline int 233 __extern_always_inline int
234 INTERNAL_SYSCALL_dup3_3 (int *err, int oldfd, int newfd, int flags) 234 INTERNAL_SYSCALL_dup3_3 (int *err, int oldfd, int newfd, int flags)
235 { 235 {
236 *err = (38 /* ENOSYS */); 236 *err = (38 /* ENOSYS */);
237 return 0; 237 return 0;
238 } 238 }
239 239
240 __extern_always_inline int 240 __extern_always_inline int
241 INTERNAL_SYSCALL_epoll_create_1 (int *err, int flags) 241 INTERNAL_SYSCALL_epoll_create_1 (int *err, int size)
242 { 242 {
243 *err = (38 /* ENOSYS */); 243 *err = __nacl_irt_epoll_create (size);
244 return 0; 244 return 0;
245 } 245 }
246 246
247 __extern_always_inline int 247 __extern_always_inline int
248 INTERNAL_SYSCALL_epoll_create1_1 (int *err, int flags) 248 INTERNAL_SYSCALL_epoll_create1_1 (int *err, int flags)
249 { 249 {
250 *err = (38 /* ENOSYS */); 250 *err = __nacl_irt_epoll_create1 (flags);
251 return 0; 251 return 0;
252 } 252 }
253 253
254 __extern_always_inline int 254 __extern_always_inline int
255 INTERNAL_SYSCALL_epoll_ctl_4 (int *err, int epfd, int op, int fd, 255 INTERNAL_SYSCALL_epoll_ctl_4 (int *err, int epfd, int op, int fd,
256 struct epoll_event *event) 256 struct epoll_event *event)
257 { 257 {
258 *err = (38 /* ENOSYS */); 258 *err = __nacl_irt_epoll_ctl (epfd, op, fd, event);
259 return 0; 259 return 0;
260 } 260 }
261 261
262 __extern_always_inline int 262 __extern_always_inline int
263 INTERNAL_SYSCALL_epoll_pwait_6 (int *err, int epfd, struct epoll_event *events, 263 INTERNAL_SYSCALL_epoll_pwait_6 (int *err, int epfd, struct epoll_event *events,
264 int maxevents, int timeout, 264 int maxevents, int timeout,
265 » » » » const sigset_t *sigmask, size_t sigsetsize) 265 » » » » const sigset_t *sigmask, size_t sigset_size)
266 { 266 {
267 *err = (38 /* ENOSYS */); 267 *err = __nacl_irt_epoll_pwait (epfd, events, maxevents, timeout, sigmask,
268 sigset_size);
268 return 0; 269 return 0;
269 } 270 }
270 271
271 __extern_always_inline int 272 __extern_always_inline int
272 INTERNAL_SYSCALL_execve_3 (int *err, const char *filename, char *const argv[], 273 INTERNAL_SYSCALL_execve_3 (int *err, const char *filename, char *const argv[],
273 char *const envp[]) 274 char *const envp[])
274 { 275 {
275 *err = (38 /* ENOSYS */); 276 *err = (38 /* ENOSYS */);
276 return 0; 277 return 0;
277 } 278 }
278 279
279 __extern_always_inline int 280 __extern_always_inline int
280 INTERNAL_SYSCALL_epoll_wait_4 (int *err, int epfd, struct epoll_event *events, 281 INTERNAL_SYSCALL_epoll_wait_4 (int *err, int epfd, struct epoll_event *events,
281 int maxevents, int timeout) 282 int maxevents, int timeout)
282 { 283 {
283 *err = (38 /* ENOSYS */); 284 *err = (38 /* ENOSYS */);
285 *err = __nacl_irt_epoll_wait (epfd, events, maxevents, timeout);
284 return 0; 286 return 0;
285 } 287 }
286 288
287 __extern_always_inline int 289 __extern_always_inline int
288 INTERNAL_SYSCALL_eventfd2_2 (int *err, unsigned int initval, int flags) 290 INTERNAL_SYSCALL_eventfd2_2 (int *err, unsigned int initval, int flags)
289 { 291 {
290 *err = (38 /* ENOSYS */); 292 *err = (38 /* ENOSYS */);
291 return 0; 293 return 0;
292 } 294 }
293 295
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 INTERNAL_SYSCALL_pivot_root_2 (int *err, const char *new_root, 1159 INTERNAL_SYSCALL_pivot_root_2 (int *err, const char *new_root,
1158 const char *put_old) 1160 const char *put_old)
1159 { 1161 {
1160 *err = (38 /* ENOSYS */); 1162 *err = (38 /* ENOSYS */);
1161 return 0; 1163 return 0;
1162 } 1164 }
1163 1165
1164 __extern_always_inline int 1166 __extern_always_inline int
1165 INTERNAL_SYSCALL_poll_3 (int *err, struct pollfd *fds, nfds_t nfds, int timeout) 1167 INTERNAL_SYSCALL_poll_3 (int *err, struct pollfd *fds, nfds_t nfds, int timeout)
1166 { 1168 {
1167 *err = (38 /* ENOSYS */); 1169 *err = __nacl_irt_poll (fds, nfds, timeout);
1168 return 0; 1170 return 0;
1169 } 1171 }
1170 1172
1171 __extern_always_inline int 1173 __extern_always_inline int
1172 INTERNAL_SYSCALL_ppoll_5 (int *err, struct pollfd *fds, nfds_t nfds, 1174 INTERNAL_SYSCALL_ppoll_5 (int *err, struct pollfd *fds, nfds_t nfds,
1173 const struct timespec *timeout, 1175 const struct timespec *timeout,
1174 » » » const sigset_t *sigmask, size_t sigsetsize) 1176 » » » const sigset_t *sigmask, size_t sigset_size)
1175 { 1177 {
1176 *err = (38 /* ENOSYS */); 1178 *err = __nacl_irt_ppoll (fds, nfds, timeout, sigmask, sigset_size);
1177 return 0; 1179 return 0;
1178 } 1180 }
1179 1181
1180 __extern_always_inline int 1182 __extern_always_inline int
1181 INTERNAL_SYSCALL_prctl_5 (int *err, int option, unsigned long arg2, 1183 INTERNAL_SYSCALL_prctl_5 (int *err, int option, unsigned long arg2,
1182 unsigned long arg3, unsigned long arg4, 1184 unsigned long arg3, unsigned long arg4,
1183 unsigned long arg5) 1185 unsigned long arg5)
1184 { 1186 {
1185 *err = (38 /* ENOSYS */); 1187 *err = (38 /* ENOSYS */);
1186 return 0; 1188 return 0;
1187 } 1189 }
1188 1190
1189 __extern_always_inline int 1191 __extern_always_inline int
1190 INTERNAL_SYSCALL_pselect6_6 (int *err, int nfds, fd_set *readfds, 1192 INTERNAL_SYSCALL_pselect6_6 (int *err, int nfds, fd_set *readfds,
1191 » » » fd_set *writefds, fd_set *exceptfds, 1193 fd_set *writefds, fd_set *exceptfds,
1192 » » » const struct timespec *timeout, 1194 const struct timeval *timeout,
1193 » » » void *sigmask) 1195 void *sigmask)
1194 { 1196 {
1195 *err = (38 /* ENOSYS */); 1197 *err = __nacl_irt_pselect (nfds, readfds, writefds, exceptfds, timeout,
1198 sigmask);
1196 return 0; 1199 return 0;
1197 } 1200 }
1198 1201
1199 __extern_always_inline long 1202 __extern_always_inline long
1200 INTERNAL_SYSCALL_ptrace_4 (int *err, enum __ptrace_request request, pid_t pid, 1203 INTERNAL_SYSCALL_ptrace_4 (int *err, enum __ptrace_request request, pid_t pid,
1201 void *addr, void *data) 1204 void *addr, void *data)
1202 { 1205 {
1203 *err = (38 /* ENOSYS */); 1206 *err = (38 /* ENOSYS */);
1204 return 0; 1207 return 0;
1205 } 1208 }
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 } 1424 }
1422 1425
1423 #ifdef __i386__ 1426 #ifdef __i386__
1424 #define INTERNAL_SYSCALL_select_5 INTERNAL_SYSCALL__newselect_5 1427 #define INTERNAL_SYSCALL_select_5 INTERNAL_SYSCALL__newselect_5
1425 #endif 1428 #endif
1426 __extern_always_inline int 1429 __extern_always_inline int
1427 INTERNAL_SYSCALL_select_5 (int *err, int nfds, fd_set *readfds, 1430 INTERNAL_SYSCALL_select_5 (int *err, int nfds, fd_set *readfds,
1428 fd_set *writefds, fd_set *exceptfds, 1431 fd_set *writefds, fd_set *exceptfds,
1429 const struct timeval *timeout) 1432 const struct timeval *timeout)
1430 { 1433 {
1431 *err = (38 /* ENOSYS */); 1434 *err = __nacl_irt_select (nfds, readfds, writefds, exceptfds, timeout);
1432 return 0; 1435 return 0;
1433 } 1436 }
1434 1437
1435 __extern_always_inline int 1438 __extern_always_inline int
1436 INTERNAL_SYSCALL_semctl_4 (int *err, int semid, int semnum, int cmd, 1439 INTERNAL_SYSCALL_semctl_4 (int *err, int semid, int semnum, int cmd,
1437 #ifdef _SEM_SEMUN_UNDEFINED 1440 #ifdef _SEM_SEMUN_UNDEFINED
1438 int semun) 1441 int semun)
1439 #else 1442 #else
1440 union semun semun) 1443 union semun semun)
1441 #endif 1444 #endif
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1643 __extern_always_inline int 1646 __extern_always_inline int
1644 INTERNAL_SYSCALL_signalfd_3 (int *err, int fd, const sigset_t *mask, 1647 INTERNAL_SYSCALL_signalfd_3 (int *err, int fd, const sigset_t *mask,
1645 size_t sigsetsize) 1648 size_t sigsetsize)
1646 { 1649 {
1647 return INTERNAL_SYSCALL_signalfd4_4 (err, fd, mask, sigsetsize, 0); 1650 return INTERNAL_SYSCALL_signalfd4_4 (err, fd, mask, sigsetsize, 0);
1648 } 1651 }
1649 1652
1650 __extern_always_inline int 1653 __extern_always_inline int
1651 INTERNAL_SYSCALL_socket_3 (int *err, int domain, int type, int protocol) 1654 INTERNAL_SYSCALL_socket_3 (int *err, int domain, int type, int protocol)
1652 { 1655 {
1653 *err = (38 /* ENOSYS */); 1656 *err = __nacl_irt_socket (domain, type, protocol);
1654 return 0; 1657 return 0;
1655 } 1658 }
1656 1659
1660 __extern_always_inline int
1661 INTERNAL_SYSCALL_accept_3 (int *err, int sockfd, struct sockaddr* addr,
1662 socklen_t* addr_len)
1663 {
1664 *err = __nacl_irt_accept (sockfd, addr, addr_len);
1665 return 0;
1666 }
1667
1668 __extern_always_inline int
1669 INTERNAL_SYSCALL_bind_3 (int *err, int sockfd, struct sockaddr* addr,
1670 socklen_t addr_len)
1671 {
1672 *err = __nacl_irt_bind (sockfd, addr, addr_len);
1673 return 0;
1674 }
1675
1676 __extern_always_inline int
1677 INTERNAL_SYSCALL_getpeername_3 (int *err, int sockfd, struct sockaddr* addr,
1678 socklen_t* addr_len)
1679 {
1680 *err = __nacl_irt_getpeername (sockfd, addr, addr_len);
1681 return 0;
1682 }
1683
1684 __extern_always_inline int
1685 INTERNAL_SYSCALL_getsockname_3 (int *err, int sockfd, struct sockaddr* addr,
1686 socklen_t* addr_len)
1687 {
1688 *err = __nacl_irt_getsockname (sockfd, addr, addr_len);
1689 return 0;
1690 }
1691
1692 __extern_always_inline int
1693 INTERNAL_SYSCALL_getsockopt_5 (int *err, int sockfd, int level, int optname,
1694 void *optval, socklen_t *optlen)
1695 {
1696 *err = __nacl_irt_getsockopt (sockfd, level, optname, optval, optlen);
1697 return 0;
1698 }
1699
1700 __extern_always_inline int
1701 INTERNAL_SYSCALL_setsockopt_5 (int *err, int sockfd, int level, int optname,
1702 const void *optval, socklen_t optlen)
1703 {
1704 *err = __nacl_irt_setsockopt (sockfd, level, optname, optval, optlen);
1705 return 0;
1706 }
1707
1708 __extern_always_inline int
1709 INTERNAL_SYSCALL_listen_2 (int *err, int sockfd, int backlog)
1710 {
1711 *err = __nacl_irt_listen (sockfd, backlog);
1712 return 0;
1713 }
1714
1715 __extern_always_inline int
1716 INTERNAL_SYSCALL_connect_3 (int *err, int sockfd, struct sockaddr* addr,
1717 socklen_t addr_len)
1718 {
1719 *err = __nacl_irt_connect (sockfd, addr, addr_len);
1720 return 0;
1721 }
1722
1723 __extern_always_inline int
1724 INTERNAL_SYSCALL_socketpair_4 (int *err, int domain, int type, int protocol,
1725 int sv[2])
1726 {
1727 *err = __nacl_irt_socketpair (domain, type, protocol, sv);
1728 return 0;
1729 }
1730
1731 __extern_always_inline int
1732 INTERNAL_SYSCALL_shutdown_2 (int *err, int sockfd, int how)
1733 {
1734 *err = __nacl_irt_shutdown (sockfd, how);
1735 return 0;
1736 }
1737
1738 __extern_always_inline int
1739 INTERNAL_SYSCALL_send_4 (int *err, int sockfd, const void *buf, size_t len, int flags)
1740 {
1741 int ret;
1742 *err = __nacl_irt_send (sockfd, buf, len, flags, &ret);
1743 return ret;
1744 }
1745
1746 __extern_always_inline int
1747 INTERNAL_SYSCALL_sendto_6 (int *err, int sockfd, const void *buf, size_t len,
1748 int flags, const struct sockaddr *dest_addr,
1749 socklen_t addrlen)
1750 {
1751 int ret;
1752 *err = __nacl_irt_sendto (sockfd, buf, len, flags, dest_addr, addrlen, &ret);
1753 return ret;
1754 }
1755
1756 __extern_always_inline int
1757 INTERNAL_SYSCALL_recv_4 (int *err, int sockfd, void *buf, size_t len, int flags)
1758 {
1759 int ret;
1760 *err = __nacl_irt_recv (sockfd, buf, len, flags, &ret);
1761 return ret;
1762 }
1763
1764 __extern_always_inline int
1765 INTERNAL_SYSCALL_recvfrom_6 (int *err, int sockfd, void *buf, size_t len, int fl ags,
1766 struct sockaddr *dest_addr, socklen_t *addrlen)
1767 {
1768 int ret;
1769 *err = __nacl_irt_recvfrom (sockfd, buf, len, flags, dest_addr, addrlen, &ret) ;
1770 return ret;
1771 }
1772
1773 __extern_always_inline int
1774 INTERNAL_SYSCALL_sendmsg_3 (int *err, int sockfd, const struct msghdr *msg, int flags)
1775 {
1776 int ret;
1777 *err = __nacl_irt_sendmsg (sockfd, msg, flags, &ret);
1778 return ret;
1779 }
1780
1781 __extern_always_inline int
1782 INTERNAL_SYSCALL_recvmsg_3 (int *err, int sockfd, struct msghdr *msg, int flags)
1783 {
1784 int ret;
1785 *err = __nacl_irt_recvmsg (sockfd, msg, flags, &ret);
1786 return ret;
1787 }
1788
1657 __extern_always_inline ssize_t 1789 __extern_always_inline ssize_t
1658 INTERNAL_SYSCALL_splice_6 (int *err, int fd_in, loff_t *off_in, int fd_out, 1790 INTERNAL_SYSCALL_splice_6 (int *err, int fd_in, loff_t *off_in, int fd_out,
1659 loff_t *off_out, size_t len, unsigned int flags) 1791 loff_t *off_out, size_t len, unsigned int flags)
1660 { 1792 {
1661 *err = (38 /* ENOSYS */); 1793 *err = (38 /* ENOSYS */);
1662 return 0; 1794 return 0;
1663 } 1795 }
1664 1796
1665 __extern_always_inline int 1797 __extern_always_inline int
1666 INTERNAL_SYSCALL_stime_1 (int *err, time_t *t) 1798 INTERNAL_SYSCALL_stime_1 (int *err, time_t *t)
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
2106 #define PSEUDO_END_ERRVAL(name) \ 2238 #define PSEUDO_END_ERRVAL(name) \
2107 END (name) 2239 END (name)
2108 2240
2109 #undef SYSCALL_ERROR_HANDLER_TLS_STORE 2241 #undef SYSCALL_ERROR_HANDLER_TLS_STORE
2110 #define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ 2242 #define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \
2111 movl %gs:0, %eax; \ 2243 movl %gs:0, %eax; \
2112 movl src, (%eax,destoff) 2244 movl src, (%eax,destoff)
2113 2245
2114 #endif 2246 #endif
2115 #endif 2247 #endif
OLDNEW
« no previous file with comments | « sysdeps/nacl/syscalls.list ('k') | sysdeps/unix/make-syscalls.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698