rtkit_client_rs/
low_level_zbus_api.rs

1use zbus::{fdo::Result, proxy};
2
3/// Low level interface to the RealtimeKit1 D-Bus service.
4///
5/// Note: due to a missing implementation of GetAll in the canonical rtkit service,
6/// you will need to disable the cache for properties in order not to trigger an UnknownMethod error.
7#[proxy(
8    interface = "org.freedesktop.RealtimeKit1",
9    default_service = "org.freedesktop.RealtimeKit1",
10    default_path = "/org/freedesktop/RealtimeKit1"
11)]
12pub trait RTKit {
13    fn make_thread_realtime(&self, thread: u64, priority: u32) -> Result<()>;
14    fn make_thread_realtime_with_pid(&self, process: u64, thread: u64, priority: u32)
15        -> Result<()>;
16    fn make_thread_high_priority(&self, thread: u64, priority: i32) -> Result<()>;
17    fn make_thread_high_priority_with_pid(
18        &self,
19        process: u64,
20        thread: u64,
21        // lmao, why are these different?
22        priority: i32,
23    ) -> Result<()>;
24    fn reset_known(&self) -> Result<()>;
25    fn reset_all(&self) -> Result<()>;
26    fn exit(&self) -> Result<()>;
27
28    #[zbus(property)]
29    fn rt_time_usec_max(&self) -> Result<i64>;
30
31    #[zbus(property)]
32    fn max_realtime_priority(&self) -> Result<i32>;
33
34    #[zbus(property)]
35    fn min_nice_level(&self) -> Result<i32>;
36}