Add SOCK_CLOEXEC and SOCK_NONBLOCK socket flags.
SOCK_CLOEXEC is used to atomically set close-on-exec flag for the new
descriptor(s), and SOCK_NONBLOCK is used to mark descriptor(s) as
non-blocking.
Change-Id: I8ba6a70543d23759e3ddcc7ff9c21b567184d681
diff --git a/libc/include/sys/socket.h b/libc/include/sys/socket.h
index ed7c4a0..32d98ea 100644
--- a/libc/include/sys/socket.h
+++ b/libc/include/sys/socket.h
@@ -25,6 +25,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+
#ifndef _SYS_SOCKET_H_
#define _SYS_SOCKET_H_
@@ -32,6 +33,7 @@
#include <sys/types.h>
#include <linux/socket.h>
+#include <asm/fcntl.h>
#include <asm/socket.h>
#include <linux/sockios.h>
#include <linux/uio.h>
@@ -61,13 +63,15 @@
#define SOCK_PACKET 10
#endif
-/* BIONIC: second argument to shutdown() */
+#define SOCK_CLOEXEC O_CLOEXEC
+#define SOCK_NONBLOCK O_NONBLOCK
+
enum {
- SHUT_RD = 0, /* no more receptions */
+ SHUT_RD = 0,
#define SHUT_RD SHUT_RD
- SHUT_WR, /* no more transmissions */
+ SHUT_WR,
#define SHUT_WR SHUT_WR
- SHUT_RDWR /* no more receptions or transmissions */
+ SHUT_RDWR
#define SHUT_RDWR SHUT_RDWR
};