pub enum ResolverRequest {
Resolve {
name: String,
responder: ResolverResolveResponder,
},
}
Expand description
An interface for resolving names to executables and library loaders.
An executable itself is often not sufficient to create a working process
because many executables also load shared libraries. On Fuchsia, there is no
global pool of shared libraries. Instead, every process has an associated
fuchsia.ldsvc.Loader
, which provides access to a private pool of shared
libraries appropriate for that process.
This interface provides a protocol for resolving a name into both the
zx.Handle:VMO
for the executable and the fuchsia.ldsvc.Loader
for its
associated shared libraries.
This interface is rarely used directly. Instead, fdio_spawn
and
fdio_spawn_etc
use this interface internally when they try to run a file
with a #!resolve
directive.
Variants§
Resolve
Resolves the given name
to an executable
and an shared library
loader.
If present, the executable
is suitable for use as the executable
property of LaunchInfo
– in particular, it will have ZX_RIGHT_EXECUTE
.
If present, the ldsvc
is suitable for use as the PA_LDSVC_LOADER
handle when launching the process.
For example, the resolver might locate the given name
inside a package
and return the executable binary from the package as well as a shared
library loader scoped to that package.
Implementations§
Source§impl ResolverRequest
impl ResolverRequest
pub fn into_resolve(self) -> Option<(String, ResolverResolveResponder)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL