diff options
author | Daniel Mack <daniel@zonque.org> | 2015-02-24 12:10:13 +0100 |
---|---|---|
committer | Daniel Mack <daniel@zonque.org> | 2015-02-24 12:10:13 +0100 |
commit | 6ad4a4fc43e12c8c36f85abbb36e8791ec507519 (patch) | |
tree | bbdb08f632fe9be15e7eae00af5c4f1e5f17ef85 | |
parent | 8527b07be1c5211b50a1a6496585952857a25c73 (diff) |
sd-bus: sync kdbus.h
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.
-rw-r--r-- | src/libsystemd/sd-bus/bus-control.c | 2 | ||||
-rw-r--r-- | src/libsystemd/sd-bus/bus-kernel.c | 5 | ||||
-rw-r--r-- | src/libsystemd/sd-bus/kdbus.h | 18 |
3 files changed, 7 insertions, 18 deletions
diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c index 19aa4bd4f0..43c96726f8 100644 --- a/src/libsystemd/sd-bus/bus-control.c +++ b/src/libsystemd/sd-bus/bus-control.c @@ -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; diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c index 4333445f2a..9e74530a36 100644 --- a/src/libsystemd/sd-bus/bus-kernel.c +++ b/src/libsystemd/sd-bus/bus-kernel.c @@ -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; diff --git a/src/libsystemd/sd-bus/kdbus.h b/src/libsystemd/sd-bus/kdbus.h index 4f321eb3eb..6cbd01c503 100644 --- a/src/libsystemd/sd-bus/kdbus.h +++ b/src/libsystemd/sd-bus/kdbus.h @@ -457,16 +457,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 * method calls. The userspace-supplied @@ -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 * |