util: introduce KDBUS_ITEM_PAYLOAD_SIZE
authorDaniel Mack <zonque@gmail.com>
Sat, 16 Aug 2014 08:53:28 +0000 (10:53 +0200)
committerDaniel Mack <zonque@gmail.com>
Sat, 16 Aug 2014 08:56:07 +0000 (10:56 +0200)
Add a simple macro to determine an item's payload size, and use it in
message.c.

message.c
util.h

index f0d071dc9714ab3f926cd435ce2cf079ac20ceaf..9022efe2a9dcadf53eb65bff574639078f9adc2b 100644 (file)
--- a/message.c
+++ b/message.c
@@ -98,7 +98,7 @@ static int kdbus_msg_scan_items(struct kdbus_conn *conn,
                if (++items_count > KDBUS_MSG_MAX_ITEMS)
                        return -E2BIG;
 
-               payload_size = item->size - KDBUS_ITEM_HEADER_SIZE;
+               payload_size = KDBUS_ITEM_PAYLOAD_SIZE(item);
 
                switch (item->type) {
                case KDBUS_ITEM_PAYLOAD_VEC:
diff --git a/util.h b/util.h
index a4ece8940989d5e104aba2905fd445097df1b559..130ff9ae71bcb92eba1aa5ee550d5cdc2af6aa8b 100644 (file)
--- a/util.h
+++ b/util.h
@@ -26,6 +26,7 @@
 
 /* generic access and iterators over a stream of items */
 #define KDBUS_ITEM_HEADER_SIZE offsetof(struct kdbus_item, data)
+#define KDBUS_ITEM_PAYLOAD_SIZE(_i) ((_i)->size - KDBUS_ITEM_HEADER_SIZE)
 #define KDBUS_ITEM_SIZE(_s) KDBUS_ALIGN8(KDBUS_ITEM_HEADER_SIZE + (_s))
 #define KDBUS_ITEM_NEXT(_i) (typeof(_i))(((u8 *)_i) + KDBUS_ALIGN8((_i)->size))
 #define KDBUS_ITEMS_SIZE(_h, _is) ((_h)->size - offsetof(typeof(*_h), _is))