<term><varname>items</varname></term>
<listitem>
<para>
- The following items are expected for
- <varname>KDBUS_CMD_BUS_MAKE</varname>.
+ The following items (see <citerefentry><refentrytitle>kdbus.item</refentrytitle><manvolnum>7</manvolnum></citerefentry>)
+ are expected for <varname>KDBUS_CMD_BUS_MAKE</varname>.
</para>
<variablelist>
<varlistentry>
<term><varname>KDBUS_ITEM_MAKE_NAME</varname></term>
<listitem>
- <para>Contains a string to identify the bus name.</para>
+ <para>Contains a null-terminated string that identifies the bus. The name must be unique across the kdbus domain and must start with the effective UID of the caller followed by a '-'. This item is mandatory.</para>
</listitem>
</varlistentry>
<listitem>
<para>Bus-wide bloom parameters passed in a
<varname>struct kdbus_bloom_parameter</varname>. These
- settings are copied back to new connections verbatim.
+ settings are copied back to new connections verbatim. This item is mandatory.
+TODO: document the bloom_parameter struct and reference that from here (maybe kdbus.bloom.7?)
</para>
</listitem>
</varlistentry>
</para>
<variablelist>
+ <varlistentry>
+ <term><varname>-EBADMSG</varname></term>
+ <listitem><para>
+ A mandatory item is missing.
+ </para></listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>-EINVAL</varname></term>
<listitem><para>
A bus is a named object inside a domain. Clients exchange messages
over a bus. Multiple buses themselves have no connection to each other;
messages can only be exchanged on the same bus. The default endpoint of
- a bus, to which clients establish connections to, is the "bus" file
+ a bus, to which clients establish connections, is the "bus" file
/sys/fs/kdbus/<bus name>/bus.
Common operating system setups create one "system bus" per system,
and one "user bus" for every logged-in user. Applications or services
used to receive messages and answers to ioctl commands from the kernel.
It is never used to send anything to the kernel. In order to access that
memory, a userspace application must mmap() it into its address space.
- See section 12 for more details.
See
<citerefentry><refentrytitle>kdbus.pool</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more details.
connection. Metadata contains information like: system timestamps, UID, GID,
TID, proc-starttime, well-known names, process comm, process exe, process
argv, cgroup, capabilities, seclabel, audit session, loginuid and the
- connection's human-readable name. See section 7 and 13 for more details.
+ connection's human-readable name.
See
<citerefentry><refentrytitle>kdbus.message</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more details.
<para>
The API of kdbus implements the notion of items, submitted through and
returned by most ioctls, and stored inside data structures in the
- connection's pool. See section 4 for more details.
+ connection's pool.
See
<citerefentry><refentrytitle>kdbus.item</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more details.
A policy is a set of rules that define which connections can see, talk to,
or register a well-known name on the bus. A policy is attached to buses and
custom endpoints, and modified by policy holder connections or owners of
- custom endpoints. See section 11 for more details.
+ custom endpoints.
See
<citerefentry><refentrytitle>kdbus.policy</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more details.