components/storage_permissions/
null.rs1use core::mem::MaybeUninit;
9use kernel::component::Component;
10use kernel::platform::chip::Chip;
11use kernel::process::ProcessStandardDebug;
12
13#[macro_export]
14macro_rules! storage_permissions_null_component_static {
15    ($C:ty, $D:ty $(,)?) => {{
16        kernel::static_buf!(capsules_system::storage_permissions::null::NullStoragePermissions<$C, $D>)
17    };};
18}
19
20pub type StoragePermissionsNullComponentType<C, D> =
21    capsules_system::storage_permissions::null::NullStoragePermissions<C, D>;
22
23pub struct StoragePermissionsNullComponent<C: Chip, D: ProcessStandardDebug> {
24    _chip: core::marker::PhantomData<C>,
25    _debug: core::marker::PhantomData<D>,
26}
27
28impl<C: Chip, D: ProcessStandardDebug> StoragePermissionsNullComponent<C, D> {
29    pub fn new() -> Self {
30        Self {
31            _chip: core::marker::PhantomData,
32            _debug: core::marker::PhantomData,
33        }
34    }
35}
36
37impl<C: Chip + 'static, D: ProcessStandardDebug + 'static> Component
38    for StoragePermissionsNullComponent<C, D>
39{
40    type StaticInput = &'static mut MaybeUninit<
41        capsules_system::storage_permissions::null::NullStoragePermissions<C, D>,
42    >;
43    type Output = &'static capsules_system::storage_permissions::null::NullStoragePermissions<C, D>;
44
45    fn finalize(self, s: Self::StaticInput) -> Self::Output {
46        s.write(capsules_system::storage_permissions::null::NullStoragePermissions::new())
47    }
48}