| // Copyright 2019 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; |
| |
| /// Declares a capability exposed to a component's containing realm, such as a |
| /// service exposed by the component or one of its children at runtime. |
| xunion ExposeDecl { |
| ExposeServiceDecl service; |
| ExposeDirectoryDecl directory; |
| }; |
| |
| /// Declares a service exposed to a component's containing realm, such as a |
| /// service exposed by the component or one of its children at runtime. |
| table ExposeServiceDecl { |
| /// The provider of the capability relative to the component itself. |
| 1: ExposeSource source; |
| |
| /// Path identifying the service, by which it was presented to this |
| /// component. |
| 2: string:MAX_PATH_LENGTH source_path; |
| |
| /// The path by which the capability is being exposed. |
| /// |
| /// Must be an absolute path starting with /. |
| 3: string:MAX_PATH_LENGTH target_path; |
| }; |
| |
| /// Declares a directory exposed to a component's containing realm, such as a |
| /// directory exposed by the component or one of its children at runtime. |
| table ExposeDirectoryDecl { |
| /// Path identifying the directory, by which it was presented to this |
| /// component. |
| 1: string:MAX_PATH_LENGTH source_path; |
| |
| /// The provider of the capability relative to the component itself. |
| 2: ExposeSource source; |
| |
| /// The path by which the capability is being exposed. |
| /// |
| /// Must be an absolute path starting with /. |
| 3: string:MAX_PATH_LENGTH target_path; |
| }; |
| |
| /// Identifies a source component of an ExposeDecl. |
| // TODO: Split ExposeSource by capability type. |
| xunion ExposeSource { |
| SelfRef myself; |
| ChildRef child; |
| }; |
| |