Skip to main content

fidl_cf_sc_internal_fshostconfig_common/
fidl_cf_sc_internal_fshostconfig_common.rs

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