annotate libsanitizer/sanitizer_common/sanitizer_mac.h @ 118:fd00160c1b76

ifdef TARGET_64BIT
author mir3636
date Tue, 27 Feb 2018 15:01:35 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 //===-- sanitizer_mac.h -----------------------------------------*- C++ -*-===//
kono
parents:
diff changeset
2 //
kono
parents:
diff changeset
3 // This file is distributed under the University of Illinois Open Source
kono
parents:
diff changeset
4 // License. See LICENSE.TXT for details.
kono
parents:
diff changeset
5 //
kono
parents:
diff changeset
6 //===----------------------------------------------------------------------===//
kono
parents:
diff changeset
7 //
kono
parents:
diff changeset
8 // This file is shared between various sanitizers' runtime libraries and
kono
parents:
diff changeset
9 // provides definitions for OSX-specific functions.
kono
parents:
diff changeset
10 //===----------------------------------------------------------------------===//
kono
parents:
diff changeset
11 #ifndef SANITIZER_MAC_H
kono
parents:
diff changeset
12 #define SANITIZER_MAC_H
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 #include "sanitizer_common.h"
kono
parents:
diff changeset
15 #include "sanitizer_platform.h"
kono
parents:
diff changeset
16 #if SANITIZER_MAC
kono
parents:
diff changeset
17 #include "sanitizer_posix.h"
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 namespace __sanitizer {
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 struct MemoryMappingLayoutData {
kono
parents:
diff changeset
22 int current_image;
kono
parents:
diff changeset
23 u32 current_magic;
kono
parents:
diff changeset
24 u32 current_filetype;
kono
parents:
diff changeset
25 ModuleArch current_arch;
kono
parents:
diff changeset
26 u8 current_uuid[kModuleUUIDSize];
kono
parents:
diff changeset
27 int current_load_cmd_count;
kono
parents:
diff changeset
28 char *current_load_cmd_addr;
kono
parents:
diff changeset
29 bool current_instrumented;
kono
parents:
diff changeset
30 };
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 enum MacosVersion {
kono
parents:
diff changeset
33 MACOS_VERSION_UNINITIALIZED = 0,
kono
parents:
diff changeset
34 MACOS_VERSION_UNKNOWN,
kono
parents:
diff changeset
35 MACOS_VERSION_LEOPARD,
kono
parents:
diff changeset
36 MACOS_VERSION_SNOW_LEOPARD,
kono
parents:
diff changeset
37 MACOS_VERSION_LION,
kono
parents:
diff changeset
38 MACOS_VERSION_MOUNTAIN_LION,
kono
parents:
diff changeset
39 MACOS_VERSION_MAVERICKS,
kono
parents:
diff changeset
40 MACOS_VERSION_YOSEMITE,
kono
parents:
diff changeset
41 MACOS_VERSION_UNKNOWN_NEWER
kono
parents:
diff changeset
42 };
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 MacosVersion GetMacosVersion();
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 char **GetEnviron();
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 void RestrictMemoryToMaxAddress(uptr max_address);
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 } // namespace __sanitizer
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 extern "C" {
kono
parents:
diff changeset
53 static char __crashreporter_info_buff__[__sanitizer::kErrorMessageBufferSize] =
kono
parents:
diff changeset
54 {};
kono
parents:
diff changeset
55 static const char *__crashreporter_info__ __attribute__((__used__)) =
kono
parents:
diff changeset
56 &__crashreporter_info_buff__[0];
kono
parents:
diff changeset
57 asm(".desc ___crashreporter_info__, 0x10");
kono
parents:
diff changeset
58 } // extern "C"
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 namespace __sanitizer {
kono
parents:
diff changeset
61 static BlockingMutex crashreporter_info_mutex(LINKER_INITIALIZED);
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 INLINE void CRAppendCrashLogMessage(const char *msg) {
kono
parents:
diff changeset
64 BlockingMutexLock l(&crashreporter_info_mutex);
kono
parents:
diff changeset
65 internal_strlcat(__crashreporter_info_buff__, msg,
kono
parents:
diff changeset
66 sizeof(__crashreporter_info_buff__)); }
kono
parents:
diff changeset
67 } // namespace __sanitizer
kono
parents:
diff changeset
68
kono
parents:
diff changeset
69 #endif // SANITIZER_MAC
kono
parents:
diff changeset
70 #endif // SANITIZER_MAC_H