[clang][extract-api] Emit "navigator" property of "name" in SymbolGraph
[llvm-project.git] / compiler-rt / lib / sanitizer_common / sanitizer_mac.h
blob0b6af5a3c0edc649c4d65dfd1a6ca1bce13aa9b9
1 //===-- sanitizer_mac.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 // This file is shared between various sanitizers' runtime libraries and
10 // provides definitions for OSX-specific functions.
11 //===----------------------------------------------------------------------===//
12 #ifndef SANITIZER_MAC_H
13 #define SANITIZER_MAC_H
15 #include "sanitizer_common.h"
16 #include "sanitizer_platform.h"
17 #if SANITIZER_MAC
18 #include "sanitizer_posix.h"
20 namespace __sanitizer {
22 struct MemoryMappingLayoutData {
23 int current_image;
24 u32 current_magic;
25 u32 current_filetype;
26 ModuleArch current_arch;
27 u8 current_uuid[kModuleUUIDSize];
28 int current_load_cmd_count;
29 const char *current_load_cmd_addr;
30 bool current_instrumented;
33 template <typename VersionType>
34 struct VersionBase {
35 u16 major;
36 u16 minor;
38 VersionBase(u16 major, u16 minor) : major(major), minor(minor) {}
40 bool operator==(const VersionType &other) const {
41 return major == other.major && minor == other.minor;
43 bool operator>=(const VersionType &other) const {
44 return major > other.major ||
45 (major == other.major && minor >= other.minor);
47 bool operator<(const VersionType &other) const { return !(*this >= other); }
50 struct MacosVersion : VersionBase<MacosVersion> {
51 MacosVersion(u16 major, u16 minor) : VersionBase(major, minor) {}
54 struct DarwinKernelVersion : VersionBase<DarwinKernelVersion> {
55 DarwinKernelVersion(u16 major, u16 minor) : VersionBase(major, minor) {}
58 MacosVersion GetMacosAlignedVersion();
59 DarwinKernelVersion GetDarwinKernelVersion();
61 char **GetEnviron();
63 void RestrictMemoryToMaxAddress(uptr max_address);
65 } // namespace __sanitizer
67 #endif // SANITIZER_MAC
68 #endif // SANITIZER_MAC_H