| struct msghdr { |
| void *msg_name; |
| socklen_t msg_namelen; |
| struct iovec *msg_iov; |
| int __pad1, msg_iovlen; |
| void *msg_control; |
| int __pad2; |
| socklen_t msg_controllen; |
| int msg_flags; |
| }; |
| |
| struct cmsghdr { |
| int __pad1; |
| socklen_t cmsg_len; |
| int cmsg_level; |
| int cmsg_type; |
| }; |
| |
| #define SO_DEBUG 1 |
| #define SO_REUSEADDR 2 |
| #define SO_TYPE 3 |
| #define SO_ERROR 4 |
| #define SO_DONTROUTE 5 |
| #define SO_BROADCAST 6 |
| #define SO_SNDBUF 7 |
| #define SO_RCVBUF 8 |
| #define SO_KEEPALIVE 9 |
| #define SO_OOBINLINE 10 |
| #define SO_NO_CHECK 11 |
| #define SO_PRIORITY 12 |
| #define SO_LINGER 13 |
| #define SO_BSDCOMPAT 14 |
| #define SO_REUSEPORT 15 |
| #define SO_PASSCRED 16 |
| #define SO_PEERCRED 17 |
| #define SO_RCVLOWAT 18 |
| #define SO_SNDLOWAT 19 |
| #define SO_RCVTIMEO 20 |
| #define SO_SNDTIMEO 21 |
| #define SO_ACCEPTCONN 30 |
| #define SO_SNDBUFFORCE 32 |
| #define SO_RCVBUFFORCE 33 |
| #define SO_PROTOCOL 38 |
| #define SO_DOMAIN 39 |