1#include <endian.h>
2
3struct 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
23struct 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