blob: 5e20336de55030f6cf45217c15fbe35242745a4c [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.sys2;
using fuchsia.io;
/// A namespace specifies the set of directories that a component instance
/// receives at start-up. Each component instance's namespace is tailored
/// to provide access to a set of files and services that are appropriate
/// to that component instance's role in the system (its sandbox).
///
/// By convention, a component's namespace typically contains some or all
/// of the following directories:
///
/// - "/svc": A directory containing services that the component requested
/// to use via its "import" declarations.
/// - "/pkg": A directory containing the component's package, including its
/// binaries, libraries, and other assets.
struct ComponentNamespace {
/// The mount point for each of the directories below, each including a
/// leading slash. For example, ["/pkg", "/svc", "/config/data"].
///
/// Each mount point must be unique and non-overlapping.
/// For example, ["/foo", "/foo/bar"] is invalid.
vector<string> paths;
/// The directories mounted at each path in the namespace.
vector<fuchsia.io.Directory> directories;
};