summaryrefslogtreecommitdiff
path: root/src/common/alignment.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-10-18 21:50:45 -0400
committerGitHub <noreply@github.com>2018-10-18 21:50:45 -0400
commitfdd82b754ae4c4525459864659b3408a503bb211 (patch)
tree5614fc367c78a769937a47d66026c3a6190aa7a7 /src/common/alignment.h
parent7f152f22737dbd632568dded33d1fe1435d80376 (diff)
parent4b5ae8dbaa267d0f269ded8e621b43065fb5ae20 (diff)
Merge pull request #1523 from lioncash/lock
svc: Add missing error checks in svcArbitrateLock/svcArbitrateUnlock
Diffstat (limited to 'src/common/alignment.h')
-rw-r--r--src/common/alignment.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/common/alignment.h b/src/common/alignment.h
index 225770fab..d94a2291f 100644
--- a/src/common/alignment.h
+++ b/src/common/alignment.h
@@ -19,4 +19,16 @@ constexpr T AlignDown(T value, std::size_t size) {
return static_cast<T>(value - value % size);
}
+template <typename T>
+constexpr bool Is4KBAligned(T value) {
+ static_assert(std::is_unsigned_v<T>, "T must be an unsigned value.");
+ return (value & 0xFFF) == 0;
+}
+
+template <typename T>
+constexpr bool IsWordAligned(T value) {
+ static_assert(std::is_unsigned_v<T>, "T must be an unsigned value.");
+ return (value & 0b11) == 0;
+}
+
} // namespace Common