blob: f43fa3913561e095220181fed4af4fa9bcaf4f2d [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.
@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;
});
};