pub enum SecureFastRpcRequest {
GetChannelId {
responder: SecureFastRpcGetChannelIdResponder,
},
Allocate {
size: u64,
responder: SecureFastRpcAllocateResponder,
},
GetCapabilities {
responder: SecureFastRpcGetCapabilitiesResponder,
},
AttachRootDomain {
server: ServerEnd<RemoteDomainMarker>,
responder: SecureFastRpcAttachRootDomainResponder,
},
CreateStaticDomain {
name: String,
memory_size: u32,
server: ServerEnd<RemoteDomainMarker>,
responder: SecureFastRpcCreateStaticDomainResponder,
},
_UnknownMethod {
ordinal: u64,
control_handle: SecureFastRpcControlHandle,
method_type: MethodType,
},
}
Expand description
This is a secure fastrpc protocol and provides certain privileged operations like attaching to the root protection domain in a remote processor. Currently starnix is the only direct user of this protocol, therefore we don’t need an unsecure variant. If in the future we want to provide this to client applications directly, we will need to make sure there is also an UnsecureFastRpc protocol.
Variants§
GetChannelId
Used to identify the channel id that this device instance talks to. The channel id is associated with the remote processor target.
Fields
responder: SecureFastRpcGetChannelIdResponder
Allocate
Allocate a contiguous region of memory of at least |size|. This memory is meant to be used in |VmoArgument| typed arguments in an |InvokeParameters|. This vmo is owned exclusively by the caller.
GetCapabilities
Get the vector of capabilities from the remote processor.
Fields
responder: SecureFastRpcGetCapabilitiesResponder
AttachRootDomain
Attaches to the root (Guest OS) protection domain in the remote processor. This domain can access to the memory of its own protection domain, the memory of the user protection domains, and some system registers.
CreateStaticDomain
Creates the static (user) protection domain identified by |name| on the remote processor. This is provided with a memory of size |memory_size|. This protection domain can access only its own memory. Static domains are created for specific use cases like audio.
_UnknownMethod
An interaction was received which does not match any known method.
Fields
This variant is marked as non-exhaustive
control_handle: SecureFastRpcControlHandle
method_type: MethodType
Implementations§
Source§impl SecureFastRpcRequest
impl SecureFastRpcRequest
pub fn into_get_channel_id(self) -> Option<SecureFastRpcGetChannelIdResponder>
pub fn into_allocate(self) -> Option<(u64, SecureFastRpcAllocateResponder)>
pub fn into_get_capabilities( self, ) -> Option<SecureFastRpcGetCapabilitiesResponder>
pub fn into_attach_root_domain( self, ) -> Option<(ServerEnd<RemoteDomainMarker>, SecureFastRpcAttachRootDomainResponder)>
pub fn into_create_static_domain( self, ) -> Option<(String, u32, ServerEnd<RemoteDomainMarker>, SecureFastRpcCreateStaticDomainResponder)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL