| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| @available(added=7) |
| library fuchsia.ldsvc; |
| |
| using zx; |
| |
| // WARNING: This interface is manually implemented in libldmsg.a. Please |
| // update that implementation if you change this protocol. |
| /// See ///docs/zircon/program_loading.md for a more complete |
| /// description of this and related process bootstrapping protocols, and |
| /// for specifics about the default global loader service's |
| /// interpretation of names, paths, and configurations. |
| @for_deprecated_c_bindings |
| protocol Loader { |
| /// Cleanly shutdown the connection to the Loader service. |
| Done(); |
| |
| /// The dynamic linker sends `object_name` and gets back a VMO |
| /// handle containing the file. |
| LoadObject(struct { |
| object_name string:1024; |
| }) -> (resource struct { |
| rv zx.status; |
| object zx.handle:<VMO, optional>; |
| }); |
| |
| /// The dynamic linker sends a `config` identifying its load |
| /// configuration. This is intended to affect how later |
| /// `LoadObject` requests decide what particular implementation |
| /// file to supply for a given name. |
| Config(struct { |
| config string:1024; |
| }) -> (struct { |
| rv zx.status; |
| }); |
| |
| /// Obtain a new loader service connection. |
| Clone(resource struct { |
| loader server_end:Loader; |
| }) -> (struct { |
| rv zx.status; |
| }); |
| }; |