[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