summaryrefslogtreecommitdiff
path: root/sys/compat/linux/linux_socket.h
diff options
context:
space:
mode:
authorDmitry Chagin <dchagin@FreeBSD.org>2009-06-17 21:49:41 +0000
committerDmitry Chagin <dchagin@FreeBSD.org>2009-06-17 21:49:41 +0000
commitd57c7139f35b28722d82ee9ff95d37fab73c5b4e (patch)
tree13cdb958fe34e23c72645aab24be507b47e0846c /sys/compat/linux/linux_socket.h
parentc9990ad5809731489b92d579821e14c55d589fc3 (diff)
Notes
Diffstat (limited to 'sys/compat/linux/linux_socket.h')
-rw-r--r--sys/compat/linux/linux_socket.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_socket.h b/sys/compat/linux/linux_socket.h
index 73a8c2365f12..67903c5e600e 100644
--- a/sys/compat/linux/linux_socket.h
+++ b/sys/compat/linux/linux_socket.h
@@ -49,6 +49,37 @@
#define LINUX_MSG_ERRQUEUE 0x2000
#define LINUX_MSG_NOSIGNAL 0x4000
+/* Socket-level control message types */
+
+#define LINUX_SCM_RIGHTS 0x01
+
+/* Ancilliary data object information macros */
+
+#define LINUX_CMSG_ALIGN(len) roundup2(len, sizeof(l_ulong))
+#define LINUX_CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + \
+ LINUX_CMSG_ALIGN(sizeof(struct l_cmsghdr))))
+#define LINUX_CMSG_SPACE(len) (LINUX_CMSG_ALIGN(sizeof(struct l_cmsghdr)) + \
+ LINUX_CMSG_ALIGN(len))
+#define LINUX_CMSG_LEN(len) (LINUX_CMSG_ALIGN(sizeof(struct l_cmsghdr)) + \
+ (len))
+#define LINUX_CMSG_FIRSTHDR(msg) \
+ ((msg)->msg_controllen >= \
+ sizeof(struct l_cmsghdr) ? \
+ (struct l_cmsghdr *)((msg)->msg_control) : \
+ (struct l_cmsghdr *)(NULL))
+#define LINUX_CMSG_NXTHDR(msg, cmsg) \
+ ((((char *)(cmsg) + \
+ LINUX_CMSG_ALIGN((cmsg)->cmsg_len) + \
+ sizeof(*(cmsg))) > \
+ (((char *)(msg)->msg_control) + \
+ (msg)->msg_controllen)) ? \
+ (struct l_cmsghdr *) NULL : \
+ (struct l_cmsghdr *)((char *)(cmsg) + \
+ LINUX_CMSG_ALIGN((cmsg)->cmsg_len)))
+
+#define CMSG_HDRSZ CMSG_LEN(0)
+#define L_CMSG_HDRSZ LINUX_CMSG_LEN(0)
+
/* Supported address families */
#define LINUX_AF_UNSPEC 0