<!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">
   <annotation name="org.gtk.GDBus.C.UnixFD" value="true"/>
   <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>
