|  | //===-- working_set.h -------------------------------------------*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // This file is a part of EfficiencySanitizer, a family of performance tuners. | 
|  | // | 
|  | // Header for working-set-specific code. | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef WORKING_SET_H | 
|  | #define WORKING_SET_H | 
|  |  | 
|  | #include "interception/interception.h" | 
|  | #include "sanitizer_common/sanitizer_internal_defs.h" | 
|  |  | 
|  | namespace __esan { | 
|  |  | 
|  | void initializeWorkingSet(); | 
|  | void initializeShadowWorkingSet(); | 
|  | int finalizeWorkingSet(); | 
|  | void reportWorkingSet(); | 
|  | unsigned int getSampleCountWorkingSet(); | 
|  | void processRangeAccessWorkingSet(uptr PC, uptr Addr, SIZE_T Size, | 
|  | bool IsWrite); | 
|  |  | 
|  | // Platform-dependent. | 
|  | void registerMemoryFaultHandler(); | 
|  | bool processWorkingSetSignal(int SigNum, void (*Handler)(int), | 
|  | void (**Result)(int)); | 
|  | bool processWorkingSetSigaction(int SigNum, const void *Act, void *OldAct); | 
|  | bool processWorkingSetSigprocmask(int How, void *Set, void *OldSet); | 
|  |  | 
|  | } // namespace __esan | 
|  |  | 
|  | #endif // WORKING_SET_H |