| // 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. |
| |
| library fuchsia.ldsvc; |
| |
| using zx; |
| |
| /// 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. |
| |
| // WARNING: This interface is manually implemented in libldmsg.a. Please |
| // update that implementation if you change this protocol. |
| |
| [ForDeprecatedCBindings] |
| 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(string:1024 object_name) -> (zx.status rv, zx.handle:VMO? object); |
| |
| /// 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(string:1024 config) -> (zx.status rv); |
| |
| /// Obtain a new loader service connection. |
| Clone(request<Loader> loader) -> (zx.status rv); |
| }; |