Home | History | Annotate | Download | only in esan
      1 //===-- working_set.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 a part of EfficiencySanitizer, a family of performance tuners.
     11 //
     12 // Header for working-set-specific code.
     13 //===----------------------------------------------------------------------===//
     14 
     15 #ifndef WORKING_SET_H
     16 #define WORKING_SET_H
     17 
     18 #include "interception/interception.h"
     19 #include "sanitizer_common/sanitizer_internal_defs.h"
     20 
     21 namespace __esan {
     22 
     23 void initializeWorkingSet();
     24 void initializeShadowWorkingSet();
     25 int finalizeWorkingSet();
     26 void reportWorkingSet();
     27 void processRangeAccessWorkingSet(uptr PC, uptr Addr, SIZE_T Size,
     28                                   bool IsWrite);
     29 
     30 // Platform-dependent.
     31 void registerMemoryFaultHandler();
     32 bool processWorkingSetSignal(int SigNum, void (*Handler)(int),
     33                              void (**Result)(int));
     34 bool processWorkingSetSigaction(int SigNum, const void *Act, void *OldAct);
     35 bool processWorkingSetSigprocmask(int How, void *Set, void *OldSet);
     36 
     37 } // namespace __esan
     38 
     39 #endif // WORKING_SET_H
     40