Home | History | Annotate | Line # | Download | only in sanitizer
      1 //===-- sanitizer/scudo_interface.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 /// Public Scudo interface header.
     11 //
     12 //===----------------------------------------------------------------------===//
     13 #ifndef SANITIZER_SCUDO_INTERFACE_H_
     14 #define SANITIZER_SCUDO_INTERFACE_H_
     15 
     16 #include <sanitizer/common_interface_defs.h>
     17 
     18 #ifdef __cplusplus
     19 extern "C" {
     20 #endif
     21   // This function may be optionally provided by a user and should return
     22   // a string containing Scudo runtime options. See scudo_flags.h for details.
     23   const char* __scudo_default_options(void);
     24 
     25   // This function allows to set the RSS limit at runtime. This can be either
     26   // the hard limit (HardLimit=1) or the soft limit (HardLimit=0). The limit
     27   // can be removed by setting LimitMb to 0. This function's parameters should
     28   // be fully trusted to avoid security mishaps.
     29   void __scudo_set_rss_limit(size_t LimitMb, int HardLimit);
     30 
     31   // This function outputs various allocator statistics for both the Primary
     32   // and Secondary allocators, including memory usage, number of allocations
     33   // and deallocations.
     34   void __scudo_print_stats(void);
     35 #ifdef __cplusplus
     36 }  // extern "C"
     37 #endif
     38 
     39 #endif  // SANITIZER_SCUDO_INTERFACE_H_
     40