components/appid/
assigner_tbf.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
5//! Components for AppID assigners based on TBF headers.
6
7use core::mem::MaybeUninit;
8use kernel::component::Component;
9
10#[macro_export]
11macro_rules! appid_assigner_tbf_header_component_static {
12    () => {{
13        kernel::static_buf!(capsules_system::process_checker::tbf::AppIdAssignerTbfHeader)
14    };};
15}
16
17pub struct AppIdAssignerTbfHeaderComponent {}
18
19impl AppIdAssignerTbfHeaderComponent {
20    pub fn new() -> Self {
21        Self {}
22    }
23}
24
25impl Component for AppIdAssignerTbfHeaderComponent {
26    type StaticInput =
27        &'static mut MaybeUninit<capsules_system::process_checker::tbf::AppIdAssignerTbfHeader>;
28
29    type Output = &'static capsules_system::process_checker::tbf::AppIdAssignerTbfHeader;
30
31    fn finalize(self, s: Self::StaticInput) -> Self::Output {
32        s.write(capsules_system::process_checker::tbf::AppIdAssignerTbfHeader {})
33    }
34}