Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/compiler-rt/lib/lsan/lsan_posix.h
35233 views
1
//=-- lsan_posix.h -----------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===---------------------------------------------------------------------===//
8
//
9
// This file is a part of LeakSanitizer.
10
// Standalone LSan RTL code common to POSIX-like systems.
11
//
12
//===---------------------------------------------------------------------===//
13
14
#ifndef LSAN_POSIX_H
15
#define LSAN_POSIX_H
16
17
#include "lsan_thread.h"
18
#include "sanitizer_common/sanitizer_platform.h"
19
20
#if !SANITIZER_POSIX
21
#error "lsan_posix.h is used only on POSIX-like systems (SANITIZER_POSIX)"
22
#endif
23
24
namespace __sanitizer {
25
struct DTLS;
26
}
27
28
namespace __lsan {
29
30
class ThreadContext final : public ThreadContextLsanBase {
31
public:
32
explicit ThreadContext(int tid);
33
void OnStarted(void *arg) override;
34
uptr tls_begin() { return tls_begin_; }
35
uptr tls_end() { return tls_end_; }
36
DTLS *dtls() { return dtls_; }
37
38
private:
39
uptr tls_begin_ = 0;
40
uptr tls_end_ = 0;
41
DTLS *dtls_ = nullptr;
42
};
43
44
void ThreadStart(u32 tid, tid_t os_id,
45
ThreadType thread_type = ThreadType::Regular);
46
47
} // namespace __lsan
48
49
#endif // LSAN_POSIX_H
50
51