1#[cfg(target_os = "windows")]
2use crate::enum_wrappers::device::DriverModel;
3use crate::enum_wrappers::device::OperationMode;
4#[cfg(feature = "serde")]
5use serde_derive::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Eq, PartialEq, Hash)]
9#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
10pub struct ConfidentialComputeCapabilities {
11 pub cpu_caps: ConfidentialComputeCpuCapabilities,
13 pub gpus_caps: ConfidentialComputeGpuCapabilities,
15}
16
17#[derive(Debug, Clone, Eq, PartialEq, Hash)]
19#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
20pub enum ConfidentialComputeCpuCapabilities {
21 None,
23 AmdSev,
25 IntelTdx,
27}
28
29#[derive(Debug, Clone, Eq, PartialEq, Hash)]
31#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
32pub enum ConfidentialComputeGpuCapabilities {
33 Capable,
35 NotCapable,
37}
38
39#[derive(Debug, Clone, Eq, PartialEq, Hash)]
41#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
42pub struct ConfidentialComputeGpuAttestationReport {
43 pub attestation_report_size: u32,
45 pub attestation_report: Vec<u8>,
48 pub is_cec_attestation_report_present: bool,
50 pub cec_attestation_report_size: u32,
52 pub cec_attestation_report: Vec<u8>,
55}
56
57#[derive(Debug, Clone, Eq, PartialEq, Hash)]
59#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
60pub struct ConfidentialComputeGpuCertificate {
61 pub cert_chain_size: u32,
63 pub attestation_cert_chain_size: u32,
65 pub cert_chain: Vec<u8>,
68 pub attestation_cert_chain: Vec<u8>,
71}
72
73#[derive(Debug, Clone, Eq, PartialEq, Hash)]
75#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
76pub struct AutoBoostClocksEnabledInfo {
77 pub is_enabled: bool,
79 pub is_enabled_default: bool,
84}
85
86#[derive(Debug, Clone, Eq, PartialEq, Hash)]
89#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
90pub struct UtilizationInfo {
91 pub utilization: u32,
92 pub sampling_period: u32,
94}
95
96#[derive(Debug)]
98#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
99#[cfg(target_os = "windows")]
100pub struct DriverModelState {
101 pub current: DriverModel,
102 pub pending: DriverModel,
103}
104
105#[derive(Debug, Clone, Eq, PartialEq, Hash)]
107#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
108pub struct EccModeState {
109 pub currently_enabled: bool,
110 pub pending_enabled: bool,
111}
112
113#[derive(Debug)]
115#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
116pub struct OperationModeState {
117 pub current: OperationMode,
118 pub pending: OperationMode,
119}
120
121#[derive(Debug, Clone, Eq, PartialEq, Hash)]
125#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
126pub struct PowerManagementConstraints {
127 pub min_limit: u32,
128 pub max_limit: u32,
129}
130
131#[derive(Debug, Clone, Eq, PartialEq, Hash)]
133#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
134pub struct EncoderStats {
135 pub session_count: u32,
137 pub average_fps: u32,
139 pub average_latency: u32,
141}
142
143#[derive(Debug, Clone, Eq, PartialEq, Hash)]
145#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
146pub struct CudaComputeCapability {
147 pub major: i32,
148 pub minor: i32,
149}
150
151#[derive(Debug, Clone, Eq, PartialEq, Hash)]
153#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
154pub struct RetiredPage {
155 pub address: u64,
160 pub timestamp: u64,
162}
163
164#[derive(Debug, Clone, Eq, PartialEq, Hash)]
168#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
169pub struct FieldId(pub u32);
170
171#[derive(Debug, Clone, Eq, PartialEq, Hash)]
173#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
174pub struct MigMode {
175 pub current: u32,
177 pub pending: u32,
179}