libust: put offset macros in buffer.h
[ust.git] / libust / buffer.h
diff --git a/libust/buffer.h b/libust/buffer.h
new file mode 100644 (file)
index 0000000..c974a0b
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef UST_BUFFER_H
+#define UST_BUFFER_H
+
+/* Buffer offset macros */
+
+/*
+ * BUFFER_TRUNC zeroes the subbuffer offset and the subbuffer number parts of
+ * the offset, which leaves only the buffer number.
+ */
+#define BUFFER_TRUNC(offset, chan) \
+       ((offset) & (~((chan)->alloc_size-1)))
+#define BUFFER_OFFSET(offset, chan) ((offset) & ((chan)->alloc_size - 1))
+#define SUBBUF_OFFSET(offset, chan) ((offset) & ((chan)->subbuf_size - 1))
+#define SUBBUF_ALIGN(offset, chan) \
+       (((offset) + (chan)->subbuf_size) & (~((chan)->subbuf_size - 1)))
+#define SUBBUF_TRUNC(offset, chan) \
+       ((offset) & (~((chan)->subbuf_size - 1)))
+#define SUBBUF_INDEX(offset, chan) \
+       (BUFFER_OFFSET((offset), chan) >> (chan)->subbuf_size_order)
+
+
+#endif /* UST_BUFFER_H */
This page took 0.022458 seconds and 4 git commands to generate.