512 lines
16 KiB
XML
512 lines
16 KiB
XML
<!DOCTYPE node PUBLIC
|
|
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
|
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
|
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
|
|
|
|
<interface name="org.freedesktop.bolt1.Manager">
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Thunderbolt device management.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
|
|
<property name="Version" type="u" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Version of the daemon.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Probing" type="b" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Indication that a new thunderbolt device has been connected
|
|
and the manager is reacting to that. Probing should be
|
|
true as long as the new device (and any possible attached
|
|
peripherals) are initialized by the system.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="DefaultPolicy" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The policy to use during enrollment when "default" was
|
|
specified.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="SecurityLevel" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The security level of the system.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="AuthMode" type="s" access="readwrite">
|
|
<doc:doc><doc:description><doc:para>
|
|
The authorization mode of the daemon. Currently supported
|
|
values are "enabled" if it is authorizing devices or
|
|
"disabled" if authorization is disabled.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
|
|
<property name="PowerState" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
State of the ForcePower setting of the bolt daemon.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Generation" type="u" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The maximum generation of any of Thunderbolt controller
|
|
associated with the device. It will contain 4 for USB4,
|
|
3 for Thunderbolt 3.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<!-- methods -->
|
|
|
|
<method name="ListDomains">
|
|
<arg name="domains" direction="out" type="ao">
|
|
<doc:doc><doc:summary>An array of object paths for the domains.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
List all active thunderbolt domains.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
<method name="DomainById">
|
|
<arg type='s' name='id' direction='in'>
|
|
<doc:doc><doc:summary>The id of the domain. </doc:summary></doc:doc>
|
|
</arg>
|
|
<arg name="domain" direction="out" type="o">
|
|
<doc:doc><doc:summary>Object path for the domain.</doc:summary></doc:doc>
|
|
</arg>
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Return a domain given its identifier.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
<method name="ListDevices">
|
|
<arg name="devices" direction="out" type="ao">
|
|
<doc:doc><doc:summary>An array of object paths for the devices.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
List all known devices, i.e. connected or stored in the database.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
<method name="DeviceByUid">
|
|
<arg type='s' name='uid' direction='in'>
|
|
<doc:doc><doc:summary>The unique id of the device. </doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
<arg name="device" direction="out" type="o">
|
|
<doc:doc><doc:summary>Object path for the devices.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Return a device given its unique identifier.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
<method name="EnrollDevice">
|
|
<arg type='s' name='uid' direction='in'>
|
|
<doc:doc><doc:summary>The unique id of the device.</doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
<arg type='s' name='policy' direction='in'>
|
|
<doc:doc><doc:summary>Policy to use for the device.</doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
<arg type='s' name='flags' direction='in'>
|
|
<doc:doc><doc:summary>Control aspects of enrollment.</doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
<arg name="device" direction="out" type="o">
|
|
<doc:doc><doc:summary>Object path for the devices.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Authorize a device, and on success, store the device in the database.
|
|
If policy is set to "Auto", the device will be automatically authorized
|
|
in the future.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
<method name="ForgetDevice">
|
|
|
|
<arg type='s' name='uid' direction='in'>
|
|
<doc:doc><doc:summary>The unique id of the device.</doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Remove the device and any associated information,
|
|
such as the policy and its key, from the store.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
<!-- signals -->
|
|
|
|
<signal name="DeviceAdded">
|
|
<arg name="device" type="o">
|
|
<doc:doc><doc:summary>Object path of the new device.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc><doc:description><doc:para>
|
|
A new device was added.
|
|
</doc:para></doc:description></doc:doc>
|
|
</signal>
|
|
|
|
<signal name="DeviceRemoved">
|
|
<arg name="device" type="o">
|
|
<doc:doc><doc:summary>Object path of the removed device.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc><doc:description><doc:para>
|
|
A device was removed.
|
|
</doc:para></doc:description></doc:doc>
|
|
</signal>
|
|
|
|
<signal name="DomainAdded">
|
|
<arg name="domain" type="o">
|
|
<doc:doc><doc:summary>Object path of the domain.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc><doc:description><doc:para>
|
|
A thunderbolt domain was added.
|
|
</doc:para></doc:description></doc:doc>
|
|
</signal>
|
|
|
|
<signal name="DomainRemoved">
|
|
<arg name="domain" type="o">
|
|
<doc:doc><doc:summary>Object path of the removed domain.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc><doc:description><doc:para>
|
|
A thunderbolt domain was removed.
|
|
</doc:para></doc:description></doc:doc>
|
|
</signal>
|
|
|
|
</interface>
|
|
|
|
<interface name="org.freedesktop.bolt1.Power">
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Thunderbolt force power management.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
|
|
<property name="Supported" type="b" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Is there system level support for force powering the
|
|
thunderbolt controller.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="State" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
State of the ForcePower setting of the bolt daemon.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Timeout" type="u" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The minimum amount of time the controller will be powered.
|
|
This timeout will get reset with every new activity on the
|
|
thundrbolt bus while the controller is being force powered.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<!-- methods -->
|
|
<method name="ForcePower">
|
|
<arg type='s' name='who' direction='in'>
|
|
<doc:doc><doc:summary>Who is requesting the force power op.</doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
<arg type='s' name='flags' direction='in'>
|
|
<doc:doc><doc:summary>Control aspects of the force power operation.</doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
<arg name="guard_fd" direction="out" type="h">
|
|
<doc:doc><doc:summary>File descriptor reference to the guard.</doc:summary></doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Force power the thunderbolt controller, if supported.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
<method name="ListGuards">
|
|
|
|
<arg type='a(ssu)' name='guards' direction='out'>
|
|
<doc:doc>
|
|
<doc:summary>
|
|
<doc:para>
|
|
Array of guard information, containing the "id", "who" and the pid
|
|
of the guard.
|
|
</doc:para>
|
|
</doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
List active internal and external power guards.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
</interface>
|
|
|
|
<interface name="org.freedesktop.bolt1.Device">
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Representation of a single Thunderbolt device.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
|
|
<property name="Uid" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The unique-id of the device.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Name" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The name of the device.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Vendor" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The vendor of the device.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Type" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The type of the device, i.e. 'host' or 'peripheral'
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Generation" type="u" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The generation of the Thunderbolt controller associated
|
|
with the device. It will contain 4 for USB4, 3 for
|
|
Thunderbolt 3.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Status" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The current status of the device.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="AuthFlags" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Details of authorization information, including
|
|
if they device was securily authorized via key
|
|
verification ('secure') or does not support
|
|
this method ('nokey'). The flag 'boot' indicates
|
|
that the devices was already authorized by
|
|
the firmware during pre-boot.
|
|
If no downstream PCIe tunnels are authorized
|
|
the 'nopcie' flag will be set.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Parent" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The unique id of the parent the device. The only
|
|
device without a parent will be the device that
|
|
represents the host controller.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="SysfsPath" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The sysfs path of the device, if it is connected.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Domain" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
When a device is connected, it always is connected
|
|
via a thunderbolt domain, directly or via a chain of
|
|
other devices. This is the identifier of the domain.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Stored" type="b" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Indication if the device is stored.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Policy" type="s" access="readwrite">
|
|
<doc:doc><doc:description><doc:para>
|
|
The authorization policy of the device.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Key" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
If a key is associated with the device.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Label" type="s" access="readwrite">
|
|
<doc:doc><doc:description><doc:para>
|
|
If set, a name that was given to the device by
|
|
the user. Can only be set when device is stored.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="ConnectTime" type="t" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Point in time (since Epoch, in seconds) when the
|
|
device was connected (0 if it is not connected).
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="AuthorizeTime" type="t" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Point in time (since Epoch, in seconds) when the
|
|
device was authorized (0 if it is not authorized).
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="StoreTime" type="t" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Point in time (since Epoch, in seconds) when the
|
|
device was stored (0 if it is not stored).
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="LinkSpeed" type="a{su}" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
Information about the link speed, i.e. with how
|
|
many lanes the device is connected to its parent
|
|
and what rate (in Gb/s) the lanes have. Separate
|
|
information is reported for transmission (tx) and
|
|
reception (rx). All lanes in one direction have
|
|
the same rate.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<!-- methods -->
|
|
|
|
<method name="Authorize">
|
|
|
|
<arg type='s' name='flags' direction='in'>
|
|
<doc:doc><doc:summary>Control aspects of authorization.</doc:summary>
|
|
</doc:doc>
|
|
</arg>
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Authorize the device.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
</method>
|
|
|
|
</interface>
|
|
|
|
<interface name="org.freedesktop.bolt1.Domain">
|
|
|
|
<doc:doc>
|
|
<doc:description>
|
|
<doc:para>
|
|
Representation of a Thunderbolt domain.
|
|
</doc:para>
|
|
</doc:description>
|
|
</doc:doc>
|
|
|
|
<property name="Uid" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The unique-id of the domain.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="Id" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The (sysfs) id of the domain.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="SysfsPath" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The sysfs path of the domain, if it is connected.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="SecurityLevel" type="s" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The security level of the domain.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="BootACL" type="as" access="readwrite">
|
|
<doc:doc><doc:description><doc:para>
|
|
The boot access control list.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
<property name="IOMMU" type="b" access="read">
|
|
<doc:doc><doc:description><doc:para>
|
|
The input output memory management unit (IOMMU)
|
|
can used on recent hardware in combination with
|
|
recent kernel versions to protect against attacks,
|
|
like direct memory access (DMA) attacks, at the
|
|
hardware level. If this property is true than
|
|
IOMMU hardware protection is active.
|
|
</doc:para></doc:description></doc:doc>
|
|
</property>
|
|
|
|
</interface>
|
|
|
|
</node>
|