hoarddetours.cpp File Reference
Hooks to Hoard for Detours.  
More...
#include "VERSION.h"
#include <windows.h>
#include <stdio.h>
#include <malloc.h>
#include "detours.h"
#include "cpuinfo.h"
#include "hldefines.h"
#include "check.h"
#include "fixedrequestheap.h"
#include "hoardmanager.h"
#include "addheaderheap.h"
#include "threadpoolheap.h"
#include "redirectfree.h"
#include "ignoreinvalidfree.h"
#include "conformantheap.h"
#include "hoardsuperblock.h"
#include "lockmallocheap.h"
#include "alignedsuperblockheap.h"
#include "alignedmmap.h"
#include "globalheap.h"
#include "ansiwrapper.h"
#include "debugheap.h"
#include "lockedheap.h"
#include "winlock.h"
#include "bins4k.h"
#include "bins8k.h"
#include "bins16k.h"
#include "bins64k.h"
#include "oneheap.h"
#include "freelistheap.h"
#include "threadheap.h"
#include "hybridheap.h"
#include "posixlock.h"
#include "spinlock.h"
#include "wrapper.cpp"
| Classes | 
| class | TheCustomHeapType | 
| Defines | 
| #define | CUSTOM_PREFIX(n)   hoard##n | 
| #define | WIN32_LEAN_AND_MEAN | 
| #define | _WIN32_WINNT   0x0500 | 
| #define | NT | 
| #define | REPLACE(module, x, fn) | 
| #define | REMOVE(module, x, fn) | 
| Typedefs | 
| typedef void(* | exitFunctionType )(void) | 
| Functions | 
| static TheCustomHeapType * | getCustomHeap (void) | 
|  | DETOUR_TRAMPOLINE (void __cdecl real_onexit(void(*f)(void)), onexit) | 
|  | DETOUR_TRAMPOLINE (void __cdecl real_exit(int code), exit) | 
|  | DETOUR_TRAMPOLINE (void *__cdecl real_malloc(size_t sz), malloc) | 
|  | DETOUR_TRAMPOLINE (void *__cdecl real_realloc(void *ptr, size_t sz), realloc) | 
|  | DETOUR_TRAMPOLINE (void *__cdecl real_calloc(size_t sz, size_t n), calloc) | 
|  | DETOUR_TRAMPOLINE (void *__cdecl real_free(void *ptr), free) | 
|  | DETOUR_TRAMPOLINE (size_t __cdecl real_msize(void *ptr), _msize) | 
|  | DETOUR_TRAMPOLINE (void *__cdecl real_expand(void *memblock, size_t size), _expand) | 
|  | DETOUR_TRAMPOLINE (char *__cdecl real_strdup(const char *s), strdup) | 
| void | my_onexit (void(*function)(void)) | 
| void | my_exit (int code) | 
| void | my_cexit (void) | 
| void * | my_expand (void *memblock, size_t size) | 
| void | trampolineInstall (HMODULE hModule, bool insert) | 
| void | trampolineWith (HMODULE hModule) | 
| static void | initializeMaps (void) | 
| static void | findUnusedHeap (void) | 
| static void | releaseHeap (void) | 
| BOOL APIENTRY | DllMain (HINSTANCE hModule, DWORD dwReason, PVOID lpReserved) | 
| Variables | 
| volatile int | anyThreadCreated = 0 | 
| const int | MaxThreads = 512 | 
| const int | NumHeaps = 64 | 
| static void * | objectAllocated = (void *) 0x1 | 
| static const int | HOARD_MAX_EXIT_FUNCTIONS = 512 | 
| static int | exitCount = 0 | 
| exitFunctionType | exitFunctionBuffer [HOARD_MAX_EXIT_FUNCTIONS] | 
Detailed Description
Hooks to Hoard for Detours. 
- Author:
- Emery Berger <http://www.cs.umass.edu/~emery> 
Define Documentation
      
        
          | #define _WIN32_WINNT   0x0500 | 
      
 
 
      
        
          | #define CUSTOM_PREFIX | ( | n |  | ) | hoard##n | 
      
 
 
      
        
          | #define REMOVE | ( | module, | 
        
          |  |  | x, | 
        
          |  |  | fn |  | ) |  | 
      
 
Value:{ \
  PBYTE p; \
  p = DetourFindFunction ((module), (x)); \
  if (p) { \
    DetourRemove (p, (PBYTE) (fn));  \
  } \
}
 
 
      
        
          | #define REPLACE | ( | module, | 
        
          |  |  | x, | 
        
          |  |  | fn |  | ) |  | 
      
 
Value:{ \
  PBYTE p; \
  p = DetourFindFunction ((module), (x)); \
  if (p) { \
    DetourFunction (p, (PBYTE) (fn));  \
  } \
}
 
 
      
        
          | #define WIN32_LEAN_AND_MEAN | 
      
 
 
Typedef Documentation
Function Documentation
      
        
          | DETOUR_TRAMPOLINE | ( | char *__cdecl | real_strdupconst char *s, | 
        
          |  |  | strdup |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | DETOUR_TRAMPOLINE | ( | void *__cdecl | real_expandvoid *memblock, size_t size, | 
        
          |  |  | _expand |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | DETOUR_TRAMPOLINE | ( | size_t __cdecl | real_msizevoid *ptr, | 
        
          |  |  | _msize |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | DETOUR_TRAMPOLINE | ( | void *__cdecl | real_freevoid *ptr, | 
        
          |  |  | free |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | DETOUR_TRAMPOLINE | ( | void *__cdecl | real_callocsize_t sz, size_t n, | 
        
          |  |  | calloc |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | DETOUR_TRAMPOLINE | ( | void *__cdecl | real_reallocvoid *ptr, size_t sz, | 
        
          |  |  | realloc |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | DETOUR_TRAMPOLINE | ( | void *__cdecl | real_mallocsize_t sz, | 
        
          |  |  | malloc |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | DETOUR_TRAMPOLINE | ( | void __cdecl | real_exitint code, | 
        
          |  |  | exit |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | DETOUR_TRAMPOLINE | ( | void __cdecl | real_onexitvoid(*f)(void), | 
        
          |  |  | onexit |  |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | BOOL APIENTRY DllMain | ( | HINSTANCE | hModule, | 
        
          |  |  | DWORD | dwReason, | 
        
          |  |  | PVOID | lpReserved |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | static void findUnusedHeap | ( | void |  | ) |  [static] | 
      
 
 
      
        
          | static void initializeMaps | ( | void |  | ) |  [static] | 
      
 
 
      
        
          | void my_exit | ( | int | code | ) |  | 
      
 
 
      
        
          | void* my_expand | ( | void * | memblock, | 
        
          |  |  | size_t | size |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | void my_onexit | ( | void(*)(void) | function | ) |  | 
      
 
 
      
        
          | static void releaseHeap | ( | void |  | ) |  [static] | 
      
 
 
      
        
          | void trampolineInstall | ( | HMODULE | hModule, | 
        
          |  |  | bool | insert |  | 
        
          |  | ) |  |  |  | 
      
 
 
      
        
          | void trampolineWith | ( | HMODULE | hModule | ) |  | 
      
 
 
Variable Documentation