capsules_system/storage_permissions/
null.rs

1// Licensed under the Apache License, Version 2.0 or the MIT License.
2// SPDX-License-Identifier: Apache-2.0 OR MIT
3// Copyright Tock Contributors 2024.
4
5use kernel::platform::chip::Chip;
6use kernel::storage_permissions::StoragePermissions;
7
8/// Always assign no storage permissions.
9pub struct NullStoragePermissions<C: Chip, D: kernel::process::ProcessStandardDebug> {
10    _chip: core::marker::PhantomData<C>,
11    _debug: core::marker::PhantomData<D>,
12}
13
14impl<C: Chip, D: kernel::process::ProcessStandardDebug> NullStoragePermissions<C, D> {
15    pub fn new() -> Self {
16        Self {
17            _chip: core::marker::PhantomData,
18            _debug: core::marker::PhantomData,
19        }
20    }
21}
22
23impl<C: Chip, D: kernel::process::ProcessStandardDebug>
24    kernel::process::ProcessStandardStoragePermissionsPolicy<C, D>
25    for NullStoragePermissions<C, D>
26{
27    fn get_permissions(
28        &self,
29        _process: &kernel::process::ProcessStandard<C, D>,
30    ) -> StoragePermissions {
31        StoragePermissions::new_null()
32    }
33}