xref: /llvm-project/compiler-rt/lib/gwp_asan/platform_specific/common_posix.cpp (revision 61a038f8528f12c0c2ee5a9794c257fdae626d29)
1ae9d0400SKostya Kortchinsky //===-- common_posix.cpp ----------------------------------------*- C++ -*-===//
2a6258684SMitch Phillips //
3a6258684SMitch Phillips // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4a6258684SMitch Phillips // See https://llvm.org/LICENSE.txt for license information.
5a6258684SMitch Phillips // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6a6258684SMitch Phillips //
7a6258684SMitch Phillips //===----------------------------------------------------------------------===//
8a6258684SMitch Phillips 
9a6258684SMitch Phillips #include "gwp_asan/common.h"
10a6258684SMitch Phillips 
11*61a038f8SMitch Phillips #include <stdint.h>
12*61a038f8SMitch Phillips #include <sys/syscall.h> // IWYU pragma: keep
13*61a038f8SMitch Phillips // IWYU pragma: no_include <syscall.h>
1485c0b34fSMitch Phillips #include <unistd.h>
1585c0b34fSMitch Phillips 
16a6258684SMitch Phillips namespace gwp_asan {
17a6258684SMitch Phillips 
getThreadID()18a6258684SMitch Phillips uint64_t getThreadID() {
19a6258684SMitch Phillips #ifdef SYS_gettid
20a6258684SMitch Phillips   return syscall(SYS_gettid);
21a6258684SMitch Phillips #else
22a6258684SMitch Phillips   return kInvalidThreadID;
23a6258684SMitch Phillips #endif
24a6258684SMitch Phillips }
25a6258684SMitch Phillips 
26a6258684SMitch Phillips } // namespace gwp_asan
27