[PATCH 3/3] tools/nolibc: Implement gettid()

From: Willy Tarreau
Date: Sun Oct 24 2021 - 13:44:27 EST


From: Mark Brown <broonie@xxxxxxxxxx>

Allow test programs to determine their thread ID.

Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: Willy Tarreau <w@xxxxxx>
Signed-off-by: Willy Tarreau <w@xxxxxx>
---
tools/include/nolibc/nolibc.h | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/tools/include/nolibc/nolibc.h b/tools/include/nolibc/nolibc.h
index 4988866af0b5..c1c285fe494a 100644
--- a/tools/include/nolibc/nolibc.h
+++ b/tools/include/nolibc/nolibc.h
@@ -1571,6 +1571,12 @@ pid_t sys_getpid(void)
return my_syscall0(__NR_getpid);
}

+static __attribute__((unused))
+pid_t sys_gettid(void)
+{
+ return my_syscall0(__NR_gettid);
+}
+
static __attribute__((unused))
int sys_gettimeofday(struct timeval *tv, struct timezone *tz)
{
@@ -2029,6 +2035,18 @@ pid_t getpid(void)
return ret;
}

+static __attribute__((unused))
+pid_t gettid(void)
+{
+ pid_t ret = sys_gettid();
+
+ if (ret < 0) {
+ SET_ERRNO(-ret);
+ ret = -1;
+ }
+ return ret;
+}
+
static __attribute__((unused))
int gettimeofday(struct timeval *tv, struct timezone *tz)
{
--
2.17.5