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