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}