The Linux kernel uses 'pid_t' instead of 'long' for the return type.
As glibc provides no wrapper, use the same types the kernel uses.
$ sed -n 34,36p man-pages/man2/set_tid_address.2
.PP
.IR Note :
There is no glibc wrapper for this system call; see NOTES.
$ grep -rn 'SYSCALL_DEFINE.*set_tid_address' linux/
linux/kernel/fork.c:1632:
SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr)
$ sed -n 1632,1638p linux/kernel/fork.c
SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr)
{
current->clear_child_tid = tidptr;
return task_pid_vnr(current);
}
$ grep -rn 'task_pid_vnr(struct' linux/
linux/include/linux/sched.h:1374:
static inline pid_t task_pid_vnr(struct task_struct *tsk)
Signed-off-by: Alejandro Colomar <[email protected]>
---
man2/set_tid_address.2 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/man2/set_tid_address.2 b/man2/set_tid_address.2
index 380efcdd8..b18b8efef 100644
--- a/man2/set_tid_address.2
+++ b/man2/set_tid_address.2
@@ -29,7 +29,7 @@ set_tid_address \- set pointer to thread ID
.nf
.B #include <linux/unistd.h>
.PP
-.BI "long set_tid_address(int *" tidptr );
+.BI "pid_t set_tid_address(int *" tidptr );
.fi
.PP
.IR Note :
--
2.29.2