summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShehjar Tikoo <shehjart@gluster.com>2010-02-25 15:37:45 +0000
committerAnand V. Avati <avati@dev.gluster.com>2010-03-04 03:12:10 -0800
commitbdf3fc698515b44e6f1a11f6dbc8d9ff4b5fd74e (patch)
tree4b046729ca9e7dfd4578e82097c6d9cd93e192d6
parentdb199434dfccfb4db5335f6ba18298e9e61bc415 (diff)
iobuf: Expose macros and create new ones
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 597 (miscellaneous fixes for xlators to work well with NFS xlator) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=597
-rw-r--r--libglusterfs/src/iobuf.c9
-rw-r--r--libglusterfs/src/iobuf.h8
2 files changed, 17 insertions, 0 deletions
diff --git a/libglusterfs/src/iobuf.c b/libglusterfs/src/iobuf.c
index c2c1b9ac3e6..e075bf52445 100644
--- a/libglusterfs/src/iobuf.c
+++ b/libglusterfs/src/iobuf.c
@@ -740,3 +740,12 @@ iobuf_stats_dump (struct iobuf_pool *iobuf_pool)
return;
}
+
+
+void
+iobuf_to_iovec(struct iobuf *iob, struct iovec *iov)
+{
+ iov->iov_base = iobuf_ptr (iob);
+ iov->iov_len = iobuf_pagesize (iob);
+}
+
diff --git a/libglusterfs/src/iobuf.h b/libglusterfs/src/iobuf.h
index 9d35a8191e6..bc2209958cf 100644
--- a/libglusterfs/src/iobuf.h
+++ b/libglusterfs/src/iobuf.h
@@ -24,6 +24,7 @@
#include "common-utils.h"
#include <pthread.h>
#include <sys/mman.h>
+#include <sys/uio.h>
/* Lets try to define the new anonymous mapping
* flag, in case the system is still using the
@@ -107,6 +108,13 @@ struct iobuf_pool *iobuf_pool_new (size_t arena_size, size_t page_size);
void iobuf_pool_destroy (struct iobuf_pool *iobuf_pool);
struct iobuf *iobuf_get (struct iobuf_pool *iobuf_pool);
void iobuf_unref (struct iobuf *iobuf);
+struct iobuf *iobuf_ref (struct iobuf *iobuf);
+void iobuf_pool_destroy (struct iobuf_pool *iobuf_pool);
+void iobuf_to_iovec(struct iobuf *iob, struct iovec *iov);
+
+#define iobuf_ptr(iob) ((iob)->ptr)
+#define iobpool_pagesize(iobpool) ((iobpool)->page_size)
+#define iobuf_pagesize(iob) (iobpool_pagesize((iob)->iobuf_arena->iobuf_pool))
struct iobref {