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