summaryrefslogtreecommitdiff
path: root/src/common/alignment.h
diff options
context:
space:
mode:
authorGravatar bunnei2018-10-18 21:50:45 -0400
committerGravatar GitHub2018-10-18 21:50:45 -0400
commitfdd82b754ae4c4525459864659b3408a503bb211 (patch)
tree5614fc367c78a769937a47d66026c3a6190aa7a7 /src/common/alignment.h
parentMerge pull request #1511 from lioncash/content (diff)
parentsvc: Check for word alignment of addresses within svcArbitrateLock/svcArbitra... (diff)
downloadyuzu-fdd82b754ae4c4525459864659b3408a503bb211.tar.gz
yuzu-fdd82b754ae4c4525459864659b3408a503bb211.tar.xz
yuzu-fdd82b754ae4c4525459864659b3408a503bb211.zip
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) {
19 return static_cast<T>(value - value % size); 19 return static_cast<T>(value - value % size);
20} 20}
21 21
22template <typename T>
23constexpr bool Is4KBAligned(T value) {
24 static_assert(std::is_unsigned_v<T>, "T must be an unsigned value.");
25 return (value & 0xFFF) == 0;
26}
27
28template <typename T>
29constexpr bool IsWordAligned(T value) {
30 static_assert(std::is_unsigned_v<T>, "T must be an unsigned value.");
31 return (value & 0b11) == 0;
32}
33
22} // namespace Common 34} // namespace Common