[ovs-dev] [PATCH 4/7] ofpbuf: New function ofpbuf_clone_data_with_headroom().

Ben Pfaff blp at nicira.com
Fri Dec 24 01:15:38 UTC 2010


This will be used in upcoming commits.
---
 lib/ofpbuf.c |   13 +++++++++----
 lib/ofpbuf.h |    2 ++
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/lib/ofpbuf.c b/lib/ofpbuf.c
index fbd2e62..07d7e9f 100644
--- a/lib/ofpbuf.c
+++ b/lib/ofpbuf.c
@@ -134,15 +134,20 @@ ofpbuf_clone(const struct ofpbuf *buffer)
 struct ofpbuf *
 ofpbuf_clone_with_headroom(const struct ofpbuf *buffer, size_t headroom)
 {
-    struct ofpbuf *b = ofpbuf_new_with_headroom(buffer->size, headroom);
-    ofpbuf_put(b, buffer->data, buffer->size);
-    return b;
+    return ofpbuf_clone_data_with_headroom(buffer->data, buffer->size,
+                                           headroom);
 }
 
 struct ofpbuf *
 ofpbuf_clone_data(const void *data, size_t size)
 {
-    struct ofpbuf *b = ofpbuf_new(size);
+    return ofpbuf_clone_data_with_headroom(data, size, 0);
+}
+
+struct ofpbuf *
+ofpbuf_clone_data_with_headroom(const void *data, size_t size, size_t headroom)
+{
+    struct ofpbuf *b = ofpbuf_new_with_headroom(size, headroom);
     ofpbuf_put(b, data, size);
     return b;
 }
diff --git a/lib/ofpbuf.h b/lib/ofpbuf.h
index 15f0ab1..442c90c 100644
--- a/lib/ofpbuf.h
+++ b/lib/ofpbuf.h
@@ -69,6 +69,8 @@ struct ofpbuf *ofpbuf_clone(const struct ofpbuf *);
 struct ofpbuf *ofpbuf_clone_with_headroom(const struct ofpbuf *,
                                           size_t headroom);
 struct ofpbuf *ofpbuf_clone_data(const void *, size_t);
+struct ofpbuf *ofpbuf_clone_data_with_headroom(const void *, size_t,
+                                               size_t headroom);
 void ofpbuf_delete(struct ofpbuf *);
 
 void *ofpbuf_at(const struct ofpbuf *, size_t offset, size_t size);
-- 
1.7.1





More information about the dev mailing list