X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=libringbuffer%2Fbackend_internal.h;h=36d53dfd531357037501a539cd8c991c9d2ca4d9;hb=35897f8b2d311b756b81657dad9c53ef1c0fad8a;hp=c4fb7604aa18bf9b3018551257dd3be61285b022;hpb=993e8a491eba696a20f91c3688b90f2b155a8c9c;p=lttng-ust.git diff --git a/libringbuffer/backend_internal.h b/libringbuffer/backend_internal.h index c4fb7604..36d53dfd 100644 --- a/libringbuffer/backend_internal.h +++ b/libringbuffer/backend_internal.h @@ -475,4 +475,20 @@ static inline int get_count_order(unsigned int count) return order; } +static inline +unsigned int hweight32(unsigned int value) +{ + unsigned int r; + + r = value; + r = r - ((r >> 1) & 0x55555555); + r = (r & 0x33333333) + ((r >> 2) & 0x33333333); + r += r >> 4; + r &= 0x0F0F0F0F; + r += r >> 8; + r += r >> 16; + r &= 0x000000FF; + return r; +} + #endif /* _LINUX_RING_BUFFER_BACKEND_INTERNAL_H */