]> granicus.if.org Git - strace/commitdiff
xlat: update MSG_* constants
authorEugene Syromyatnikov <evgsyr@gmail.com>
Fri, 27 Apr 2018 18:04:22 +0000 (20:04 +0200)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 15 May 2018 13:30:16 +0000 (13:30 +0000)
Sync them with kernel's include/linux/socket.h, since syscalls perform
almost no checks for incorrect flags.

* xlat/msg_flags.in (MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_CTRUNC,
MSG_PROBE, MSG_TRUNC, MSG_DONTWAIT, MSG_EOR, MSG_WAITALL, MSG_FIN,
MSG_SYN, MSG_CONFIRM, MSG_RST, MSG_ERRQUEUE, MSG_NOSIGNAL, MSG_MORE,
MSG_WAITFORONE, MSG_FASTOPEN, MSG_CMSG_CLOEXEC): Add default values
to all constants.
(MSG_SENDPAGE_NOTLAST, MSG_NO_SHARED_FRAGS): New constants.  It is
an internal one, but, apparently, nothing prohibits passing it
to the kernel.
(MSG_CMSG_COMPAT): New constant.  Override the value provided
by system headers.
(MSG_EOF): Commented out, as it is a synonym for MSG_FIN.

Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
xlat/msg_flags.in

index d2776fa80b1f2b5aa8e55c6246f5c8ecfd59efeb..946b1326edab4a478fcfdd8ce03b972000f73e33 100644 (file)
@@ -1,22 +1,34 @@
-MSG_OOB
-MSG_PEEK
-MSG_DONTROUTE
-MSG_CTRUNC
-MSG_PROBE
-MSG_TRUNC
-MSG_DONTWAIT
-MSG_EOR
-MSG_WAITALL
-MSG_FIN
-MSG_SYN
-MSG_CONFIRM
-MSG_RST
-MSG_ERRQUEUE
-MSG_NOSIGNAL
-MSG_MORE
-MSG_WAITFORONE
-MSG_BATCH      0x40000
-MSG_ZEROCOPY   0x4000000
-MSG_EOF
-MSG_FASTOPEN
-MSG_CMSG_CLOEXEC
+MSG_OOB                        0x1
+MSG_PEEK               0x2
+MSG_DONTROUTE          0x4
+/* MSG_TRYHARD 0x4 - synonym for MSG_DONTROUTE for DECnet */
+MSG_CTRUNC             0x8
+MSG_PROBE              0x10
+MSG_TRUNC              0x20
+MSG_DONTWAIT           0x40
+MSG_EOR                        0x80
+MSG_WAITALL            0x100
+MSG_FIN                        0x200
+MSG_SYN                        0x400
+MSG_CONFIRM            0x800
+MSG_RST                        0x1000
+MSG_ERRQUEUE           0x2000
+MSG_NOSIGNAL           0x4000
+MSG_MORE               0x8000
+MSG_WAITFORONE         0x10000
+MSG_SENDPAGE_NOTLAST   0x20000 /* sendpage() internal */
+MSG_BATCH              0x40000
+MSG_NO_SHARED_FRAGS    0x80000 /* sendpage() internal */
+MSG_ZEROCOPY           0x4000000
+/* MSG_EOF MSG_FIN */
+MSG_FASTOPEN           0x20000000
+MSG_CMSG_CLOEXEC       0x40000000
+#ifndef STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT
+# define STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT
+/*
+ * In Linux, the value of MSG_CMSG_COMPAT depends on CONFIG_COMPAT,
+ * and libc might want to replicate that behaviour.
+ */
+# undef MSG_CMSG_COMPAT
+#endif
+MSG_CMSG_COMPAT                0x80000000