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
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ResolverRequest
impl !RefUnwindSafe for ResolverRequest
impl Send for ResolverRequest
impl Sync for ResolverRequest
impl Unpin for ResolverRequest
impl !UnwindSafe for ResolverRequest
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
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§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
]