diff options
author | gVisor bot <gvisor-bot@google.com> | 2020-02-11 11:08:28 -0800 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-02-11 11:09:31 -0800 |
commit | 762e4761cc4edd92108f6836ad1933c7158b8be8 (patch) | |
tree | 1f58c84c31be8b7d9c9408188c9cebfb1419cd93 /pkg/binary/binary.go | |
parent | 0dd9ee0d1e08d4207f78ab032a5fde171343c4b4 (diff) |
Move Align{Up,Down} into binary package.
PiperOrigin-RevId: 294477647
Diffstat (limited to 'pkg/binary/binary.go')
-rw-r--r-- | pkg/binary/binary.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/pkg/binary/binary.go b/pkg/binary/binary.go index 631785f7b..25065aef9 100644 --- a/pkg/binary/binary.go +++ b/pkg/binary/binary.go @@ -254,3 +254,13 @@ func WriteUint64(w io.Writer, order binary.ByteOrder, num uint64) error { _, err := w.Write(buf) return err } + +// 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) +} |