]> git.proxmox.com Git - ovs.git/commitdiff
ofpbuf: New macro OFPBUF_STUB_INITIALIZER.
authorBen Pfaff <blp@nicira.com>
Thu, 23 Jul 2015 23:28:50 +0000 (16:28 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 31 Jul 2015 20:14:53 +0000 (13:14 -0700)
To be used in an upcoming commit.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
lib/ofpbuf.h

index b30cbdb2cf73032a5dd13d25ba415dac808c626d..9e82de2cb830ca719c8709302a9310394ec06a05 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2015 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -64,6 +64,25 @@ struct ofpbuf {
     enum ofpbuf_source source;  /* Source of memory allocated as 'base'. */
 };
 
+/* An initializer for a struct ofpbuf that will be initially empty and
+ * uses the space in STUB (which should be an array) as a stub.
+ *
+ * Usage example:
+ *
+ *     uint64_t stub[1024 / 8]; // 1 kB stub properly aligned for 64-bit data.
+ *     struct ofpbuf ofpbuf = OFPBUF_STUB_INITIALIZER(stub);
+ */
+#define OFPBUF_STUB_INITIALIZER(STUB) {         \
+        .base = (STUB),                         \
+        .data = (STUB),                         \
+        .size = 0,                              \
+        .allocated = sizeof (STUB),             \
+        .header = NULL,                         \
+        .msg = NULL,                            \
+        .list_node = OVS_LIST_POISON,           \
+        .source = OFPBUF_STUB,                  \
+    }
+
 void ofpbuf_use(struct ofpbuf *, void *, size_t);
 void ofpbuf_use_stack(struct ofpbuf *, void *, size_t);
 void ofpbuf_use_stub(struct ofpbuf *, void *, size_t);