1 //===-- msan_chained_origin_depot.h --------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // A storage for chained origins.
11 //===----------------------------------------------------------------------===//
12 #ifndef MSAN_CHAINED_ORIGIN_DEPOT_H
13 #define MSAN_CHAINED_ORIGIN_DEPOT_H
14 
15 #include "sanitizer_common/sanitizer_common.h"
16 
17 namespace __msan {
18 
19 StackDepotStats *ChainedOriginDepotGetStats();
20 bool ChainedOriginDepotPut(u32 here_id, u32 prev_id, u32 *new_id);
21 // Retrieves a stored stack trace by the id.
22 u32 ChainedOriginDepotGet(u32 id, u32 *other);
23 
24 void ChainedOriginDepotLockAll();
25 void ChainedOriginDepotUnlockAll();
26 
27 }  // namespace __msan
28 
29 #endif  // MSAN_CHAINED_ORIGIN_DEPOT_H
30