1#ifndef SEAD_PTR_UTIL_H_
2#define SEAD_PTR_UTIL_H_
4#include <basis/seadAssert.h>
5#include <basis/seadTypes.h>
14 return (
void*)(uintptr(ptr) + (alignment - 1) & ~(alignment - 1));
20 static void*
addOffset(
const void* ptr, d_sintptr offset) {
return (u8*)ptr + offset; }
21 static d_sintptr diff(
const void* a,
const void* b) {
return (d_sintptr)a - (d_sintptr)b; }
23 static bool isInclude(
const void* ptr,
const void* begin,
const void* end) {
return begin <= ptr && ptr < end; }
25 static bool isAligned(
const void* ptr, s32 alignment)
28 return reinterpret_cast<uintptr_t>(ptr) %
static_cast<uintptr_t>(alignment) == 0;
Definition seadPtrUtil.h:10
static bool isAlignedPow2(const void *ptr, u32 alignment)
static void * roundUpPow2(const void *ptr, u32 alignment)
Definition seadPtrUtil.h:12
static bool isAligned(const void *ptr, s32 alignment)
Definition seadPtrUtil.h:25
static void * addOffset(const void *ptr, d_sintptr offset)
Definition seadPtrUtil.h:20
static void * roundUpN(const void *, u32)
static bool isInclude(const void *ptr, const void *begin, const void *end)
Definition seadPtrUtil.h:23
static void * roundDownN(const void *, u32)
static bool isAlignedN(const void *, s32)
static d_sintptr diff(const void *a, const void *b)
Definition seadPtrUtil.h:21
static void * roundDownPow2(const void *, u32)
Definition seadAssert.h:44
#define SEAD_ASSERT(condition)
Definition seadAssert.h:24