sysprofd: implement org.gnome.Sysprof2 compatability API

This allows the new sysprofd to service requests for older clients
expecting to talk to or.gnome.Sysprof2.
This commit is contained in:
Christian Hergert
2019-06-25 14:27:37 -07:00
parent 55e624caf9
commit 09c457c880
10 changed files with 438 additions and 39 deletions

View File

@ -0,0 +1,39 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.gnome.Sysprof2">
<!--
PerfEventOpen:
@options: key-value pair of attributes for the perf_event_open() syscall.
@pid: the process id to monitor, or -1 for system-wide.
@cpu: affinity to cpu.
@flags: flags for perf_event_open() syscall.
@perf_stream_fd: (out): A fd to communicate with perf.
Performs the perf_event_open() syscall with elevated privileges and passes
the resulting fd back to the calling process.
-->
<method name="PerfEventOpen">
<arg name="options" type="a{sv}" direction="in"/>
<arg name="pid" type="i" direction="in"/>
<arg name="cpu" type="i" direction="in"/>
<arg name="flags" type="t" direction="in"/>
<arg name="perf_stream_fd" type="h" direction="out"/>
</method>
<!--
GetKernelSymbols:
Loads the name, type, and address of Linux kernel symbols. This is useful
if your system does not provide access to /proc/kallsyms to non-root users.
Returns: an array of (tys) tuples. t is the address, y is the type, and s
is the name.
Since: 3.28
-->
<method name="GetKernelSymbols">
<arg name="symbols" type="a(tys)" direction="out"/>
</method>
</interface>
</node>