chiark / gitweb /
man: document sd_bus_message_get_cookie()
[elogind.git] / src / libsystemd-bus / kdbus.h
index 8db165c9abd1c1d7508eeddfa9e789c54bac5dc7..71cfe06eac1b37eace0f0b65ae8b8f05cf751087 100644 (file)
@@ -313,10 +313,11 @@ struct kdbus_item {
 
 /**
  * enum kdbus_msg_flags - type of message
- * @KDBUS_MSG_FLAGS_EXPECT_REPLY:      Expect a reply message, used for method
- *                                     calls. The userspace-supplied cookie identifies
- *                                     the message and the respective reply
- *                                     carries the cookie in cookie_reply
+ * @KDBUS_MSG_FLAGS_EXPECT_REPLY:      Expect a reply message, used for
+ *                                     method calls. The userspace-supplied
+ *                                     cookie identifies the message and the
+ *                                     respective reply carries the cookie
+ *                                     in cookie_reply
  * @KDBUS_MSG_FLAGS_NO_AUTO_START:     Do not start a service, if the addressed
  *                                     name is not currently active
  */
@@ -328,7 +329,7 @@ enum kdbus_msg_flags {
 /**
  * enum kdbus_payload_type - type of payload carried by message
  * @KDBUS_PAYLOAD_KERNEL:      Kernel-generated simple message
- * @KDBUS_PAYLOAD_DBUS:                D-Bus marshalling
+ * @KDBUS_PAYLOAD_DBUS:                D-Bus marshalling
  */
 enum kdbus_payload_type {
        KDBUS_PAYLOAD_KERNEL,
@@ -342,23 +343,15 @@ enum kdbus_payload_type {
  * @dst_id:            64-bit ID of the destination connection
  * @src_id:            64-bit ID of the source connection
  * @payload_type:      Payload type (KDBUS_PAYLOAD_*)
- * @cookie:            Userspace-supplied cookie to uniquely identify a
- *                     message, unsually all messages carry this
- * @cookie_reply:      A reply to the message with the same cookie. The
- *                     reply itself has its own unique cookie, @cookie_reply
- *                     connects the reply to the request message.
- * @timeout_ns:                For non-kernel-generated messages, this denotes the
- *                     message timeout in nanoseconds. A message has to be
- *                     received with KDBUS_CMD_MSG_RECV by the destination
- *                     connection within this time frame. For messages that
- *                     have KDBUS_MSG_FLAGS_EXPECT_REPLY set in @flags,
- *                     this value also denotes the timeout for the reply to
- *                     this message. If there is no reply, or the message is
- *                     not received in time by the other side, a
- *                     kernel-generated message with an attached
- *                     KDBUS_ITEM_REPLY_TIMEOUT item is sent to @src_id.
- *                     A 0-value is only valid if KDBUS_MSG_FLAGS_EXPECT_REPLY
- *                     is unset in @flags.
+ * @cookie:            Userspace-supplied cookie, for the connection
+ *                     to identify its messages
+ * @cookie_reply:      A reply to the requesting message with the same
+ *                     cookie. The requesting connection can match its
+ *                     request and the reply with this value
+ * @timeout_ns:                The time to wait for a message reply from the peer.
+ *                     If there is no reply, a kernel-generated message
+ *                     with an attached KDBUS_ITEM_REPLY_TIMEOUT item
+ *                     is sent to @src_id.
  * @items:             A list of kdbus_items containing the message payload
  */
 struct kdbus_msg {
@@ -368,8 +361,10 @@ struct kdbus_msg {
        __u64 src_id;
        __u64 payload_type;
        __u64 cookie;
-       __u64 cookie_reply;
-       __u64 timeout_ns;
+       union {
+               __u64 cookie_reply;
+               __u64 timeout_ns;
+       };
        struct kdbus_item items[0];
 } __attribute__((aligned(8)));