Skip to content

Commit

Permalink
boards: components: store perms: support caps
Browse files Browse the repository at this point in the history
  • Loading branch information
bradjc committed Jul 2, 2024
1 parent 93a5aa6 commit 48e7cca
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 10 deletions.
28 changes: 23 additions & 5 deletions boards/components/src/storage_permissions/individual.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,30 @@
//! ```

use core::mem::MaybeUninit;
use kernel::capabilities;
use kernel::component::Component;
use kernel::platform::chip::Chip;

#[macro_export]
macro_rules! storage_permissions_individual_component_static {
($C:ty $(,)?) => {{
kernel::static_buf!(
capsules_system::storage_permissions::individual::IndividualStoragePermissions<$C>
capsules_system::storage_permissions::individual::IndividualStoragePermissions<
$C,
components::storage_permissions::individual::AppStoreCapability
>
)
};};
}

pub struct AppStoreCapability;
unsafe impl capabilities::ApplicationStorageCapability for AppStoreCapability {}

pub type StoragePermissionsIndividualComponentType<C> =
capsules_system::storage_permissions::individual::IndividualStoragePermissions<C>;
capsules_system::storage_permissions::individual::IndividualStoragePermissions<
C,
AppStoreCapability,
>;

pub struct StoragePermissionsIndividualComponent<C: Chip> {
_chip: core::marker::PhantomData<C>,
Expand All @@ -43,14 +53,22 @@ impl<C: Chip> StoragePermissionsIndividualComponent<C> {

impl<C: Chip + 'static> Component for StoragePermissionsIndividualComponent<C> {
type StaticInput = &'static mut MaybeUninit<
capsules_system::storage_permissions::individual::IndividualStoragePermissions<C>,
capsules_system::storage_permissions::individual::IndividualStoragePermissions<
C,
AppStoreCapability,
>,
>;
type Output =
&'static capsules_system::storage_permissions::individual::IndividualStoragePermissions<C>;
&'static capsules_system::storage_permissions::individual::IndividualStoragePermissions<
C,
AppStoreCapability,
>;

fn finalize(self, s: Self::StaticInput) -> Self::Output {
s.write(
capsules_system::storage_permissions::individual::IndividualStoragePermissions::new(),
capsules_system::storage_permissions::individual::IndividualStoragePermissions::new(
AppStoreCapability,
),
)
}
}
27 changes: 22 additions & 5 deletions boards/components/src/storage_permissions/tbf_header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,22 @@ use kernel::platform::chip::Chip;
macro_rules! storage_permissions_tbf_header_component_static {
($C:ty $(,)?) => {{
kernel::static_buf!(
capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions<$C>
capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions<
$C,
components::storage_permissions::tbf_header::AppStoreCapability
>
)
};};
}

pub struct AppStoreCapability;
unsafe impl kernel::capabilities::ApplicationStorageCapability for AppStoreCapability {}

pub type StoragePermissionsTbfHeaderComponentType<C> =
capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions<C>;
capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions<
C,
AppStoreCapability,
>;

pub struct StoragePermissionsTbfHeaderComponent<C: Chip> {
_chip: core::marker::PhantomData<C>,
Expand All @@ -35,14 +44,22 @@ impl<C: Chip> StoragePermissionsTbfHeaderComponent<C> {

impl<C: Chip + 'static> Component for StoragePermissionsTbfHeaderComponent<C> {
type StaticInput = &'static mut MaybeUninit<
capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions<C>,
capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions<
C,
AppStoreCapability,
>,
>;
type Output =
&'static capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions<C>;
&'static capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions<
C,
AppStoreCapability,
>;

fn finalize(self, s: Self::StaticInput) -> Self::Output {
s.write(
capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions::new(),
capsules_system::storage_permissions::tbf_header::TbfHeaderStoragePermissions::new(
AppStoreCapability,
),
)
}
}

0 comments on commit 48e7cca

Please sign in to comment.