return 0;
}
+#ifndef inline_memcpy
+#define inline_memcpy(dest, src, n) memcpy(dest, src, n)
+#endif
+
/*
* Use the architecture-specific memcpy implementation for constant-sized
* inputs, but rely on an inline memcpy for length statically unknown.
/* arch-agnostic implementation */
-static inline int fls(unsigned int x)
+static inline int lttng_ust_fls(unsigned int x)
{
int r = 32;
{
int order;
- order = fls(count) - 1;
+ order = lttng_ust_fls(count) - 1;
if (count & (count - 1))
order++;
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 */