diff --git a/nucleus/src/arch/aarch64/caps.rs b/nucleus/src/arch/aarch64/caps.rs index d154a33..c1e0277 100644 --- a/nucleus/src/arch/aarch64/caps.rs +++ b/nucleus/src/arch/aarch64/caps.rs @@ -470,6 +470,19 @@ impl EndpointCapability {} // by having a root capnode cap we can traverse the whole tree. impl CapNodeCapability { + /// Create a capability to CapNode. + /// + /// CapNode capabilities allow to address a capability node tree entry. + pub fn new(pptr: u64, radix: u32, guard_size: u32, guard: u64) -> CapNodeCapability { + CapNodeCapability(LocalRegisterCopy::new(u128::from( + CapNodeCap::Type::value + + CapNodeCap::Radix.val(radix.into()) + + CapNodeCap::GuardSize.val(guard_size.into()) + + CapNodeCap::Guard.val(guard.into()) + + CapNodeCap::Ptr.val(pptr.into()), + ))) + } + /// Create new root node. pub fn new_root(pptr: u64) -> CapNodeCapability { const CONFIG_ROOT_CAPNODE_SIZE_BITS: u32 = 12; @@ -505,21 +518,6 @@ impl CapNodeCapability { } } -impl CapNodeCapability { - /// Create a capability to CapNode. - /// - /// CapNode capabilities allow to address a capability node tree entry. - pub fn new(pptr: u64, radix: u32, guard_size: u32, guard: u64) -> CapNodeCapability { - CapNodeCapability(LocalRegisterCopy::new(u128::from( - CapNodeCap::Type::value - + CapNodeCap::Radix.val(radix.into()) - + CapNodeCap::GuardSize.val(guard_size.into()) - + CapNodeCap::Guard.val(guard.into()) - + CapNodeCap::Ptr.val(pptr.into()), - ))) - } -} - /// Wrapper for CapDerivationNode #[derive(Clone, Debug)] pub struct DerivationTreeNode(LocalRegisterCopy);