1 //===-- msan_chained_origin_depot.cpp -------------------------------------===//
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 MemorySanitizer.
10 //
11 // A storage for chained origins.
12 //===----------------------------------------------------------------------===//
13
14 #include "msan_chained_origin_depot.h"
15
16 #include "sanitizer_common/sanitizer_chained_origin_depot.h"
17
18 namespace __msan {
19
20 static ChainedOriginDepot chainedOriginDepot;
21
ChainedOriginDepotGetStats()22 StackDepotStats ChainedOriginDepotGetStats() {
23 return chainedOriginDepot.GetStats();
24 }
25
ChainedOriginDepotPut(u32 here_id,u32 prev_id,u32 * new_id)26 bool ChainedOriginDepotPut(u32 here_id, u32 prev_id, u32 *new_id) {
27 return chainedOriginDepot.Put(here_id, prev_id, new_id);
28 }
29
ChainedOriginDepotGet(u32 id,u32 * other)30 u32 ChainedOriginDepotGet(u32 id, u32 *other) {
31 return chainedOriginDepot.Get(id, other);
32 }
33
ChainedOriginDepotLockAll()34 void ChainedOriginDepotLockAll() {
35 chainedOriginDepot.LockAll();
36 }
37
ChainedOriginDepotUnlockAll()38 void ChainedOriginDepotUnlockAll() {
39 chainedOriginDepot.UnlockAll();
40 }
41
42 } // namespace __msan
43