summaryrefslogtreecommitdiffhomepage
path: root/pkg/bits/bits.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/bits/bits.go')
-rw-r--r--pkg/bits/bits.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/pkg/bits/bits.go b/pkg/bits/bits.go
index a26433ad6..d16448c3d 100644
--- a/pkg/bits/bits.go
+++ b/pkg/bits/bits.go
@@ -14,3 +14,13 @@
// Package bits includes all bit related types and operations.
package bits
+
+// AlignUp rounds a length up to an alignment. align must be a power of 2.
+func AlignUp(length int, align uint) int {
+ return (length + int(align) - 1) & ^(int(align) - 1)
+}
+
+// AlignDown rounds a length down to an alignment. align must be a power of 2.
+func AlignDown(length int, align uint) int {
+ return length & ^(int(align) - 1)
+}