|
|
- /*
- * Public domain
- * sys/socket.h compatibility shim
- */
-
- #include_next <sys/socket.h>
-
- #ifndef SA_LEN
- #define SA_LEN(X) \
- (((struct sockaddr*)(X))->sa_family == AF_INET ? sizeof(struct sockaddr_in) : \
- ((struct sockaddr*)(X))->sa_family == AF_INET6 ? sizeof(struct sockaddr_in6) : \
- ((struct sockaddr*)(X))->sa_family == AF_UNSPEC ? sizeof(struct sockaddr) : \
- sizeof(struct sockaddr))
- #endif
-
- #if !defined(SOCK_NONBLOCK) || !defined(SOCK_CLOEXEC)
- #define NEED_SOCKET_FLAGS
- int _socket(int domain, int type, int protocol);
- int _socketpair(int domain, int type, int protocol, int socket_vector[2]);
- #ifndef SOCKET_FLAGS_PRIV
- #define socket(d, t, p) _socket(d, t, p)
- #define socketpair(d, t, p, s) _socketpair(d, t, p, s)
- #endif
- #endif
-
- /*
- * Prevent Solaris 10 system header leakage
- */
- #ifdef MODEMASK
- #undef MODEMASK
- #endif
-
- #ifndef SOCK_NONBLOCK
- #define SOCK_NONBLOCK 0x4000 /* set O_NONBLOCK */
- #endif
-
- #ifndef SOCK_CLOEXEC
- #define SOCK_CLOEXEC 0x8000 /* set FD_CLOEXEC */
- #endif
|