1 #include <endian.h> 2 3 struct msghdr { 4 void *msg_name; 5 socklen_t msg_namelen; 6 struct iovec *msg_iov; 7 #if __BYTE_ORDER == __BIG_ENDIAN 8 int __pad1, msg_iovlen; 9 #else 10 int msg_iovlen, __pad1; 11 #endif 12 void *msg_control; 13 #if __BYTE_ORDER == __BIG_ENDIAN 14 int __pad2; 15 socklen_t msg_controllen; 16 #else 17 socklen_t msg_controllen; 18 int __pad2; 19 #endif 20 int msg_flags; 21 }; 22 23 struct cmsghdr { 24 #if __BYTE_ORDER == __BIG_ENDIAN 25 int __pad1; 26 socklen_t cmsg_len; 27 #else 28 socklen_t cmsg_len; 29 int __pad1; 30 #endif 31 int cmsg_level; 32 int cmsg_type; 33 }; 34