mirror of
https://github.com/systemd/systemd.git
synced 2025-02-11 21:57:53 +03:00
bus: update kdbus.h
This commit is contained in:
parent
3df7a7e610
commit
07442efff8
@ -265,7 +265,7 @@ static int bus_list_names_kernel(sd_bus *bus, char ***acquired, char ***activata
|
||||
}
|
||||
|
||||
if (activatable) {
|
||||
r = kernel_get_list(bus, KDBUS_NAME_LIST_STARTERS, &y);
|
||||
r = kernel_get_list(bus, KDBUS_NAME_LIST_ACTIVATORS, &y);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
@ -515,12 +515,12 @@ static int translate_name_change(sd_bus *bus, struct kdbus_msg *k, struct kdbus_
|
||||
assert(k);
|
||||
assert(d);
|
||||
|
||||
if (d->type == KDBUS_ITEM_NAME_ADD || (d->name_change.old_flags & (KDBUS_NAME_IN_QUEUE|KDBUS_NAME_STARTER)))
|
||||
if (d->type == KDBUS_ITEM_NAME_ADD || (d->name_change.old_flags & (KDBUS_NAME_IN_QUEUE|KDBUS_NAME_ACTIVATOR)))
|
||||
old_owner[0] = 0;
|
||||
else
|
||||
sprintf(old_owner, ":1.%llu", (unsigned long long) d->name_change.old_id);
|
||||
|
||||
if (d->type == KDBUS_ITEM_NAME_REMOVE || (d->name_change.new_flags & (KDBUS_NAME_IN_QUEUE|KDBUS_NAME_STARTER))) {
|
||||
if (d->type == KDBUS_ITEM_NAME_REMOVE || (d->name_change.new_flags & (KDBUS_NAME_IN_QUEUE|KDBUS_NAME_ACTIVATOR))) {
|
||||
|
||||
if (isempty(old_owner))
|
||||
return 0;
|
||||
@ -1140,10 +1140,10 @@ int bus_kernel_create_starter(const char *bus, const char *name) {
|
||||
n = hello->items;
|
||||
strcpy(n->str, name);
|
||||
n->size = offsetof(struct kdbus_item, str) + strlen(n->str) + 1;
|
||||
n->type = KDBUS_ITEM_STARTER_NAME;
|
||||
n->type = KDBUS_ITEM_ACTIVATOR_NAME;
|
||||
|
||||
hello->size = ALIGN8(offsetof(struct kdbus_cmd_hello, items) + n->size);
|
||||
hello->conn_flags = KDBUS_HELLO_STARTER;
|
||||
hello->conn_flags = KDBUS_HELLO_ACTIVATOR;
|
||||
hello->pool_size = KDBUS_POOL_SIZE;
|
||||
|
||||
if (ioctl(fd, KDBUS_CMD_HELLO, hello) < 0) {
|
||||
|
@ -34,7 +34,7 @@
|
||||
* @new_flags: flags from KDBUS_NAME_* the name entry has now
|
||||
* @name: Well-known name
|
||||
*
|
||||
* Sent from kernel to userspace when the owner or starter of
|
||||
* Sent from kernel to userspace when the owner or activator of
|
||||
* a well-known name changes.
|
||||
*
|
||||
* Attached to:
|
||||
@ -55,7 +55,7 @@ struct kdbus_notify_name_change {
|
||||
* @id: New or former owner of the name
|
||||
* @flags: flags field from KDBUS_HELLO_*
|
||||
*
|
||||
* Sent from kernel to userspace when the owner or starter of
|
||||
* Sent from kernel to userspace when the owner or activator of
|
||||
* a well-known name changes.
|
||||
*
|
||||
* Attached to:
|
||||
@ -207,7 +207,7 @@ struct kdbus_policy {
|
||||
* @KDBUS_ITEM_POLICY_NAME: Policy in struct kdbus_policy
|
||||
* @KDBUS_ITEM_POLICY_ACCESS: Policy in struct kdbus_policy
|
||||
* @KDBUS_ITEM_NAME: Well-know name with flags
|
||||
* @KDBUS_ITEM_STARTER_NAME: Well-known name for the starter
|
||||
* @KDBUS_ITEM_ACTIVATOR_NAME: Well-known name for the activator
|
||||
* @KDBUS_ITEM_TIMESTAMP: Timestamp
|
||||
* @KDBUS_ITEM_CREDS: Process credential
|
||||
* @KDBUS_ITEM_PID_COMM: Process ID "comm" identifier
|
||||
@ -244,7 +244,7 @@ enum kdbus_item_type {
|
||||
|
||||
_KDBUS_ITEM_ATTACH_BASE = 0x600,
|
||||
KDBUS_ITEM_NAME = _KDBUS_ITEM_ATTACH_BASE,
|
||||
KDBUS_ITEM_STARTER_NAME,
|
||||
KDBUS_ITEM_ACTIVATOR_NAME,
|
||||
KDBUS_ITEM_TIMESTAMP,
|
||||
KDBUS_ITEM_CREDS,
|
||||
KDBUS_ITEM_PID_COMM,
|
||||
@ -346,7 +346,17 @@ enum kdbus_payload_type {
|
||||
* @cookie_reply: For kernel-generated messages, this is the cookie
|
||||
* the message is a reply to
|
||||
* @timeout_ns: For non-kernel-generated messages, this denotes the
|
||||
* message timeout in nanoseconds
|
||||
* 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.
|
||||
* @items: A list of kdbus_items containing the message payload
|
||||
*/
|
||||
struct kdbus_msg {
|
||||
@ -404,13 +414,13 @@ struct kdbus_cmd_policy {
|
||||
|
||||
/**
|
||||
* enum kdbus_hello_flags - flags for struct kdbus_cmd_hello
|
||||
* @KDBUS_HELLO_STARTER: The connection registers a name for activation
|
||||
* @KDBUS_HELLO_ACTIVATOR: The connection registers a name for activation
|
||||
* by well-know name
|
||||
* @KDBUS_HELLO_ACCEPT_FD: The connection allows the receiving of
|
||||
* any passed file descriptors
|
||||
*/
|
||||
enum kdbus_hello_flags {
|
||||
KDBUS_HELLO_STARTER = 1 << 0,
|
||||
KDBUS_HELLO_ACTIVATOR = 1 << 0,
|
||||
KDBUS_HELLO_ACCEPT_FD = 1 << 1,
|
||||
};
|
||||
|
||||
@ -532,14 +542,14 @@ struct kdbus_cmd_ns_make {
|
||||
* @KDBUS_NAME_ALLOW_REPLACEMENT: Allow the replacement of the name
|
||||
* @KDBUS_NAME_QUEUE: Name should be queued if busy
|
||||
* @KDBUS_NAME_IN_QUEUE: Name is queued
|
||||
* @KDBUS_NAME_STARTER: Name is owned by a starter connection
|
||||
* @KDBUS_NAME_ACTIVATOR: Name is owned by a activator connection
|
||||
*/
|
||||
enum kdbus_name_flags {
|
||||
KDBUS_NAME_REPLACE_EXISTING = 1 << 0,
|
||||
KDBUS_NAME_ALLOW_REPLACEMENT = 1 << 1,
|
||||
KDBUS_NAME_QUEUE = 1 << 2,
|
||||
KDBUS_NAME_IN_QUEUE = 1 << 3,
|
||||
KDBUS_NAME_STARTER = 1 << 4,
|
||||
KDBUS_NAME_ACTIVATOR = 1 << 4,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -565,13 +575,13 @@ struct kdbus_cmd_name {
|
||||
* enum kdbus_name_list_flags - what to include into the returned list
|
||||
* @KDBUS_NAME_LIST_UNIQUE: All active connections
|
||||
* @KDBUS_NAME_LIST_NAMES: All known well-known names
|
||||
* @KDBUS_NAME_LIST_STARTERS: All connections which are starter connections
|
||||
* @KDBUS_NAME_LIST_ACTIVATORS: All activator connections
|
||||
* @KDBUS_NAME_LIST_QUEUED: All queued-up names
|
||||
*/
|
||||
enum kdbus_name_list_flags {
|
||||
KDBUS_NAME_LIST_UNIQUE = 1 << 0,
|
||||
KDBUS_NAME_LIST_NAMES = 1 << 1,
|
||||
KDBUS_NAME_LIST_STARTERS = 1 << 2,
|
||||
KDBUS_NAME_LIST_ACTIVATORS = 1 << 2,
|
||||
KDBUS_NAME_LIST_QUEUED = 1 << 3,
|
||||
};
|
||||
|
||||
@ -821,6 +831,8 @@ enum kdbus_ioctl_type {
|
||||
* @EBADFD: A bus connection is in a corrupted state.
|
||||
* @EBADMSG: Passed data contains a combination of conflicting or
|
||||
* inconsistent types.
|
||||
* @ECONNRESET: A connection is shut down, no further operations are
|
||||
* possible.
|
||||
* @ECOMM: A peer does not accept the file descriptors addressed
|
||||
* to it.
|
||||
* @EDESTADDRREQ: The well-known bus name is required but missing.
|
||||
@ -857,8 +869,8 @@ enum kdbus_ioctl_type {
|
||||
* @ENXIO: A unique address does not exist.
|
||||
* @EPERM: The policy prevented an operation. The requested
|
||||
* resource is owned by another entity.
|
||||
* @ESHUTDOWN: The connection is currently shutting down, no further
|
||||
* operations are possible.
|
||||
* @ESHUTDOWN: A namespace or endpoint is currently shutting down;
|
||||
* no further operations will be possible.
|
||||
* @ESRCH: A requested well-known bus name is not found.
|
||||
* @ETXTBSY: A kdbus memfd file cannot be sealed or the seal removed,
|
||||
* because it is shared with other processes or still
|
||||
|
Loading…
x
Reference in New Issue
Block a user