X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=rculfhash.c;h=fe8beedd7a9119d6b88e9a5e3fddec4267fd22a9;hp=cf822fcd620e98b47d6a718582f1385887f34496;hb=920f8ef668b03c65ca414bd6d53db314da920d1f;hpb=1a401918bbce4b3be849340ac75a597f58db0f14 diff --git a/rculfhash.c b/rculfhash.c index cf822fc..fe8beed 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -446,24 +446,28 @@ unsigned int fls_ulong(unsigned long x) #endif } +/* + * Return the minimum order for which x <= (1UL << order). + * Return -1 if x is 0. + */ int get_count_order_u32(uint32_t x) { - int order; + if (!x) + return -1; - order = fls_u32(x) - 1; - if (x & (x - 1)) - order++; - return order; + return fls_u32(x - 1); } +/* + * Return the minimum order for which x <= (1UL << order). + * Return -1 if x is 0. + */ int get_count_order_ulong(unsigned long x) { - int order; + if (!x) + return -1; - order = fls_ulong(x) - 1; - if (x & (x - 1)) - order++; - return order; + return fls_ulong(x - 1); } #ifdef POISON_FREE