mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
![]() We have an application that uses almost the same code for TCP and AF_UNIX (SOCK_STREAM). TCP can use TCP_INQ, but AF_UNIX doesn't have it and requires an extra syscall, ioctl(SIOCINQ) or getsockopt(SO_MEMINFO) as an alternative. Let's introduce the generic version of TCP_INQ. If SO_INQ is enabled, recvmsg() will put a cmsg of SCM_INQ that contains the exact value of ioctl(SIOCINQ). The cmsg is also included when msg->msg_get_inq is non-zero to make sockets io_uring-friendly. Note that SOCK_CUSTOM_SOCKOPT is flagged only for SOCK_STREAM to override setsockopt() for SOL_SOCKET. By having the flag in struct unix_sock, instead of struct sock, we can later add SO_INQ support for TCP and reuse tcp_sk(sk)->recvmsg_inq. Note also that supporting custom getsockopt() for SOL_SOCKET will need preparation for other SOCK_CUSTOM_SOCKOPT users (UDP, vsock, MPTCP). Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Link: https://patch.msgid.link/20250702223606.1054680-7-kuniyu@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
||
---|---|---|
.. | ||
apc.h | ||
asi.h | ||
auxvec.h | ||
bitsperlong.h | ||
byteorder.h | ||
display7seg.h | ||
envctrl.h | ||
errno.h | ||
fbio.h | ||
fcntl.h | ||
ioctl.h | ||
ioctls.h | ||
ipcbuf.h | ||
Kbuild | ||
mman.h | ||
msgbuf.h | ||
openpromio.h | ||
oradax.h | ||
param.h | ||
perfctr.h | ||
poll.h | ||
posix_types.h | ||
psr.h | ||
psrcompat.h | ||
pstate.h | ||
ptrace.h | ||
resource.h | ||
sembuf.h | ||
setup.h | ||
shmbuf.h | ||
sigcontext.h | ||
siginfo.h | ||
signal.h | ||
socket.h | ||
stat.h | ||
swab.h | ||
termbits.h | ||
termios.h | ||
traps.h | ||
uctx.h | ||
unistd.h | ||
utrap.h | ||
watchdog.h |