| // 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; |
| }; |