forked from ilya-zlobintsev/LACT
-
Notifications
You must be signed in to change notification settings - Fork 0
/
request.rs
80 lines (77 loc) · 1.81 KB
/
request.rs
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
use crate::{FanControlMode, FanCurveMap};
use amdgpu_sysfs::gpu_handle::{PerformanceLevel, PowerLevelKind};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, PartialEq)]
#[serde(tag = "command", content = "args", rename_all = "snake_case")]
pub enum Request<'a> {
Ping,
ListDevices,
SystemInfo,
DeviceInfo {
id: &'a str,
},
DeviceStats {
id: &'a str,
},
DeviceClocksInfo {
id: &'a str,
},
DevicePowerProfileModes {
id: &'a str,
},
SetFanControl {
id: &'a str,
enabled: bool,
mode: Option<FanControlMode>,
static_speed: Option<f64>,
curve: Option<FanCurveMap>,
},
SetPowerCap {
id: &'a str,
cap: Option<f64>,
},
SetPerformanceLevel {
id: &'a str,
performance_level: PerformanceLevel,
},
SetClocksValue {
id: &'a str,
command: SetClocksCommand,
},
BatchSetClocksValue {
id: &'a str,
commands: Vec<SetClocksCommand>,
},
SetPowerProfileMode {
id: &'a str,
index: Option<u16>,
},
GetPowerStates {
id: &'a str,
},
SetEnabledPowerStates {
id: &'a str,
kind: PowerLevelKind,
states: Vec<u8>,
},
EnableOverdrive,
ConfirmPendingConfig(ConfirmCommand),
}
#[derive(Serialize, Deserialize, Debug, PartialEq)]
#[serde(tag = "command", rename_all = "snake_case")]
pub enum ConfirmCommand {
Confirm,
Revert,
}
#[derive(Serialize, Deserialize, Debug, PartialEq)]
#[serde(tag = "type", content = "value", rename_all = "snake_case")]
pub enum SetClocksCommand {
MaxCoreClock(i32),
MaxMemoryClock(i32),
MaxVoltage(i32),
MinCoreClock(i32),
MinMemoryClock(i32),
MinVoltage(i32),
VoltageOffset(i32),
Reset,
}