/**
* 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
*/
/**
* 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,
* @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 {
__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)));