blob: 3c2ace66c3a469106cfc0f412f36ace4d7669638 [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;
};