1b4993cf5SJianzhou Zhao //===-- msan_chained_origin_depot.cpp -------------------------------------===//
260c66db4SNico Weber //
360c66db4SNico Weber // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
460c66db4SNico Weber // See https://llvm.org/LICENSE.txt for license information.
560c66db4SNico Weber // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
660c66db4SNico Weber //
760c66db4SNico Weber //===----------------------------------------------------------------------===//
860c66db4SNico Weber //
9b4993cf5SJianzhou Zhao // This file is a part of MemorySanitizer.
10b4993cf5SJianzhou Zhao //
1160c66db4SNico Weber // A storage for chained origins.
1260c66db4SNico Weber //===----------------------------------------------------------------------===//
1360c66db4SNico Weber
1460c66db4SNico Weber #include "msan_chained_origin_depot.h"
1560c66db4SNico Weber
16b4993cf5SJianzhou Zhao #include "sanitizer_common/sanitizer_chained_origin_depot.h"
1760c66db4SNico Weber
1860c66db4SNico Weber namespace __msan {
1960c66db4SNico Weber
20b4993cf5SJianzhou Zhao static ChainedOriginDepot chainedOriginDepot;
2160c66db4SNico Weber
ChainedOriginDepotGetStats()227c1128f3SVitaly Buka StackDepotStats ChainedOriginDepotGetStats() {
2360c66db4SNico Weber return chainedOriginDepot.GetStats();
2460c66db4SNico Weber }
2560c66db4SNico Weber
ChainedOriginDepotPut(u32 here_id,u32 prev_id,u32 * new_id)2660c66db4SNico Weber bool ChainedOriginDepotPut(u32 here_id, u32 prev_id, u32 *new_id) {
27b4993cf5SJianzhou Zhao return chainedOriginDepot.Put(here_id, prev_id, new_id);
2860c66db4SNico Weber }
2960c66db4SNico Weber
ChainedOriginDepotGet(u32 id,u32 * other)3060c66db4SNico Weber u32 ChainedOriginDepotGet(u32 id, u32 *other) {
31b4993cf5SJianzhou Zhao return chainedOriginDepot.Get(id, other);
3260c66db4SNico Weber }
3360c66db4SNico Weber
ChainedOriginDepotBeforeFork()34*0e07bf91SVitaly Buka void ChainedOriginDepotBeforeFork() { chainedOriginDepot.LockBeforeFork(); }
3560c66db4SNico Weber
ChainedOriginDepotAfterFork(bool fork_child)36f78a742aSVitaly Buka void ChainedOriginDepotAfterFork(bool fork_child) {
37*0e07bf91SVitaly Buka chainedOriginDepot.UnlockAfterFork(fork_child);
3860c66db4SNico Weber }
3960c66db4SNico Weber
4060c66db4SNico Weber } // namespace __msan
41