#include #include // Since the cmsg(3) macros are macros instead of functions, they aren't // available to FFI. libc must reimplement them, which is error-prone. This // file provides FFI access to the actual macros so they can be tested against // the Rust reimplementations. struct cmsghdr *cmsg_firsthdr(struct msghdr *msgh) { return CMSG_FIRSTHDR(msgh); } struct cmsghdr *cmsg_nxthdr(struct msghdr *msgh, struct cmsghdr *cmsg) { return CMSG_NXTHDR(msgh, cmsg); } size_t cmsg_space(size_t length) { return CMSG_SPACE(length); } size_t cmsg_len(size_t length) { return CMSG_LEN(length); } unsigned char *cmsg_data(struct cmsghdr *cmsg) { return CMSG_DATA(cmsg); }