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