1use core::mem::MaybeUninit;
8use kernel::component::Component;
9use kernel::deferred_call::DeferredCallClient;
10
11#[macro_export]
13macro_rules! siphasher24_component_static {
14 ($(,)?) => {{
15 kernel::static_buf!(capsules_extra::sip_hash::SipHasher24)
16 };};
17}
18
19pub type Siphasher24ComponentType = capsules_extra::sip_hash::SipHasher24<'static>;
20
21pub struct Siphasher24Component {}
22
23impl Siphasher24Component {
24 pub fn new() -> Siphasher24Component {
25 Siphasher24Component {}
26 }
27}
28
29impl Component for Siphasher24Component {
30 type StaticInput = &'static mut MaybeUninit<capsules_extra::sip_hash::SipHasher24<'static>>;
31 type Output = &'static capsules_extra::sip_hash::SipHasher24<'static>;
32
33 fn finalize(self, s: Self::StaticInput) -> Self::Output {
34 let sip_hash = s.write(capsules_extra::sip_hash::SipHasher24::new());
35 sip_hash.register();
36 sip_hash
37 }
38}