1 //===-- msan_chained_origin_depot.h --------------------------*- C++ -*-===//
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 // A storage for chained origins.
10 //===----------------------------------------------------------------------===//
11 #ifndef MSAN_CHAINED_ORIGIN_DEPOT_H
12 #define MSAN_CHAINED_ORIGIN_DEPOT_H
13 
14 #include "sanitizer_common/sanitizer_common.h"
15 
16 namespace __msan {
17 
18 StackDepotStats *ChainedOriginDepotGetStats();
19 bool ChainedOriginDepotPut(u32 here_id, u32 prev_id, u32 *new_id);
20 // Retrieves a stored stack trace by the id.
21 u32 ChainedOriginDepotGet(u32 id, u32 *other);
22 
23 void ChainedOriginDepotLockAll();
24 void ChainedOriginDepotUnlockAll();
25 
26 }  // namespace __msan
27 
28 #endif  // MSAN_CHAINED_ORIGIN_DEPOT_H
29