llvm/compiler-rt/lib/lsan/lsan_thread.cpp

//=-- lsan_thread.cpp -----------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file is a part of LeakSanitizer.
// See lsan_thread.h for details.
//
//===----------------------------------------------------------------------===//

#include "lsan_thread.h"

#include "lsan.h"
#include "lsan_allocator.h"
#include "lsan_common.h"
#include "sanitizer_common/sanitizer_common.h"
#include "sanitizer_common/sanitizer_placement_new.h"
#include "sanitizer_common/sanitizer_thread_registry.h"
#include "sanitizer_common/sanitizer_tls_get_addr.h"

namespace __lsan {

static ThreadRegistry *thread_registry;
static ThreadArgRetval *thread_arg_retval;

static Mutex mu_for_thread_context;
static LowLevelAllocator allocator_for_thread_context;

static ThreadContextBase *CreateThreadContext(u32 tid) {}

void InitializeThreads() {}

ThreadArgRetval &GetThreadArgRetval() {}

ThreadContextLsanBase::ThreadContextLsanBase(int tid)
    :{}

void ThreadContextLsanBase::OnStarted(void *arg) {}

void ThreadContextLsanBase::OnFinished() {}

u32 ThreadCreate(u32 parent_tid, bool detached, void *arg) {}

void ThreadContextLsanBase::ThreadStart(u32 tid, tid_t os_id,
                                        ThreadType thread_type, void *arg) {}

void ThreadFinish() {}

void EnsureMainThreadIDIsCorrect() {}

///// Interface to the common LSan module. /////

void GetThreadExtraStackRangesLocked(tid_t os_id,
                                     InternalMmapVector<Range> *ranges) {}
void GetThreadExtraStackRangesLocked(InternalMmapVector<Range> *ranges) {}

void LockThreads() {}

void UnlockThreads() {}

ThreadRegistry *GetLsanThreadRegistryLocked() {}

void GetRunningThreadsLocked(InternalMmapVector<tid_t> *threads) {}

void GetAdditionalThreadContextPtrsLocked(InternalMmapVector<uptr> *ptrs) {}

}  // namespace __lsan