0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-09-26 18:38:52 +02:00

ircd::util: Add volatile overload for alignment checker.

This commit is contained in:
Jason Volk 2022-03-11 18:38:41 -08:00
parent 9c7ac98d9a
commit 013117495c

View file

@ -24,6 +24,7 @@ inline namespace util
// Alignment inline tools
bool aligned(const void *const &, const size_t &alignment);
bool aligned(const volatile void *const &, const size_t &alignment);
template<class T = char> const T *align(const void *const &, const size_t &alignment);
template<class T = char> T *align(void *const &, const size_t &alignment);
template<class T = char> const T *align_up(const void *const &, const size_t &alignment);
@ -86,6 +87,14 @@ ircd::util::aligned(const void *const &ptr,
return aligned(uintptr_t(ptr), alignment);
}
[[gnu::always_inline]]
inline bool
ircd::util::aligned(const volatile void *const &ptr,
const size_t &alignment)
{
return aligned(uintptr_t(ptr), alignment);
}
constexpr uintptr_t
ircd::util::align_up(uintptr_t ptr,
size_t alignment)