bus: conditionally set cookie_reply/timeout and update kdbus.h
This commit is contained in:
parent
7e94edc2a4
commit
80a33f113b
|
@ -257,8 +257,11 @@ static int bus_message_setup_kmsg(sd_bus *b, sd_bus_message *m) {
|
||||||
m->destination ? unique : KDBUS_DST_ID_BROADCAST;
|
m->destination ? unique : KDBUS_DST_ID_BROADCAST;
|
||||||
m->kdbus->payload_type = KDBUS_PAYLOAD_DBUS;
|
m->kdbus->payload_type = KDBUS_PAYLOAD_DBUS;
|
||||||
m->kdbus->cookie = m->header->serial;
|
m->kdbus->cookie = m->header->serial;
|
||||||
m->kdbus->cookie_reply = m->reply_serial;
|
|
||||||
m->kdbus->timeout_ns = m->timeout * NSEC_PER_USEC;
|
if (m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED)
|
||||||
|
m->kdbus->cookie_reply = m->reply_serial;
|
||||||
|
else
|
||||||
|
m->kdbus->timeout_ns = m->timeout * NSEC_PER_USEC;
|
||||||
|
|
||||||
d = m->kdbus->items;
|
d = m->kdbus->items;
|
||||||
|
|
||||||
|
|
|
@ -345,21 +345,13 @@ enum kdbus_payload_type {
|
||||||
* @payload_type: Payload type (KDBUS_PAYLOAD_*)
|
* @payload_type: Payload type (KDBUS_PAYLOAD_*)
|
||||||
* @cookie: Userspace-supplied cookie, for the connection
|
* @cookie: Userspace-supplied cookie, for the connection
|
||||||
* to identify its messages
|
* to identify its messages
|
||||||
* @cookie_reply: A reply to the message with the same cookie. The
|
* @cookie_reply: A reply to the requesting message with the same
|
||||||
* reply itself has its own cookie, @cookie_reply
|
* cookie. The requesting connection can match its
|
||||||
* corresponds to the cookie of the request message
|
* request and the reply with this value
|
||||||
* @timeout_ns: For non-kernel-generated messages, this denotes the
|
* @timeout_ns: The time to wait for a message reply from the peer.
|
||||||
* message timeout in nanoseconds. A message has to be
|
* If there is no reply, a kernel-generated message
|
||||||
* received with KDBUS_CMD_MSG_RECV by the destination
|
* with an attached KDBUS_ITEM_REPLY_TIMEOUT item
|
||||||
* connection within this time frame. For messages that
|
* is sent to @src_id.
|
||||||
* 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.
|
|
||||||
* @items: A list of kdbus_items containing the message payload
|
* @items: A list of kdbus_items containing the message payload
|
||||||
*/
|
*/
|
||||||
struct kdbus_msg {
|
struct kdbus_msg {
|
||||||
|
@ -369,8 +361,10 @@ struct kdbus_msg {
|
||||||
__u64 src_id;
|
__u64 src_id;
|
||||||
__u64 payload_type;
|
__u64 payload_type;
|
||||||
__u64 cookie;
|
__u64 cookie;
|
||||||
__u64 cookie_reply;
|
union {
|
||||||
__u64 timeout_ns;
|
__u64 cookie_reply;
|
||||||
|
__u64 timeout_ns;
|
||||||
|
};
|
||||||
struct kdbus_item items[0];
|
struct kdbus_item items[0];
|
||||||
} __attribute__((aligned(8)));
|
} __attribute__((aligned(8)));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue