+static inline unsigned int cbuf_order(unsigned int x)
+{
+ return 32 - __builtin_clz(x - 1);
+}
+
+static inline unsigned long cbuf_size(int order)
+{
+ unsigned long page_size = sysconf(_SC_PAGESIZE);
+ unsigned long ret = 1ULL << order;
+
+ if (ret < page_size)
+ ret = page_size;
+
+ return ret;
+}
+
+void *cbuf_alloc(unsigned int order);
+void cbuf_free(void *ptr, unsigned int order);
+