pub struct SecureMem;Expand description
The type corresponding to the SecureMem protocol. SecureMem
The client is sysmem. The server is securemem driver.
TEE - Trusted Execution Environment.
REE - Rich Execution Environment.
Enables sysmem to call the securemem driver to get any secure heaps configured via the TEE (or via the securemem driver), and set any physical secure heaps configured via sysmem.
Presently, dynamically-allocated secure heaps are configured via sysmem, as it starts quite early during boot and can successfully reserve contiguous physical memory. Presently, fixed-location secure heaps are configured via TEE, as the plumbing goes from the bootloader to the TEE. However, this protocol intentionally doesn’t care which heaps are dynamically-allocated and which are fixed-location.
Trait Implementations§
Source§impl<___H, ___T> DispatchClientMessage<___H, ___T> for SecureMemwhere
___H: SecureMemClientHandler<___T> + Send,
___T: Transport,
impl<___H, ___T> DispatchClientMessage<___H, ___T> for SecureMemwhere
___H: SecureMemClientHandler<___T> + Send,
___T: Transport,
Source§impl<___H, ___T> DispatchLocalClientMessage<___H, ___T> for SecureMemwhere
___H: SecureMemLocalClientHandler<___T>,
___T: Transport,
impl<___H, ___T> DispatchLocalClientMessage<___H, ___T> for SecureMemwhere
___H: SecureMemLocalClientHandler<___T>,
___T: Transport,
Source§impl<___H, ___T> DispatchLocalServerMessage<___H, ___T> for SecureMemwhere
SecureMemAddSecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemDeleteSecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
___H: SecureMemLocalServerHandler<___T>,
SecureMemModifySecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
___T: Transport,
SecureMemZeroSubRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemGetPhysicalSecureHeapPropertiesRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
impl<___H, ___T> DispatchLocalServerMessage<___H, ___T> for SecureMemwhere
SecureMemAddSecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemDeleteSecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
___H: SecureMemLocalServerHandler<___T>,
SecureMemModifySecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
___T: Transport,
SecureMemZeroSubRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemGetPhysicalSecureHeapPropertiesRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
Source§impl<___H, ___T> DispatchServerMessage<___H, ___T> for SecureMemwhere
SecureMemGetPhysicalSecureHeapPropertiesRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemAddSecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemDeleteSecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
___H: SecureMemServerHandler<___T> + Send,
SecureMemModifySecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemZeroSubRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
___T: Transport,
impl<___H, ___T> DispatchServerMessage<___H, ___T> for SecureMemwhere
SecureMemGetPhysicalSecureHeapPropertiesRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemAddSecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemDeleteSecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
___H: SecureMemServerHandler<___T> + Send,
SecureMemModifySecureHeapPhysicalRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
SecureMemZeroSubRangeRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
___T: Transport,
impl StructuralPartialEq for SecureMem
Auto Trait Implementations§
impl Freeze for SecureMem
impl RefUnwindSafe for SecureMem
impl Send for SecureMem
impl Sync for SecureMem
impl Unpin for SecureMem
impl UnsafeUnpin for SecureMem
impl UnwindSafe for SecureMem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]