From 74a2c71153b910ee4773866ee30be84730a4d5b8 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Wed, 11 May 2011 11:31:45 +0200 Subject: accept4: Implement cancellation .. and add proper prototype, move it into it's own obj and other such cleanups. Signed-off-by: Bernhard Reutner-Fischer --- include/sys/socket.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include/sys') diff --git a/include/sys/socket.h b/include/sys/socket.h index 0824fc855..5d38f1105 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h @@ -227,6 +227,15 @@ extern int accept (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len); libc_hidden_proto(accept) +#ifdef __USE_GNU +/* Similar to 'accept' but takes an additional parameter to specify flags. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int accept4 (int __fd, __SOCKADDR_ARG __addr, + socklen_t *__restrict __addr_len, int __flags); +#endif + /* Shut down all or part of the connection open on socket FD. HOW determines what to shut down: SHUT_RD = No more receptions; -- cgit v1.2.3 From 44100dac1138c480deabb72ee8e180544005dfd9 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Thu, 12 May 2011 10:37:36 +0200 Subject: linux_specific: handle accept4 and pipe2 Signed-off-by: Bernhard Reutner-Fischer --- extra/Configs/Config.in | 1 + include/sys/socket.h | 2 +- include/unistd.h | 2 +- libc/inet/Makefile.in | 3 +-- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'include/sys') diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 7dffdeab9..e41adc465 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -914,6 +914,7 @@ config UCLIBC_LINUX_SPECIFIC bool "Linux specific functions" default y help + accept4(), capget(), capset(), fstatfs(), inotify_*(), ioperm(), iopl(), madvise(), modify_ldt(), pipe2(), personality(), prctl()/arch_prctl(), diff --git a/include/sys/socket.h b/include/sys/socket.h index 5d38f1105..6037f92ae 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h @@ -227,7 +227,7 @@ extern int accept (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len); libc_hidden_proto(accept) -#ifdef __USE_GNU +#if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU /* Similar to 'accept' but takes an additional parameter to specify flags. This function is a cancellation point and therefore not marked with diff --git a/include/unistd.h b/include/unistd.h index 6b614dd05..956879003 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -389,7 +389,7 @@ extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, extern int pipe (int __pipedes[2]) __THROW __wur; libc_hidden_proto(pipe) -#ifdef __USE_GNU +#if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU /* Same as pipe but apply flags passed in FLAGS to the new file descriptors. */ extern int pipe2 (int __pipedes[2], int __flags) __THROW __wur; diff --git a/libc/inet/Makefile.in b/libc/inet/Makefile.in index c490adf7e..d58822074 100644 --- a/libc/inet/Makefile.in +++ b/libc/inet/Makefile.in @@ -48,8 +48,7 @@ socketcalls_CSRC-y += \ accept.c bind.c connect.c getpeername.c getsockname.c \ getsockopt.c listen.c recv.c recvfrom.c recvmsg.c send.c sendmsg.c \ sendto.c setsockopt.c shutdown.c socket.c socketpair.c -# FIXME: GNU / linux specific -socketcalls_CSRC-y += accept4.c +socketcalls_CSRC-$(UCLIBC_LINUX_SPECIFIC) += accept4.c CSRC-$(UCLIBC_HAS_SOCKET) += $(socketcalls_CSRC-y) opensock.c CSRC-$(findstring y,$(UCLIBC_HAS_SOCKET)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += ethers.c ether_addr.c -- cgit v1.2.3