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 blobfs: bool,
14 pub blobfs_cache_eviction_policy: String,
15 pub blobfs_initial_inodes: u64,
16 pub blobfs_max_bytes: u64,
17 pub blobfs_use_deprecated_padded_format: bool,
18 pub blobfs_write_compression_algorithm: String,
19 pub bootpart: bool,
20 pub check_filesystems: bool,
21 pub data: bool,
22 pub data_filesystem_format: String,
23 pub data_max_bytes: u64,
24 pub disable_automount: bool,
25 pub disable_block_watcher: bool,
26 pub factory: bool,
27 pub format_data_on_corruption: bool,
28 pub fvm: bool,
29 pub fvm_slice_size: u64,
30 pub fxfs_blob: bool,
31 pub fxfs_crypt_url: String,
32 pub gpt: bool,
33 pub gpt_all: bool,
34 pub inline_crypto: bool,
35 pub mbr: bool,
36 pub merge_super_and_userdata: bool,
37 pub no_zxcrypt: bool,
38 pub provision_fxfs: bool,
39 pub ramdisk_image: bool,
40 pub starnix_volume_name: String,
41 pub storage_host: bool,
42 pub use_disk_migration: bool,
43 pub watch_deprecated_v1_drivers: bool,
44}
45
46impl fidl::Persistable for Config {}
47
48mod internal {
49 use super::*;
50
51 impl fidl::encoding::ValueTypeMarker for Config {
52 type Borrowed<'a> = &'a Self;
53 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
54 value
55 }
56 }
57
58 unsafe impl fidl::encoding::TypeMarker for Config {
59 type Owned = Self;
60
61 #[inline(always)]
62 fn inline_align(_context: fidl::encoding::Context) -> usize {
63 8
64 }
65
66 #[inline(always)]
67 fn inline_size(_context: fidl::encoding::Context) -> usize {
68 168
69 }
70 }
71
72 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
73 #[inline]
74 unsafe fn encode(
75 self,
76 encoder: &mut fidl::encoding::Encoder<'_, D>,
77 offset: usize,
78 _depth: fidl::encoding::Depth,
79 ) -> fidl::Result<()> {
80 encoder.debug_check_bounds::<Config>(offset);
81 fidl::encoding::Encode::<Config, D>::encode(
83 (
84 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.blobfs),
85 <fidl::encoding::BoundedString<20> as fidl::encoding::ValueTypeMarker>::borrow(
86 &self.blobfs_cache_eviction_policy,
87 ),
88 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.blobfs_initial_inodes),
89 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.blobfs_max_bytes),
90 <bool as fidl::encoding::ValueTypeMarker>::borrow(
91 &self.blobfs_use_deprecated_padded_format,
92 ),
93 <fidl::encoding::BoundedString<20> as fidl::encoding::ValueTypeMarker>::borrow(
94 &self.blobfs_write_compression_algorithm,
95 ),
96 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.bootpart),
97 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.check_filesystems),
98 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
99 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(
100 &self.data_filesystem_format,
101 ),
102 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.data_max_bytes),
103 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.disable_automount),
104 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.disable_block_watcher),
105 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.factory),
106 <bool as fidl::encoding::ValueTypeMarker>::borrow(
107 &self.format_data_on_corruption,
108 ),
109 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.fvm),
110 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.fvm_slice_size),
111 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.fxfs_blob),
112 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(
113 &self.fxfs_crypt_url,
114 ),
115 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.gpt),
116 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.gpt_all),
117 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.inline_crypto),
118 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.mbr),
119 <bool as fidl::encoding::ValueTypeMarker>::borrow(
120 &self.merge_super_and_userdata,
121 ),
122 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.no_zxcrypt),
123 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.provision_fxfs),
124 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.ramdisk_image),
125 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(
126 &self.starnix_volume_name,
127 ),
128 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.storage_host),
129 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.use_disk_migration),
130 <bool as fidl::encoding::ValueTypeMarker>::borrow(
131 &self.watch_deprecated_v1_drivers,
132 ),
133 ),
134 encoder,
135 offset,
136 _depth,
137 )
138 }
139 }
140 unsafe impl<
141 D: fidl::encoding::ResourceDialect,
142 T0: fidl::encoding::Encode<bool, D>,
143 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<20>, D>,
144 T2: fidl::encoding::Encode<u64, D>,
145 T3: fidl::encoding::Encode<u64, D>,
146 T4: fidl::encoding::Encode<bool, D>,
147 T5: fidl::encoding::Encode<fidl::encoding::BoundedString<20>, D>,
148 T6: fidl::encoding::Encode<bool, D>,
149 T7: fidl::encoding::Encode<bool, D>,
150 T8: fidl::encoding::Encode<bool, D>,
151 T9: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
152 T10: fidl::encoding::Encode<u64, D>,
153 T11: fidl::encoding::Encode<bool, D>,
154 T12: fidl::encoding::Encode<bool, D>,
155 T13: fidl::encoding::Encode<bool, D>,
156 T14: fidl::encoding::Encode<bool, D>,
157 T15: fidl::encoding::Encode<bool, D>,
158 T16: fidl::encoding::Encode<u64, D>,
159 T17: fidl::encoding::Encode<bool, D>,
160 T18: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
161 T19: fidl::encoding::Encode<bool, D>,
162 T20: fidl::encoding::Encode<bool, D>,
163 T21: fidl::encoding::Encode<bool, D>,
164 T22: fidl::encoding::Encode<bool, D>,
165 T23: fidl::encoding::Encode<bool, D>,
166 T24: fidl::encoding::Encode<bool, D>,
167 T25: fidl::encoding::Encode<bool, D>,
168 T26: fidl::encoding::Encode<bool, D>,
169 T27: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
170 T28: fidl::encoding::Encode<bool, D>,
171 T29: fidl::encoding::Encode<bool, D>,
172 T30: fidl::encoding::Encode<bool, D>,
173 > fidl::encoding::Encode<Config, D>
174 for (
175 T0,
176 T1,
177 T2,
178 T3,
179 T4,
180 T5,
181 T6,
182 T7,
183 T8,
184 T9,
185 T10,
186 T11,
187 T12,
188 T13,
189 T14,
190 T15,
191 T16,
192 T17,
193 T18,
194 T19,
195 T20,
196 T21,
197 T22,
198 T23,
199 T24,
200 T25,
201 T26,
202 T27,
203 T28,
204 T29,
205 T30,
206 )
207 {
208 #[inline]
209 unsafe fn encode(
210 self,
211 encoder: &mut fidl::encoding::Encoder<'_, D>,
212 offset: usize,
213 depth: fidl::encoding::Depth,
214 ) -> fidl::Result<()> {
215 encoder.debug_check_bounds::<Config>(offset);
216 unsafe {
219 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
220 (ptr as *mut u64).write_unaligned(0);
221 }
222 unsafe {
223 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
224 (ptr as *mut u64).write_unaligned(0);
225 }
226 unsafe {
227 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(64);
228 (ptr as *mut u64).write_unaligned(0);
229 }
230 unsafe {
231 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(96);
232 (ptr as *mut u64).write_unaligned(0);
233 }
234 unsafe {
235 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(112);
236 (ptr as *mut u64).write_unaligned(0);
237 }
238 unsafe {
239 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(160);
240 (ptr as *mut u64).write_unaligned(0);
241 }
242 self.0.encode(encoder, offset + 0, depth)?;
244 self.1.encode(encoder, offset + 8, depth)?;
245 self.2.encode(encoder, offset + 24, depth)?;
246 self.3.encode(encoder, offset + 32, depth)?;
247 self.4.encode(encoder, offset + 40, depth)?;
248 self.5.encode(encoder, offset + 48, depth)?;
249 self.6.encode(encoder, offset + 64, depth)?;
250 self.7.encode(encoder, offset + 65, depth)?;
251 self.8.encode(encoder, offset + 66, depth)?;
252 self.9.encode(encoder, offset + 72, depth)?;
253 self.10.encode(encoder, offset + 88, depth)?;
254 self.11.encode(encoder, offset + 96, depth)?;
255 self.12.encode(encoder, offset + 97, depth)?;
256 self.13.encode(encoder, offset + 98, depth)?;
257 self.14.encode(encoder, offset + 99, depth)?;
258 self.15.encode(encoder, offset + 100, depth)?;
259 self.16.encode(encoder, offset + 104, depth)?;
260 self.17.encode(encoder, offset + 112, depth)?;
261 self.18.encode(encoder, offset + 120, depth)?;
262 self.19.encode(encoder, offset + 136, depth)?;
263 self.20.encode(encoder, offset + 137, depth)?;
264 self.21.encode(encoder, offset + 138, depth)?;
265 self.22.encode(encoder, offset + 139, depth)?;
266 self.23.encode(encoder, offset + 140, depth)?;
267 self.24.encode(encoder, offset + 141, depth)?;
268 self.25.encode(encoder, offset + 142, depth)?;
269 self.26.encode(encoder, offset + 143, depth)?;
270 self.27.encode(encoder, offset + 144, depth)?;
271 self.28.encode(encoder, offset + 160, depth)?;
272 self.29.encode(encoder, offset + 161, depth)?;
273 self.30.encode(encoder, offset + 162, depth)?;
274 Ok(())
275 }
276 }
277
278 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
279 #[inline(always)]
280 fn new_empty() -> Self {
281 Self {
282 blobfs: fidl::new_empty!(bool, D),
283 blobfs_cache_eviction_policy: fidl::new_empty!(
284 fidl::encoding::BoundedString<20>,
285 D
286 ),
287 blobfs_initial_inodes: fidl::new_empty!(u64, D),
288 blobfs_max_bytes: fidl::new_empty!(u64, D),
289 blobfs_use_deprecated_padded_format: fidl::new_empty!(bool, D),
290 blobfs_write_compression_algorithm: fidl::new_empty!(
291 fidl::encoding::BoundedString<20>,
292 D
293 ),
294 bootpart: fidl::new_empty!(bool, D),
295 check_filesystems: fidl::new_empty!(bool, D),
296 data: fidl::new_empty!(bool, D),
297 data_filesystem_format: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
298 data_max_bytes: fidl::new_empty!(u64, D),
299 disable_automount: fidl::new_empty!(bool, D),
300 disable_block_watcher: fidl::new_empty!(bool, D),
301 factory: fidl::new_empty!(bool, D),
302 format_data_on_corruption: fidl::new_empty!(bool, D),
303 fvm: fidl::new_empty!(bool, D),
304 fvm_slice_size: fidl::new_empty!(u64, D),
305 fxfs_blob: fidl::new_empty!(bool, D),
306 fxfs_crypt_url: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
307 gpt: fidl::new_empty!(bool, D),
308 gpt_all: fidl::new_empty!(bool, D),
309 inline_crypto: fidl::new_empty!(bool, D),
310 mbr: fidl::new_empty!(bool, D),
311 merge_super_and_userdata: fidl::new_empty!(bool, D),
312 no_zxcrypt: fidl::new_empty!(bool, D),
313 provision_fxfs: fidl::new_empty!(bool, D),
314 ramdisk_image: fidl::new_empty!(bool, D),
315 starnix_volume_name: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
316 storage_host: fidl::new_empty!(bool, D),
317 use_disk_migration: fidl::new_empty!(bool, D),
318 watch_deprecated_v1_drivers: fidl::new_empty!(bool, D),
319 }
320 }
321
322 #[inline]
323 unsafe fn decode(
324 &mut self,
325 decoder: &mut fidl::encoding::Decoder<'_, D>,
326 offset: usize,
327 _depth: fidl::encoding::Depth,
328 ) -> fidl::Result<()> {
329 decoder.debug_check_bounds::<Self>(offset);
330 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
332 let padval = unsafe { (ptr as *const u64).read_unaligned() };
333 let mask = 0xffffffffffffff00u64;
334 let maskedval = padval & mask;
335 if maskedval != 0 {
336 return Err(fidl::Error::NonZeroPadding {
337 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
338 });
339 }
340 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
341 let padval = unsafe { (ptr as *const u64).read_unaligned() };
342 let mask = 0xffffffffffffff00u64;
343 let maskedval = padval & mask;
344 if maskedval != 0 {
345 return Err(fidl::Error::NonZeroPadding {
346 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
347 });
348 }
349 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(64) };
350 let padval = unsafe { (ptr as *const u64).read_unaligned() };
351 let mask = 0xffffffffff000000u64;
352 let maskedval = padval & mask;
353 if maskedval != 0 {
354 return Err(fidl::Error::NonZeroPadding {
355 padding_start: offset + 64 + ((mask as u64).trailing_zeros() / 8) as usize,
356 });
357 }
358 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(96) };
359 let padval = unsafe { (ptr as *const u64).read_unaligned() };
360 let mask = 0xffffff0000000000u64;
361 let maskedval = padval & mask;
362 if maskedval != 0 {
363 return Err(fidl::Error::NonZeroPadding {
364 padding_start: offset + 96 + ((mask as u64).trailing_zeros() / 8) as usize,
365 });
366 }
367 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(112) };
368 let padval = unsafe { (ptr as *const u64).read_unaligned() };
369 let mask = 0xffffffffffffff00u64;
370 let maskedval = padval & mask;
371 if maskedval != 0 {
372 return Err(fidl::Error::NonZeroPadding {
373 padding_start: offset + 112 + ((mask as u64).trailing_zeros() / 8) as usize,
374 });
375 }
376 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(160) };
377 let padval = unsafe { (ptr as *const u64).read_unaligned() };
378 let mask = 0xffffffffff000000u64;
379 let maskedval = padval & mask;
380 if maskedval != 0 {
381 return Err(fidl::Error::NonZeroPadding {
382 padding_start: offset + 160 + ((mask as u64).trailing_zeros() / 8) as usize,
383 });
384 }
385 fidl::decode!(bool, D, &mut self.blobfs, decoder, offset + 0, _depth)?;
386 fidl::decode!(
387 fidl::encoding::BoundedString<20>,
388 D,
389 &mut self.blobfs_cache_eviction_policy,
390 decoder,
391 offset + 8,
392 _depth
393 )?;
394 fidl::decode!(u64, D, &mut self.blobfs_initial_inodes, decoder, offset + 24, _depth)?;
395 fidl::decode!(u64, D, &mut self.blobfs_max_bytes, decoder, offset + 32, _depth)?;
396 fidl::decode!(
397 bool,
398 D,
399 &mut self.blobfs_use_deprecated_padded_format,
400 decoder,
401 offset + 40,
402 _depth
403 )?;
404 fidl::decode!(
405 fidl::encoding::BoundedString<20>,
406 D,
407 &mut self.blobfs_write_compression_algorithm,
408 decoder,
409 offset + 48,
410 _depth
411 )?;
412 fidl::decode!(bool, D, &mut self.bootpart, decoder, offset + 64, _depth)?;
413 fidl::decode!(bool, D, &mut self.check_filesystems, decoder, offset + 65, _depth)?;
414 fidl::decode!(bool, D, &mut self.data, decoder, offset + 66, _depth)?;
415 fidl::decode!(
416 fidl::encoding::BoundedString<64>,
417 D,
418 &mut self.data_filesystem_format,
419 decoder,
420 offset + 72,
421 _depth
422 )?;
423 fidl::decode!(u64, D, &mut self.data_max_bytes, decoder, offset + 88, _depth)?;
424 fidl::decode!(bool, D, &mut self.disable_automount, decoder, offset + 96, _depth)?;
425 fidl::decode!(bool, D, &mut self.disable_block_watcher, decoder, offset + 97, _depth)?;
426 fidl::decode!(bool, D, &mut self.factory, decoder, offset + 98, _depth)?;
427 fidl::decode!(
428 bool,
429 D,
430 &mut self.format_data_on_corruption,
431 decoder,
432 offset + 99,
433 _depth
434 )?;
435 fidl::decode!(bool, D, &mut self.fvm, decoder, offset + 100, _depth)?;
436 fidl::decode!(u64, D, &mut self.fvm_slice_size, decoder, offset + 104, _depth)?;
437 fidl::decode!(bool, D, &mut self.fxfs_blob, decoder, offset + 112, _depth)?;
438 fidl::decode!(
439 fidl::encoding::BoundedString<64>,
440 D,
441 &mut self.fxfs_crypt_url,
442 decoder,
443 offset + 120,
444 _depth
445 )?;
446 fidl::decode!(bool, D, &mut self.gpt, decoder, offset + 136, _depth)?;
447 fidl::decode!(bool, D, &mut self.gpt_all, decoder, offset + 137, _depth)?;
448 fidl::decode!(bool, D, &mut self.inline_crypto, decoder, offset + 138, _depth)?;
449 fidl::decode!(bool, D, &mut self.mbr, decoder, offset + 139, _depth)?;
450 fidl::decode!(
451 bool,
452 D,
453 &mut self.merge_super_and_userdata,
454 decoder,
455 offset + 140,
456 _depth
457 )?;
458 fidl::decode!(bool, D, &mut self.no_zxcrypt, decoder, offset + 141, _depth)?;
459 fidl::decode!(bool, D, &mut self.provision_fxfs, decoder, offset + 142, _depth)?;
460 fidl::decode!(bool, D, &mut self.ramdisk_image, decoder, offset + 143, _depth)?;
461 fidl::decode!(
462 fidl::encoding::BoundedString<64>,
463 D,
464 &mut self.starnix_volume_name,
465 decoder,
466 offset + 144,
467 _depth
468 )?;
469 fidl::decode!(bool, D, &mut self.storage_host, decoder, offset + 160, _depth)?;
470 fidl::decode!(bool, D, &mut self.use_disk_migration, decoder, offset + 161, _depth)?;
471 fidl::decode!(
472 bool,
473 D,
474 &mut self.watch_deprecated_v1_drivers,
475 decoder,
476 offset + 162,
477 _depth
478 )?;
479 Ok(())
480 }
481 }
482}