llvm/compiler-rt/lib/tsan/rtl/tsan_sync.cpp

//===-- tsan_sync.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 ThreadSanitizer (TSan), a race detector.
//
//===----------------------------------------------------------------------===//
#include "sanitizer_common/sanitizer_placement_new.h"
#include "tsan_sync.h"
#include "tsan_rtl.h"
#include "tsan_mman.h"

namespace __tsan {

void DDMutexInit(ThreadState *thr, uptr pc, SyncVar *s);

SyncVar::SyncVar() :{}

void SyncVar::Init(ThreadState *thr, uptr pc, uptr addr, bool save_stack) {}

void SyncVar::Reset() {}

MetaMap::MetaMap()
    :{}

void MetaMap::AllocBlock(ThreadState *thr, uptr pc, uptr p, uptr sz) {}

uptr MetaMap::FreeBlock(Processor *proc, uptr p, bool reset) {}

bool MetaMap::FreeRange(Processor *proc, uptr p, uptr sz, bool reset) {}

// ResetRange removes all meta objects from the range.
// It is called for large mmap-ed regions. The function is best-effort wrt
// freeing of meta objects, because we don't want to page in the whole range
// which can be huge. The function probes pages one-by-one until it finds a page
// without meta objects, at this point it stops freeing meta objects. Because
// thread stacks grow top-down, we do the same starting from end as well.
void MetaMap::ResetRange(Processor *proc, uptr p, uptr sz, bool reset) {}

void MetaMap::ResetClocks() {}

MBlock* MetaMap::GetBlock(uptr p) {}

SyncVar *MetaMap::GetSync(ThreadState *thr, uptr pc, uptr addr, bool create,
                          bool save_stack) {}

void MetaMap::MoveMemory(uptr src, uptr dst, uptr sz) {}

void MetaMap::OnProcIdle(Processor *proc) {}

MetaMap::MemoryStats MetaMap::GetMemoryStats() const {}

}  // namespace __tsan