components/appid/
checker.rs1use core::mem::MaybeUninit;
8use kernel::component::Component;
9
10#[macro_export]
11macro_rules! process_checker_machine_component_static {
12    () => {{
13        kernel::static_buf!(kernel::process::ProcessCheckerMachine)
14    };};
15}
16
17pub type ProcessCheckerMachineComponentType = kernel::process::ProcessCheckerMachine;
18
19pub struct ProcessCheckerMachineComponent {
20    policy: &'static dyn kernel::process_checker::AppCredentialsPolicy<'static>,
21}
22
23impl ProcessCheckerMachineComponent {
24    pub fn new(policy: &'static dyn kernel::process_checker::AppCredentialsPolicy) -> Self {
25        Self { policy }
26    }
27}
28
29impl Component for ProcessCheckerMachineComponent {
30    type StaticInput = &'static mut MaybeUninit<kernel::process::ProcessCheckerMachine>;
31
32    type Output = &'static kernel::process::ProcessCheckerMachine;
33
34    fn finalize(self, s: Self::StaticInput) -> Self::Output {
35        let checker = s.write(kernel::process::ProcessCheckerMachine::new(self.policy));
36
37        self.policy.set_client(checker);
38        checker
39    }
40}