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>
-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