1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use crate::result::*;
use crate::ipc::sf;
use crate::mem;
use crate::version;
bit_enum! {
LogDestination (u32) {
Tma = bit!(0),
Uart = bit!(1),
UartSleeping = bit!(2),
All = 0xFFFF
}
}
ipc_sf_define_interface_trait! {
trait ILogger {
log [0, version::VersionInterval::all()]: (log_buf: sf::InAutoSelectBuffer<u8>) => ();
set_destination [1, version::VersionInterval::from(version::Version::new(3,0,0))]: (log_destination: LogDestination) => ();
}
}
ipc_sf_define_interface_trait! {
trait ILogService {
open_logger [0, version::VersionInterval::all()]: (process_id: sf::ProcessId) => (logger: mem::Shared<dyn ILogger>);
}
}