On 2/13/21 5:05 PM, Michael Kerrisk (man-pages) wrote: > Hi Alex, > > On 2/12/21 4:28 PM, Alejandro Colomar (man-pages) wrote: >> Hi Michael, >> >> AFAICT, the syscalls [rt_]sigprocmask use '[old_]sigset_t' (there's the >> '__user' modifier too), so 'kernel_' should be removed from the types, >> shouldn't it? > > Looks like you're right. Will you send a patch? > > Thanks, > > Michael Hi Michael, I was wrong! Thanks, Alex [[ C library/kernel differences The kernel's definition of sigset_t differs in size from that used by the C library. In this manual page, the for‐ mer is referred to as kernel_sigset_t (it is nevertheless named sigset_t in the kernel sources). The glibc wrapper function for sigprocmask() silently ig‐ nores attempts to block the two real-time signals that are used internally by the NPTL threading implementation. See nptl(7) for details. The original Linux system call was named sigprocmask(). However, with the addition of real-time signals in Linux 2.2, the fixed-size, 32-bit sigset_t (referred to as old_kernel_sigset_t in this manual page) type supported by that system call was no longer fit for purpose. Conse‐ quently, a new system call, rt_sigprocmask(), was added to support an enlarged sigset_t type (referred to as ker‐ nel_sigset_t in this manual page). The new system call takes a fourth argument, size_t sigsetsize, which specifies the size in bytes of the signal sets in set and oldset. This argument is currently required to have a fixed archi‐ tecture specific value (equal to sizeof(kernel_sigset_t)). The glibc sigprocmask() wrapper function hides these de‐ tails from us, transparently calling rt_sigprocmask() when the kernel provides it. ]] -- Alejandro Colomar Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/ http://www.alejandro-colomar.es/