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 Phillipsuint64_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