From 27f2d621eeee1a227eb9c8ad33a33316f34f855e Mon Sep 17 00:00:00 2001 From: Eugene Syromyatnikov Date: Fri, 27 Apr 2018 20:04:22 +0200 Subject: [PATCH] xlat: update MSG_* constants 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 --- xlat/msg_flags.in | 56 ++++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/xlat/msg_flags.in b/xlat/msg_flags.in index d2776fa8..946b1326 100644 --- a/xlat/msg_flags.in +++ b/xlat/msg_flags.in @@ -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 -- 2.40.0