#include <endian.h> | |
struct msghdr { | |
void* msg_name; | |
socklen_t msg_namelen; | |
struct iovec* msg_iov; | |
#if __BYTE_ORDER == __BIG_ENDIAN | |
int __pad1, msg_iovlen; | |
#else | |
int msg_iovlen, __pad1; | |
#endif | |
void* msg_control; | |
#if __BYTE_ORDER == __BIG_ENDIAN | |
int __pad2; | |
socklen_t msg_controllen; | |
#else | |
socklen_t msg_controllen; | |
int __pad2; | |
#endif | |
int msg_flags; | |
}; | |
struct cmsghdr { | |
#if __BYTE_ORDER == __BIG_ENDIAN | |
int __pad1; | |
socklen_t cmsg_len; | |
#else | |
socklen_t cmsg_len; | |
int __pad1; | |
#endif | |
int cmsg_level; | |
int cmsg_type; | |
}; |