sys_includes = ["stddef.h", "stdint.h", "sys/types.h"] include_guard = "_RELIBC_SYS_SOCKET_H" after_includes = """ #include // for iovec from sys/uio.h #include // for sa_family_t #include // for socklen_t """ trailer = """ #ifndef _RELIBC_BITS_SYS_SOCKET_H #define _RELIBC_BITS_SYS_SOCKET_H struct sockaddr_storage { sa_family_t ss_family; char __ss_padding[128-sizeof(long)-sizeof(sa_family_t)]; unsigned long __ss_align; }; // These definitions were taken from musl, license MIT { #define __CMSG_LEN(cmsg) (((cmsg)->cmsg_len + sizeof(long) - 1) & ~(long)(sizeof(long) - 1)) #define __CMSG_NEXT(cmsg) ((unsigned char *)(cmsg) + __CMSG_LEN(cmsg)) #define __MHDR_END(mhdr) ((unsigned char *)(mhdr)->msg_control + (mhdr)->msg_controllen) #define CMSG_DATA(cmsg) ((unsigned char *) (((struct cmsghdr *)(cmsg)) + 1)) #define CMSG_NXTHDR(mhdr, cmsg) ((cmsg)->cmsg_len < sizeof (struct cmsghdr) || \ __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \ ? 0 : (struct cmsghdr *)__CMSG_NEXT(cmsg)) #define CMSG_FIRSTHDR(mhdr) ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) #define CMSG_SPACE(len) (CMSG_ALIGN (len) + CMSG_ALIGN (sizeof (struct cmsghdr))) #define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len)) // } from musl, license MIT #endif // _RELIBC_BITS_SYS_SOCKET_H """ language = "C" style = "Tag" no_includes = true cpp_compat = true [enum] prefix_with_name = true [export] include = [ "linger", "cmsghdr", "ucred" ] [export.rename] "iovec" = "struct iovec"