1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
12pub struct Config {
13 pub back_off_time_between_pull_samples_sec: i64,
14 pub disable_delays: bool,
15 pub early_exit: bool,
16 pub first_sampling_delay_sec: i64,
17 pub has_always_on_counter: bool,
18 pub has_real_time_clock: bool,
19 pub initial_frequency_ppm: u32,
20 pub max_frequency_error_ppm: u32,
21 pub monitor_time_source_url: String,
22 pub monitor_uses_pull: bool,
23 pub oscillator_error_std_dev_ppm: u32,
24 pub power_topology_integration_enabled: bool,
25 pub primary_time_source_url: String,
26 pub primary_uses_pull: bool,
27 pub serve_fuchsia_time_alarms: bool,
28 pub serve_fuchsia_time_external_adjust: bool,
29 pub serve_test_protocols: bool,
30 pub use_connectivity: bool,
31 pub utc_max_allowed_delta_future_sec: i64,
32 pub utc_max_allowed_delta_past_sec: i64,
33 pub utc_start_at_startup: bool,
34 pub utc_start_at_startup_when_invalid_rtc: bool,
35}
36
37impl fidl::Persistable for Config {}
38
39mod internal {
40 use super::*;
41
42 impl fidl::encoding::ValueTypeMarker for Config {
43 type Borrowed<'a> = &'a Self;
44 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
45 value
46 }
47 }
48
49 unsafe impl fidl::encoding::TypeMarker for Config {
50 type Owned = Self;
51
52 #[inline(always)]
53 fn inline_align(_context: fidl::encoding::Context) -> usize {
54 8
55 }
56
57 #[inline(always)]
58 fn inline_size(_context: fidl::encoding::Context) -> usize {
59 120
60 }
61 }
62
63 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
64 #[inline]
65 unsafe fn encode(
66 self,
67 encoder: &mut fidl::encoding::Encoder<'_, D>,
68 offset: usize,
69 _depth: fidl::encoding::Depth,
70 ) -> fidl::Result<()> {
71 encoder.debug_check_bounds::<Config>(offset);
72 fidl::encoding::Encode::<Config, D>::encode(
74 (
75 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.back_off_time_between_pull_samples_sec),
76 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.disable_delays),
77 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.early_exit),
78 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.first_sampling_delay_sec),
79 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.has_always_on_counter),
80 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.has_real_time_clock),
81 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.initial_frequency_ppm),
82 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.max_frequency_error_ppm),
83 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.monitor_time_source_url),
84 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.monitor_uses_pull),
85 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.oscillator_error_std_dev_ppm),
86 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.power_topology_integration_enabled),
87 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_time_source_url),
88 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_uses_pull),
89 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.serve_fuchsia_time_alarms),
90 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.serve_fuchsia_time_external_adjust),
91 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.serve_test_protocols),
92 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.use_connectivity),
93 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.utc_max_allowed_delta_future_sec),
94 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.utc_max_allowed_delta_past_sec),
95 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.utc_start_at_startup),
96 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.utc_start_at_startup_when_invalid_rtc),
97 ),
98 encoder, offset, _depth
99 )
100 }
101 }
102 unsafe impl<
103 D: fidl::encoding::ResourceDialect,
104 T0: fidl::encoding::Encode<i64, D>,
105 T1: fidl::encoding::Encode<bool, D>,
106 T2: fidl::encoding::Encode<bool, D>,
107 T3: fidl::encoding::Encode<i64, D>,
108 T4: fidl::encoding::Encode<bool, D>,
109 T5: fidl::encoding::Encode<bool, D>,
110 T6: fidl::encoding::Encode<u32, D>,
111 T7: fidl::encoding::Encode<u32, D>,
112 T8: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
113 T9: fidl::encoding::Encode<bool, D>,
114 T10: fidl::encoding::Encode<u32, D>,
115 T11: fidl::encoding::Encode<bool, D>,
116 T12: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
117 T13: fidl::encoding::Encode<bool, D>,
118 T14: fidl::encoding::Encode<bool, D>,
119 T15: fidl::encoding::Encode<bool, D>,
120 T16: fidl::encoding::Encode<bool, D>,
121 T17: fidl::encoding::Encode<bool, D>,
122 T18: fidl::encoding::Encode<i64, D>,
123 T19: fidl::encoding::Encode<i64, D>,
124 T20: fidl::encoding::Encode<bool, D>,
125 T21: fidl::encoding::Encode<bool, D>,
126 > fidl::encoding::Encode<Config, D>
127 for (
128 T0,
129 T1,
130 T2,
131 T3,
132 T4,
133 T5,
134 T6,
135 T7,
136 T8,
137 T9,
138 T10,
139 T11,
140 T12,
141 T13,
142 T14,
143 T15,
144 T16,
145 T17,
146 T18,
147 T19,
148 T20,
149 T21,
150 )
151 {
152 #[inline]
153 unsafe fn encode(
154 self,
155 encoder: &mut fidl::encoding::Encoder<'_, D>,
156 offset: usize,
157 depth: fidl::encoding::Depth,
158 ) -> fidl::Result<()> {
159 encoder.debug_check_bounds::<Config>(offset);
160 unsafe {
163 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
164 (ptr as *mut u64).write_unaligned(0);
165 }
166 unsafe {
167 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
168 (ptr as *mut u64).write_unaligned(0);
169 }
170 unsafe {
171 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
172 (ptr as *mut u64).write_unaligned(0);
173 }
174 unsafe {
175 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(56);
176 (ptr as *mut u64).write_unaligned(0);
177 }
178 unsafe {
179 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(64);
180 (ptr as *mut u64).write_unaligned(0);
181 }
182 unsafe {
183 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(88);
184 (ptr as *mut u64).write_unaligned(0);
185 }
186 unsafe {
187 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(112);
188 (ptr as *mut u64).write_unaligned(0);
189 }
190 self.0.encode(encoder, offset + 0, depth)?;
192 self.1.encode(encoder, offset + 8, depth)?;
193 self.2.encode(encoder, offset + 9, depth)?;
194 self.3.encode(encoder, offset + 16, depth)?;
195 self.4.encode(encoder, offset + 24, depth)?;
196 self.5.encode(encoder, offset + 25, depth)?;
197 self.6.encode(encoder, offset + 28, depth)?;
198 self.7.encode(encoder, offset + 32, depth)?;
199 self.8.encode(encoder, offset + 40, depth)?;
200 self.9.encode(encoder, offset + 56, depth)?;
201 self.10.encode(encoder, offset + 60, depth)?;
202 self.11.encode(encoder, offset + 64, depth)?;
203 self.12.encode(encoder, offset + 72, depth)?;
204 self.13.encode(encoder, offset + 88, depth)?;
205 self.14.encode(encoder, offset + 89, depth)?;
206 self.15.encode(encoder, offset + 90, depth)?;
207 self.16.encode(encoder, offset + 91, depth)?;
208 self.17.encode(encoder, offset + 92, depth)?;
209 self.18.encode(encoder, offset + 96, depth)?;
210 self.19.encode(encoder, offset + 104, depth)?;
211 self.20.encode(encoder, offset + 112, depth)?;
212 self.21.encode(encoder, offset + 113, depth)?;
213 Ok(())
214 }
215 }
216
217 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
218 #[inline(always)]
219 fn new_empty() -> Self {
220 Self {
221 back_off_time_between_pull_samples_sec: fidl::new_empty!(i64, D),
222 disable_delays: fidl::new_empty!(bool, D),
223 early_exit: fidl::new_empty!(bool, D),
224 first_sampling_delay_sec: fidl::new_empty!(i64, D),
225 has_always_on_counter: fidl::new_empty!(bool, D),
226 has_real_time_clock: fidl::new_empty!(bool, D),
227 initial_frequency_ppm: fidl::new_empty!(u32, D),
228 max_frequency_error_ppm: fidl::new_empty!(u32, D),
229 monitor_time_source_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
230 monitor_uses_pull: fidl::new_empty!(bool, D),
231 oscillator_error_std_dev_ppm: fidl::new_empty!(u32, D),
232 power_topology_integration_enabled: fidl::new_empty!(bool, D),
233 primary_time_source_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
234 primary_uses_pull: fidl::new_empty!(bool, D),
235 serve_fuchsia_time_alarms: fidl::new_empty!(bool, D),
236 serve_fuchsia_time_external_adjust: fidl::new_empty!(bool, D),
237 serve_test_protocols: fidl::new_empty!(bool, D),
238 use_connectivity: fidl::new_empty!(bool, D),
239 utc_max_allowed_delta_future_sec: fidl::new_empty!(i64, D),
240 utc_max_allowed_delta_past_sec: fidl::new_empty!(i64, D),
241 utc_start_at_startup: fidl::new_empty!(bool, D),
242 utc_start_at_startup_when_invalid_rtc: fidl::new_empty!(bool, D),
243 }
244 }
245
246 #[inline]
247 unsafe fn decode(
248 &mut self,
249 decoder: &mut fidl::encoding::Decoder<'_, D>,
250 offset: usize,
251 _depth: fidl::encoding::Depth,
252 ) -> fidl::Result<()> {
253 decoder.debug_check_bounds::<Self>(offset);
254 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
256 let padval = unsafe { (ptr as *const u64).read_unaligned() };
257 let mask = 0xffffffffffff0000u64;
258 let maskedval = padval & mask;
259 if maskedval != 0 {
260 return Err(fidl::Error::NonZeroPadding {
261 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
262 });
263 }
264 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
265 let padval = unsafe { (ptr as *const u64).read_unaligned() };
266 let mask = 0xffff0000u64;
267 let maskedval = padval & mask;
268 if maskedval != 0 {
269 return Err(fidl::Error::NonZeroPadding {
270 padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
271 });
272 }
273 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
274 let padval = unsafe { (ptr as *const u64).read_unaligned() };
275 let mask = 0xffffffff00000000u64;
276 let maskedval = padval & mask;
277 if maskedval != 0 {
278 return Err(fidl::Error::NonZeroPadding {
279 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
280 });
281 }
282 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(56) };
283 let padval = unsafe { (ptr as *const u64).read_unaligned() };
284 let mask = 0xffffff00u64;
285 let maskedval = padval & mask;
286 if maskedval != 0 {
287 return Err(fidl::Error::NonZeroPadding {
288 padding_start: offset + 56 + ((mask as u64).trailing_zeros() / 8) as usize,
289 });
290 }
291 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(64) };
292 let padval = unsafe { (ptr as *const u64).read_unaligned() };
293 let mask = 0xffffffffffffff00u64;
294 let maskedval = padval & mask;
295 if maskedval != 0 {
296 return Err(fidl::Error::NonZeroPadding {
297 padding_start: offset + 64 + ((mask as u64).trailing_zeros() / 8) as usize,
298 });
299 }
300 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(88) };
301 let padval = unsafe { (ptr as *const u64).read_unaligned() };
302 let mask = 0xffffff0000000000u64;
303 let maskedval = padval & mask;
304 if maskedval != 0 {
305 return Err(fidl::Error::NonZeroPadding {
306 padding_start: offset + 88 + ((mask as u64).trailing_zeros() / 8) as usize,
307 });
308 }
309 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(112) };
310 let padval = unsafe { (ptr as *const u64).read_unaligned() };
311 let mask = 0xffffffffffff0000u64;
312 let maskedval = padval & mask;
313 if maskedval != 0 {
314 return Err(fidl::Error::NonZeroPadding {
315 padding_start: offset + 112 + ((mask as u64).trailing_zeros() / 8) as usize,
316 });
317 }
318 fidl::decode!(
319 i64,
320 D,
321 &mut self.back_off_time_between_pull_samples_sec,
322 decoder,
323 offset + 0,
324 _depth
325 )?;
326 fidl::decode!(bool, D, &mut self.disable_delays, decoder, offset + 8, _depth)?;
327 fidl::decode!(bool, D, &mut self.early_exit, decoder, offset + 9, _depth)?;
328 fidl::decode!(
329 i64,
330 D,
331 &mut self.first_sampling_delay_sec,
332 decoder,
333 offset + 16,
334 _depth
335 )?;
336 fidl::decode!(bool, D, &mut self.has_always_on_counter, decoder, offset + 24, _depth)?;
337 fidl::decode!(bool, D, &mut self.has_real_time_clock, decoder, offset + 25, _depth)?;
338 fidl::decode!(u32, D, &mut self.initial_frequency_ppm, decoder, offset + 28, _depth)?;
339 fidl::decode!(u32, D, &mut self.max_frequency_error_ppm, decoder, offset + 32, _depth)?;
340 fidl::decode!(
341 fidl::encoding::BoundedString<4096>,
342 D,
343 &mut self.monitor_time_source_url,
344 decoder,
345 offset + 40,
346 _depth
347 )?;
348 fidl::decode!(bool, D, &mut self.monitor_uses_pull, decoder, offset + 56, _depth)?;
349 fidl::decode!(
350 u32,
351 D,
352 &mut self.oscillator_error_std_dev_ppm,
353 decoder,
354 offset + 60,
355 _depth
356 )?;
357 fidl::decode!(
358 bool,
359 D,
360 &mut self.power_topology_integration_enabled,
361 decoder,
362 offset + 64,
363 _depth
364 )?;
365 fidl::decode!(
366 fidl::encoding::BoundedString<4096>,
367 D,
368 &mut self.primary_time_source_url,
369 decoder,
370 offset + 72,
371 _depth
372 )?;
373 fidl::decode!(bool, D, &mut self.primary_uses_pull, decoder, offset + 88, _depth)?;
374 fidl::decode!(
375 bool,
376 D,
377 &mut self.serve_fuchsia_time_alarms,
378 decoder,
379 offset + 89,
380 _depth
381 )?;
382 fidl::decode!(
383 bool,
384 D,
385 &mut self.serve_fuchsia_time_external_adjust,
386 decoder,
387 offset + 90,
388 _depth
389 )?;
390 fidl::decode!(bool, D, &mut self.serve_test_protocols, decoder, offset + 91, _depth)?;
391 fidl::decode!(bool, D, &mut self.use_connectivity, decoder, offset + 92, _depth)?;
392 fidl::decode!(
393 i64,
394 D,
395 &mut self.utc_max_allowed_delta_future_sec,
396 decoder,
397 offset + 96,
398 _depth
399 )?;
400 fidl::decode!(
401 i64,
402 D,
403 &mut self.utc_max_allowed_delta_past_sec,
404 decoder,
405 offset + 104,
406 _depth
407 )?;
408 fidl::decode!(bool, D, &mut self.utc_start_at_startup, decoder, offset + 112, _depth)?;
409 fidl::decode!(
410 bool,
411 D,
412 &mut self.utc_start_at_startup_when_invalid_rtc,
413 decoder,
414 offset + 113,
415 _depth
416 )?;
417 Ok(())
418 }
419 }
420}