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