sanitizer_mac.h revision 296417
1//===-- sanitizer_mac.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// This file is shared between various sanitizers' runtime libraries and 11// provides definitions for OSX-specific functions. 12//===----------------------------------------------------------------------===// 13#ifndef SANITIZER_MAC_H 14#define SANITIZER_MAC_H 15 16#include "sanitizer_common.h" 17#include "sanitizer_platform.h" 18#if SANITIZER_MAC 19#include "sanitizer_posix.h" 20 21namespace __sanitizer { 22 23enum MacosVersion { 24 MACOS_VERSION_UNINITIALIZED = 0, 25 MACOS_VERSION_UNKNOWN, 26 MACOS_VERSION_LEOPARD, 27 MACOS_VERSION_SNOW_LEOPARD, 28 MACOS_VERSION_LION, 29 MACOS_VERSION_MOUNTAIN_LION, 30 MACOS_VERSION_MAVERICKS, 31 MACOS_VERSION_YOSEMITE, 32 MACOS_VERSION_UNKNOWN_NEWER 33}; 34 35MacosVersion GetMacosVersion(); 36 37char **GetEnviron(); 38 39} // namespace __sanitizer 40 41extern "C" { 42static char __crashreporter_info_buff__[kErrorMessageBufferSize] = {}; 43static const char *__crashreporter_info__ __attribute__((__used__)) = 44 &__crashreporter_info_buff__[0]; 45asm(".desc ___crashreporter_info__, 0x10"); 46} // extern "C" 47static BlockingMutex crashreporter_info_mutex(LINKER_INITIALIZED); 48 49INLINE void CRAppendCrashLogMessage(const char *msg) { 50 BlockingMutexLock l(&crashreporter_info_mutex); 51 internal_strlcat(__crashreporter_info_buff__, msg, 52 sizeof(__crashreporter_info_buff__)); } 53 54#endif // SANITIZER_MAC 55#endif // SANITIZER_MAC_H 56