linux/arch/mips/include/uapi/asm
Kuniyuki Iwashima df30285b36 af_unix: Introduce SO_INQ.
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>
2025-07-08 18:05:25 -07:00
..
auxvec.h
bitfield.h
bitsperlong.h
break.h
byteorder.h
cachectl.h
errno.h
fcntl.h uapi: always define F_GETLK64/F_SETLK64/F_SETLKW64 in fcntl.h 2022-04-26 13:35:20 -07:00
hwcap.h
inst.h MIPS: uaccess: emulate Ingenic LXW/LXH/LXHU uaccess 2023-06-09 09:54:17 +02:00
ioctl.h
ioctls.h
Kbuild
kvm.h kvm: replace __KVM_HAVE_READONLY_MEM with Kconfig symbol 2024-02-08 08:41:06 -05:00
mman.h mm: madvise: implement lightweight guard page mechanism 2024-11-11 00:26:45 -08:00
msgbuf.h MIPS: Fix typos 2024-01-08 10:39:12 +01:00
param.h
perf_regs.h
poll.h
posix_types.h
ptrace.h
reg.h
resource.h
sembuf.h
setup.h
sgidefs.h
shmbuf.h
sigcontext.h mips: Remove posix_types.h include from sigcontext.h 2024-08-29 10:46:00 +02:00
siginfo.h
signal.h
socket.h af_unix: Introduce SO_INQ. 2025-07-08 18:05:25 -07:00
sockios.h
stat.h mips: use __kernel_{uid,gid}32_t in uapi/asm/stat.h 2022-06-02 17:38:15 +02:00
statfs.h
swab.h
sysmips.h
termbits.h termbits.h: Remove posix_types.h include 2022-05-19 18:25:26 +02:00
termios.h
types.h
ucontext.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
unistd.h