Utility.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef CORE_UTILITY_H
  2. #define CORE_UTILITY_H
  3. #include "core/Check.h"
  4. #include "core/Types.h"
  5. size_t corePopCount(u64 u);
  6. typedef void (*CoreExitHandler)(int, void*);
  7. void coreExitWithHandler(const char* file, int line, int value);
  8. void coreSetExitHandler(CoreExitHandler h, void* data);
  9. #define CORE_EXIT(exitValue) coreExitWithHandler(__FILE__, __LINE__, exitValue)
  10. typedef void (*CoreOutOfMemoryHandler)(void*);
  11. void coreSetOutOfMemoryHandler(CoreOutOfMemoryHandler h, void* data);
  12. #ifdef CORE_CHECK_MEMORY
  13. void* coreDebugAllocate(const char* file, int line, size_t n);
  14. void* coreDebugReallocate(const char* file, int line, void* p, size_t n);
  15. void coreFreeDebug(const char* file, int line, void* p);
  16. void corePrintMemoryReport();
  17. #define coreAllocate(n) coreDebugAllocate(__FILE__, __LINE__, n)
  18. #define coreReallocate(p, n) coreDebugReallocate(__FILE__, __LINE__, p, n)
  19. #define coreFree(p) coreFreeDebug(__FILE__, __LINE__, p)
  20. #else
  21. void* coreAllocate(size_t n);
  22. void* coreReallocate(void* p, size_t n);
  23. void coreFree(void* p);
  24. #define corePrintMemoryReport()
  25. #endif
  26. #endif