Commit 01f94ea9 authored by Niklas Cassel's avatar Niklas Cassel Committed by Jim Harris
Browse files

util: add spdk_u64_is_pow2()



There already is a spdk_u32_is_pow2() function that handles uint32_t.
Add a spdk_u64_is_pow2() function that handles uint64_t.

Signed-off-by: default avatarNiklas Cassel <niklas.cassel@wdc.com>
Change-Id: Idc96680dbe280d1510aba94a6900eff64ccb4f03
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10179


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 1f9c7a74
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -110,6 +110,19 @@ spdk_u32_is_pow2(uint32_t x)
	return (x & (x - 1)) == 0;
}

/**
 * Check if a uint64_t is a power of 2.
 */
static inline bool
spdk_u64_is_pow2(uint64_t x)
{
	if (x == 0) {
		return false;
	}

	return (x & (x - 1)) == 0;
}

static inline uint64_t
spdk_divide_round_up(uint64_t num, uint64_t divisor)
{