blob: e823db70a76706e6453bb5674be45e5fc6533665 [file] [log] [blame]
// 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.
[Layout = "Simple"]
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, 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);
};