1#
2# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
3#
4# SPDX-License-Identifier: GPL-2.0-only
5#
6
7
8def align_up(num, bits):
9    ''' align a number up to a bit-boundary '''
10    boundary = 1 << bits
11    return (num + (boundary - 1)) & ~(boundary - 1)
12
13
14def align_down(num, bits):
15    ''' align a number down to a bit-boundary '''
16    boundary = 1 << bits
17    return num & ~(boundary - 1)
18