chiark / gitweb /
sd-bus: sync kdbus.h
authorDaniel Mack <daniel@zonque.org>
Tue, 24 Feb 2015 11:10:13 +0000 (12:10 +0100)
committerDaniel Mack <daniel@zonque.org>
Tue, 24 Feb 2015 11:10:13 +0000 (12:10 +0100)
Follow two small changes in the kdbus API:

 * Flags are now returned in cmd->return_flags by KDBUS_CMD_NAME_ACQUIRE

 * struct kdbus_item_list has been dropped. The information stored in
   this struct was redundant since awhile already, as all commands
   report their returned slice size anyway.

src/libsystemd/sd-bus/bus-control.c
src/libsystemd/sd-bus/bus-kernel.c
src/libsystemd/sd-bus/kdbus.h

index 19aa4bd4f04ad37d2abd5b049bb45b922102591c..43c96726f8200e2f6d11b5b0bb45502ca7aec730 100644 (file)
@@ -76,7 +76,7 @@ static int bus_request_name_kernel(sd_bus *bus, const char *name, uint64_t flags
         if (r < 0)
                 return -errno;
 
-        if (n->flags & KDBUS_NAME_IN_QUEUE)
+        if (n->return_flags & KDBUS_NAME_IN_QUEUE)
                 return 0;
 
         return 1;
index 4333445f2a87e7dc288c2096f5eee4177b88ad9d..9e74530a362d4df1aefe856c9597e62c995386ff 100644 (file)
@@ -840,9 +840,8 @@ fail:
 
 int bus_kernel_take_fd(sd_bus *b) {
         struct kdbus_bloom_parameter *bloom = NULL;
+        struct kdbus_item *items, *item;
         struct kdbus_cmd_hello *hello;
-        struct kdbus_item_list *items;
-        struct kdbus_item *item;
         _cleanup_free_ char *g = NULL;
         const char *name;
         size_t l = 0, m = 0, sz;
@@ -968,7 +967,7 @@ int bus_kernel_take_fd(sd_bus *b) {
 
         /* extract bloom parameters from items */
         items = (void*)((uint8_t*)b->kdbus_buffer + hello->offset);
-        KDBUS_ITEM_FOREACH(item, items, items) {
+        KDBUS_FOREACH(item, items, hello->items_size) {
                 switch (item->type) {
                 case KDBUS_ITEM_BLOOM_PARAMETER:
                         bloom = &item->bloom_parameter;
index 4f321eb3ebebc707ec698d47fb44305d4159f392..6cbd01c5030be5c55d747d06b4f67aa739060ba9 100644 (file)
@@ -456,16 +456,6 @@ struct kdbus_item {
        };
 } __attribute__((__aligned__(8)));
 
-/**
- * struct kdbus_item_list - A list of items
- * @size:              The total size of the structure
- * @items:             Array of items
- */
-struct kdbus_item_list {
-       __u64 size;
-       struct kdbus_item items[0];
-} __attribute__((__aligned__(8)));
-
 /**
  * enum kdbus_msg_flags - type of message
  * @KDBUS_MSG_EXPECT_REPLY:    Expect a reply message, used for
@@ -699,10 +689,10 @@ enum kdbus_hello_flags {
  * @id:                        The ID of this connection (kernel → userspace)
  * @pool_size:         Size of the connection's buffer where the received
  *                     messages are placed
- * @offset:            Pool offset where additional items of type
- *                     kdbus_item_list are stored. They contain information
- *                     about the bus and the newly created connection.
- * @items_size:                Copy of item_list.size stored in @offset.
+ * @offset:            Pool offset where items are returned to report
+ *                     additional information about the bus and the newly
+ *                     created connection.
+ * @items_size:                Size of buffer returned in the pool slice at @offset.
  * @id128:             Unique 128-bit ID of the bus (kernel → userspace)
  * @items:             A list of items
  *