tools/nolibc: Implement gettid()
authorMark Brown <broonie@kernel.org>
Sun, 24 Oct 2021 17:43:23 +0000 (19:43 +0200)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 1 Dec 2021 01:26:42 +0000 (17:26 -0800)
Allow test programs to determine their thread ID.

Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: Willy Tarreau <w@1wt.eu>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/include/nolibc/nolibc.h

index 4988866..c1c285f 100644 (file)
@@ -1572,6 +1572,12 @@ pid_t sys_getpid(void)
 }
 
 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)
 {
        return my_syscall2(__NR_gettimeofday, tv, tz);
@@ -2030,6 +2036,18 @@ pid_t getpid(void)
 }
 
 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)
 {
        int ret = sys_gettimeofday(tv, tz);