squall/storm/Memory.hpp

38 lines
1,013 B
C++
Raw Normal View History

#ifndef STORM_MEMORY_HPP
#define STORM_MEMORY_HPP
#include <cstdint>
#include <cstdlib>
2025-09-03 22:15:59 -05:00
#define SMEM_FLAG_ZEROMEMORY 0x8
#define STORM_ALLOC(bytes) \
SMemAlloc(bytes, __FILE__, __LINE__, 0x0)
#define STORM_ALLOC_ZERO(bytes) \
SMemAlloc(bytes, __FILE__, __LINE__, SMEM_FLAG_ZEROMEMORY)
#define STORM_NEW(t) \
new(SMemAlloc(sizeof(t), __FILE__, __LINE__, 0x0)) t
#define STORM_NEW_ZERO(t) \
new(SMemAlloc(sizeof(t), __FILE__, __LINE__, SMEM_FLAG_ZEROMEMORY)) t
void* SMemAlloc(size_t bytes, const char* filename, int32_t linenumber, uint32_t flags = 0);
void SMemCopy(void* dst, void* src, size_t bytes);
2025-09-01 20:47:51 -07:00
void SMemFill(void* ptr, size_t bytes, uint8_t value);
void SMemFree(void* ptr);
void SMemFree(void* ptr, const char* filename, int32_t linenumber, uint32_t flags = 0);
void SMemMove(void* dst, void* src, size_t bytes);
void* SMemReAlloc(void* ptr, size_t bytes, const char* filename, int32_t linenumber, uint32_t flags = 0);
2025-09-01 21:00:55 -07:00
void SMemZero(void* ptr, size_t bytes);
#endif