X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Flibsystemd%2Fsd-bus%2Fkdbus.h;h=65f76e9cf4b7bc04b2660091d4d6f0ec975d3370;hb=06b643e7f5a3b79005dd57497897ab7255fe3659;hp=b8861ceb017659557c47cd198a792f967684ff46;hpb=26e376bfe34ba6caa04723b9200e9deace8e6c9f;p=elogind.git diff --git a/src/libsystemd/sd-bus/kdbus.h b/src/libsystemd/sd-bus/kdbus.h index b8861ceb0..65f76e9cf 100644 --- a/src/libsystemd/sd-bus/kdbus.h +++ b/src/libsystemd/sd-bus/kdbus.h @@ -223,6 +223,7 @@ struct kdbus_policy_access { * @KDBUS_ITEM_ID: Connection ID * @KDBUS_ITEM_TIMESTAMP: Timestamp * @KDBUS_ITEM_CREDS: Process credential + * @KDBUS_ITEM_AUXGROUPS: Auxiliary process groups * @KDBUS_ITEM_PID_COMM: Process ID "comm" identifier * @KDBUS_ITEM_TID_COMM: Thread ID "comm" identifier * @KDBUS_ITEM_EXE: The path of the executable @@ -263,6 +264,7 @@ enum kdbus_item_type { KDBUS_ITEM_ID, KDBUS_ITEM_TIMESTAMP, KDBUS_ITEM_CREDS, + KDBUS_ITEM_AUXGROUPS, KDBUS_ITEM_PID_COMM, KDBUS_ITEM_TID_COMM, KDBUS_ITEM_EXE, @@ -481,9 +483,11 @@ enum kdbus_policy_type { * a well-know name for a process to be started * when traffic arrives * @KDBUS_HELLO_POLICY_HOLDER: Special-purpose connection which registers - * policy entries for one or multiple names. The - * provided names are not activated, and are not - * registered with the name database + * policy entries for a name. The provided name + * is not activated and not registered with the + * name database, it only allows unprivileged + * connections to acquire a name, talk or discover + * a service * @KDBUS_HELLO_MONITOR: Special-purpose connection to monitor * bus traffic */ @@ -498,6 +502,7 @@ enum kdbus_hello_flags { * enum kdbus_attach_flags - flags for metadata attachments * @KDBUS_ATTACH_TIMESTAMP: Timestamp * @KDBUS_ATTACH_CREDS: Credentials + * @KDBUS_ATTACH_AUXGROUPS: Auxiliary groups * @KDBUS_ATTACH_NAMES: Well-known names * @KDBUS_ATTACH_COMM: The "comm" process identifier * @KDBUS_ATTACH_EXE: The path of the executable @@ -512,16 +517,17 @@ enum kdbus_hello_flags { enum kdbus_attach_flags { KDBUS_ATTACH_TIMESTAMP = 1 << 0, KDBUS_ATTACH_CREDS = 1 << 1, - KDBUS_ATTACH_NAMES = 1 << 2, - KDBUS_ATTACH_COMM = 1 << 3, - KDBUS_ATTACH_EXE = 1 << 4, - KDBUS_ATTACH_CMDLINE = 1 << 5, - KDBUS_ATTACH_CGROUP = 1 << 6, - KDBUS_ATTACH_CAPS = 1 << 7, - KDBUS_ATTACH_SECLABEL = 1 << 8, - KDBUS_ATTACH_AUDIT = 1 << 9, - KDBUS_ATTACH_CONN_NAME = 1 << 10, - _KDBUS_ATTACH_ALL = (1 << 11) - 1, + KDBUS_ATTACH_AUXGROUPS = 1 << 2, + KDBUS_ATTACH_NAMES = 1 << 3, + KDBUS_ATTACH_COMM = 1 << 4, + KDBUS_ATTACH_EXE = 1 << 5, + KDBUS_ATTACH_CMDLINE = 1 << 6, + KDBUS_ATTACH_CGROUP = 1 << 7, + KDBUS_ATTACH_CAPS = 1 << 8, + KDBUS_ATTACH_SECLABEL = 1 << 9, + KDBUS_ATTACH_AUDIT = 1 << 10, + KDBUS_ATTACH_CONN_NAME = 1 << 11, + _KDBUS_ATTACH_ALL = (1 << 12) - 1, }; /** @@ -602,9 +608,7 @@ enum kdbus_name_flags { * struct kdbus_cmd_name - struct to describe a well-known name * @size: The total size of the struct * @flags: Flags for a name entry (KDBUS_NAME_*) - * @owner_id: The current owner of the name. For requests, - * privileged users may set this field to - * (de)register names on behalf of other connections. + * @owner_id: The current owner of the name. * @conn_flags: The flags of the owning connection (KDBUS_HELLO_*) * @name: The well-known name * @@ -729,24 +733,6 @@ struct kdbus_cmd_match { struct kdbus_item items[0]; } __attribute__((aligned(8))); -/** - * struct kdbus_cmd_memfd_make - create a kdbus memfd - * @size: The total size of the struct - * @file_size: The initial file size - * @fd: The returned file descriptor number - * @__pad: Padding to ensure proper alignement - * @items: A list of items for additional information - * - * This structure is used with the KDBUS_CMD_MEMFD_NEW ioctl. - */ -struct kdbus_cmd_memfd_make { - __u64 size; - __u64 file_size; - int fd; - __u32 __pad; - struct kdbus_item items[0]; -} __attribute__((aligned(8))); - /** * enum kdbus_ioctl_type - Ioctl API * @KDBUS_CMD_BUS_MAKE: After opening the "control" device node, this @@ -797,32 +783,6 @@ struct kdbus_cmd_memfd_make { * @KDBUS_CMD_MATCH_ADD: Install a match which broadcast messages should * be delivered to the connection. * @KDBUS_CMD_MATCH_REMOVE: Remove a current match for broadcast messages. - * @KDBUS_CMD_MEMFD_NEW: Return a new file descriptor which provides an - * anonymous shared memory file and which can be - * used to pass around larger chunks of data. - * Kdbus memfd files can be sealed, which allows - * the receiver to trust the data it has received. - * Kdbus memfd files expose only very limited - * operations, they can be mmap()ed, seek()ed, - * (p)read(v)() and (p)write(v)(); most other - * common file operations are not implemented. - * Special caution needs to be taken with - * read(v)()/write(v)() on a shared file; the - * underlying file position is always shared - * between all users of the file and race against - * each other, pread(v)()/pwrite(v)() avoid these - * issues. - * @KDBUS_CMD_MEMFD_SIZE_GET: Return the size of the underlying file, which - * changes with write(). - * @KDBUS_CMD_MEMFD_SIZE_SET: Truncate the underlying file to the specified - * size. - * @KDBUS_CMD_MEMFD_SEAL_GET: Return the state of the file sealing. - * @KDBUS_CMD_MEMFD_SEAL_SET: Seal or break a seal of the file. Only files - * which are not shared with other processes and - * which are currently not mapped can be sealed. - * The current process needs to be the one and - * single owner of the file, the sealing cannot - * be changed as long as the file is shared. */ enum kdbus_ioctl_type { KDBUS_CMD_BUS_MAKE = _IOW(KDBUS_IOCTL_MAGIC, 0x00, @@ -862,13 +822,6 @@ enum kdbus_ioctl_type { struct kdbus_cmd_match), KDBUS_CMD_MATCH_REMOVE = _IOW(KDBUS_IOCTL_MAGIC, 0x81, struct kdbus_cmd_match), - - KDBUS_CMD_MEMFD_NEW = _IOWR(KDBUS_IOCTL_MAGIC, 0xc0, - struct kdbus_cmd_memfd_make), - KDBUS_CMD_MEMFD_SIZE_GET = _IOR(KDBUS_IOCTL_MAGIC, 0xc1, __u64 *), - KDBUS_CMD_MEMFD_SIZE_SET = _IOW(KDBUS_IOCTL_MAGIC, 0xc2, __u64 *), - KDBUS_CMD_MEMFD_SEAL_GET = _IOR(KDBUS_IOCTL_MAGIC, 0xc3, int *), - KDBUS_CMD_MEMFD_SEAL_SET = _IO(KDBUS_IOCTL_MAGIC, 0xc4), }; /* @@ -899,8 +852,9 @@ enum kdbus_ioctl_type { * @EEXIST: A requested domain, bus or endpoint with the same * name already exists. A specific data type, which is * only expected once, is provided multiple times. - * @EFAULT: The supplied memory could not be accessed, or the data - * is not properly aligned. + * @EFAULT: The supplied memory could not be accessed, the data + * is not properly aligned, or the current task's memory + * is inaccessible. * @EINVAL: The provided data does not match its type or other * expectations, like a string which is not NUL terminated, * or a string length that points behind the first @@ -924,14 +878,14 @@ enum kdbus_ioctl_type { * @ENOMSG: The queue is not empty, but no message with a matching * priority is currently queued. * @ENOSYS: The requested functionality is not available. - * @ENOTSUPP: The feature negotiation failed, a not supported feature - * was requested, or an unknown item type was received. * @ENOTTY: An unknown ioctl command was received. * @ENOTUNIQ: A specific data type was addressed to a broadcast * address, but only direct addresses support this kind of * data. * @ENXIO: A unique address does not exist, or an offset in the * receiver's pool does not represent a queued message. + * @EOPNOTSUPP: The feature negotiation failed, a not supported feature + * was requested, or an unknown item type was received. * @EPERM: The policy prevented an operation. The requested * resource is owned by another entity. * @EPIPE: When sending a message, a synchronous reply from the