|  | // 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); | 
|  | }; |