Home | History | Annotate | Download | only in sanitizer_common
      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 
     21 namespace __sanitizer {
     22 
     23 enum 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 
     35 MacosVersion GetMacosVersion();
     36 
     37 char **GetEnviron();
     38 
     39 }  // namespace __sanitizer
     40 
     41 extern "C" {
     42 static char __crashreporter_info_buff__[kErrorMessageBufferSize] = {};
     43 static const char *__crashreporter_info__ __attribute__((__used__)) =
     44   &__crashreporter_info_buff__[0];
     45 asm(".desc ___crashreporter_info__, 0x10");
     46 } // extern "C"
     47 static BlockingMutex crashreporter_info_mutex(LINKER_INITIALIZED);
     48 
     49 INLINE 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