1287516Sdim//===-- sanitizer_symbolizer_mac.h ------------------------------*- C++ -*-===//
2287516Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6287516Sdim//
7287516Sdim//===----------------------------------------------------------------------===//
8287516Sdim//
9287516Sdim// This file is shared between various sanitizers' runtime libraries.
10287516Sdim//
11287516Sdim// Header for Mac-specific "atos" symbolizer.
12287516Sdim//===----------------------------------------------------------------------===//
13287516Sdim
14287516Sdim#ifndef SANITIZER_SYMBOLIZER_MAC_H
15287516Sdim#define SANITIZER_SYMBOLIZER_MAC_H
16287516Sdim
17287516Sdim#include "sanitizer_platform.h"
18287516Sdim#if SANITIZER_MAC
19287516Sdim
20287516Sdim#include "sanitizer_symbolizer_internal.h"
21287516Sdim
22287516Sdimnamespace __sanitizer {
23287516Sdim
24287516Sdimclass DlAddrSymbolizer : public SymbolizerTool {
25287516Sdim public:
26287516Sdim  bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
27287516Sdim  bool SymbolizeData(uptr addr, DataInfo *info) override;
28287516Sdim};
29287516Sdim
30287516Sdimclass AtosSymbolizerProcess;
31287516Sdim
32287516Sdimclass AtosSymbolizer : public SymbolizerTool {
33287516Sdim public:
34287516Sdim  explicit AtosSymbolizer(const char *path, LowLevelAllocator *allocator);
35287516Sdim
36287516Sdim  bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
37287516Sdim  bool SymbolizeData(uptr addr, DataInfo *info) override;
38287516Sdim
39287516Sdim private:
40287516Sdim  AtosSymbolizerProcess *process_;
41287516Sdim};
42287516Sdim
43287516Sdim} // namespace __sanitizer
44287516Sdim
45287516Sdim#endif  // SANITIZER_MAC
46287516Sdim
47287516Sdim#endif // SANITIZER_SYMBOLIZER_MAC_H
48