1 |
|
|
#ifndef ZSERIO_BITPOSITION_UTIL_H_INC |
2 |
|
|
#define ZSERIO_BITPOSITION_UTIL_H_INC |
3 |
|
|
|
4 |
|
|
#include <cstddef> |
5 |
|
|
|
6 |
|
|
namespace zserio |
7 |
|
|
{ |
8 |
|
|
|
9 |
|
|
/** |
10 |
|
|
* Aligns the bit size to the given alignment value. |
11 |
|
|
* |
12 |
|
|
* \param alignmentValue Value to align. |
13 |
|
|
* \param bitPosition Current bit position where to apply alignment. |
14 |
|
|
* |
15 |
|
|
* \return Aligned bit position. |
16 |
|
|
*/ |
17 |
|
9742 |
inline size_t alignTo(size_t alignmentValue, size_t bitPosition) |
18 |
|
|
{ |
19 |
✓✓ |
9506 |
return (bitPosition > 0 && alignmentValue != 0) |
20 |
|
9505 |
? (((bitPosition - 1) / alignmentValue) + 1) * alignmentValue |
21 |
✓✓ |
19247 |
: bitPosition; |
22 |
|
|
} |
23 |
|
|
|
24 |
|
|
} // namespace zserio |
25 |
|
|
|
26 |
|
|
#endif // ifndef ZSERIO_BITPOSITION_UTIL_H_INC |