diff options
author | Radim Krčmář <rkrcmar@redhat.com> | 2015-02-17 17:30:52 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2015-03-03 08:33:08 +0100 |
commit | bb7443f6d6f09411ea10f06e6cb0d416bd1ccebd (patch) | |
tree | 3d01f66f23e0bc87df16713247ee40fc075d9586 /util/cutils.c | |
parent | 876d516311c1538a7d29f2abec48b7cda0645eea (diff) |
qxl: refactor rounding up to a nearest power of 2
We already have pow2floor, mirror it and use instead of a function with
similar results (same in used domain), to clarify our intent.
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'util/cutils.c')
-rw-r--r-- | util/cutils.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/util/cutils.c b/util/cutils.c index dbe7412bd8..c2250d1ba5 100644 --- a/util/cutils.c +++ b/util/cutils.c @@ -483,6 +483,20 @@ int64_t pow2floor(int64_t value) return value; } +/* round up to the nearest power of 2 (0 if overflow) */ +uint64_t pow2ceil(uint64_t value) +{ + uint8_t nlz = clz64(value); + + if (is_power_of_2(value)) { + return value; + } + if (!nlz) { + return 0; + } + return 1ULL << (64 - nlz); +} + /* * Implementation of ULEB128 (http://en.wikipedia.org/wiki/LEB128) * Input is limited to 14-bit numbers |