aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-08-21 15:57:22 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-08-21 15:57:22 +0000
commit5cd7dbdea13eb302620491ef44837b17e9d39c5a (patch)
tree03f85a7def3a9d2bf8d6f70b77352671684bfca4
parentaa42b3dbcb0326badf377fec2c7fb2f34fdabecd (diff)
downloadglibc-5cd7dbdea13eb302620491ef44837b17e9d39c5a.tar
glibc-5cd7dbdea13eb302620491ef44837b17e9d39c5a.tar.gz
glibc-5cd7dbdea13eb302620491ef44837b17e9d39c5a.tar.bz2
glibc-5cd7dbdea13eb302620491ef44837b17e9d39c5a.zip
Update netinet/tcp.h from Linux 4.18.
This patch adds constants from netinet/tcp.h in Linux 4.18, and an associated struct tcp_zerocopy_receive, to sysdeps/gnu/netinet/tcp.h. The new TCP_REPAIR_* constants seemed sufficiently related to those already present to include them. Note that this patch does not include additions to struct tcp_info; there are many other elements in this structure in the Linux kernel that are not included in the glibc version (which was last extended in 2007, it seems). Such additions to the end of the structure may be OK with the expected way it is used (size passed explicitly to the kernel with getsockopt), but in principle any change to the size of a type provided by glibc is an ABI change for external applications / libraries using that type in their ABIs, and has the associated risks of such a change. Tested for x86_64. * sysdeps/gnu/netinet/tcp.h (TCP_ZEROCOPY_RECEIVE): New macro. (TCP_INQ): Likewise. (TCP_CM_INQ): Likewise. (TCP_REPAIR_ON): Likewise. (TCP_REPAIR_OFF): Likewise. (TCP_REPAIR_OFF_NO_WP): Likewise. (struct tcp_zerocopy_receive): New type.
-rw-r--r--ChangeLog10
-rw-r--r--sysdeps/gnu/netinet/tcp.h16
2 files changed, 26 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 496fd1f6ff..c3b40c588d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2018-08-21 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/gnu/netinet/tcp.h (TCP_ZEROCOPY_RECEIVE): New macro.
+ (TCP_INQ): Likewise.
+ (TCP_CM_INQ): Likewise.
+ (TCP_REPAIR_ON): Likewise.
+ (TCP_REPAIR_OFF): Likewise.
+ (TCP_REPAIR_OFF_NO_WP): Likewise.
+ (struct tcp_zerocopy_receive): New type.
+
2018-08-21 Florian Weimer <fweimer@redhat.com>
* support/support.h (support_descriptor_supports_holes): Declare.
diff --git a/sysdeps/gnu/netinet/tcp.h b/sysdeps/gnu/netinet/tcp.h
index 44a72e929e..1a164a9649 100644
--- a/sysdeps/gnu/netinet/tcp.h
+++ b/sysdeps/gnu/netinet/tcp.h
@@ -75,6 +75,14 @@
#define TCP_MD5SIG_EXT 32 /* TCP MD5 Signature with extensions. */
#define TCP_FASTOPEN_KEY 33 /* Set the key for Fast Open (cookie). */
#define TCP_FASTOPEN_NO_COOKIE 34 /* Enable TFO without a TFO cookie. */
+#define TCP_ZEROCOPY_RECEIVE 35
+#define TCP_INQ 36 /* Notify bytes available to read
+ as a cmsg on read. */
+#define TCP_CM_INQ TCP_INQ
+
+#define TCP_REPAIR_ON 1
+#define TCP_REPAIR_OFF 0
+#define TCP_REPAIR_OFF_NO_WP -1
#ifdef __USE_MISC
# include <sys/types.h>
@@ -327,6 +335,14 @@ struct tcp_repair_window
uint32_t rcv_wup;
};
+/* For use with TCP_ZEROCOPY_RECEIVE. */
+struct tcp_zerocopy_receive
+{
+ uint64_t address; /* In: address of mapping. */
+ uint32_t length; /* In/out: number of bytes to map/mapped. */
+ uint32_t recv_skip_hint; /* Out: amount of bytes to skip. */
+};
+
#endif /* Misc. */
#endif /* netinet/tcp.h */