blob: 64c9b2ee290270689c754dd546a0935328c006d9 [file] [log] [blame]
// Copyright 2022 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.boot;
using fuchsia.io;
using zx;
/// Protocol for storing svc server ends of 'svc' for later processing during early boot.
closed protocol SvcStash {
/// Store a svc_endpoint in the stash. Stored endpoints will remain in transit,
/// since there might not be a server side implementation. The server end
/// is retrieved by |SvcStashProvider/Get|.
strict Store(resource struct {
svc_endpoint server_end:fuchsia.io.Directory;
});
};
/// Protocol for providing the server end of the 'SvcStash'.
@discoverable
closed protocol SvcStashProvider {
/// Get the SvcStash server endpoint.
///
/// There is at most one instance for the system, meaning only the first caller
/// may consume the handle.
strict Get() -> (resource struct {
resource server_end:SvcStash;
}) error zx.Status;
};