1#ifndef SEAD_MEM_UTIL_H_
2#define SEAD_MEM_UTIL_H_
3
4#include <basis/seadTypes.h>
5
6namespace sead
7{
8class MemUtil
9{
10public:
11 static void* fill(void* ptr, u8 c, size_t size);
12 static void* fillZero(void* ptr, size_t size);
13 static void* copyOverlap(void* dest, const void* src, size_t size);
14 static void* copy(void* dest, const void* src, size_t size);
15 static void* copyAlign32(void* dest, const void* src, size_t size);
16 static int compare(const void* ptr1, const void* ptr2, size_t size);
17
18 static bool isStack(const void* addr);
19 static bool isHeap(const void* addr);
20
21 /// Checks whether a region of memory is filled with 0.
22 static bool checkFillType(const void* ptr, size_t size);
23
24 static void dumpMemoryBinary(const void* ptr, u32 size_front, u32 size_back, bool is_align);
25};
26} // namespace sead
27
28#define SEAD_PRIM_MEM_UTIL_H_
29#ifdef cafe
30#include <prim/cafe/seadMemUtilCafe.hpp>
31#elif NNSDK
32#include <prim/nin/seadMemUtilNin.hpp>
33#else
34#error "Unknown platform"
35#endif // cafe
36#undef SEAD_PRIM_MEM_UTIL_H_
37
38#endif // SEAD_MEM_UTIL_H_
39