src/dpdk/lib/librte_eal/include/rte_common.h
static inline uint64_t
rte_combine64ms1b(uint64_t v)
{
	v |= v >> 1;
	v |= v >> 2;
	v |= v >> 4;
	v |= v >> 8;
	v |= v >> 16;
	v |= v >> 32;

	return v;
}
/**
 * Combines 64b inputs most significant set bits into the least
 * significant bits to construct a value with the same MSBs as x
 * but all 1's under it.
 *
 * @param v
 *    The integer whose MSBs need to be combined with its LSBs
 * @return
 *    The combined value.
 */
Combines 64b inputs most significant set bits into the least
significant bits to construct a value with the same MSBs as x
but all 1's under it.

@param v
The integer whose MSBs need to be combined with its LSBs
@return
The combined value.
Combines 64b inputs most significant set bits into the least significant bits to construct a value with the same MSBs as x but all 1 ' s under it . @param v The integer whose MSBs need to be combined with its LSBs @return The combined value .
static inline uint64_t
rte_combine64ms1b(uint64_t v)
{
	v |= v >> 1;
	v |= v >> 2;
	v |= v >> 4;
	v |= v >> 8;
	v |= v >> 16;
	v |= v >> 32;
	return v;
}
static inline uint64_t rte_combine64ms1b ( uint64_t v ) { v |= v >> 1 ; v |= v >> 2 ; v |= v >> 4 ; v |= v >> 8 ; v |= v >> 16 ; v |= v >> 32 ; return v ; }
Combines 64b inputs most significant set bits into the least
 significant bits to construct a value with the same MSBs as x
 but all 1's under it.
Combines 64b inputs most significant set bits into the least significant bits to construct a value with the same MSBs as x but all 1 ' s under it .