| // 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.virtualization; |
| |
| using fuchsia.sys; |
| |
| protocol Realm { |
| /// Launch a new guest instance into this environment. The `cid` of the |
| /// instance is returned so that it can be uniquely identified. |
| LaunchInstance(resource struct { |
| url fuchsia.sys.component_url; |
| label string:<MAX, optional>; |
| guest_config GuestConfig; |
| controller server_end:Guest; |
| }) -> (struct { |
| cid uint32; |
| }); |
| |
| /// Query for guests running in this environment. |
| ListInstances() -> (struct { |
| instances vector<InstanceInfo>; |
| }); |
| |
| /// Connect to a currently running guest instance identified by `cid`. The |
| /// `cid` can be found via the return value of `LaunchInstance` or a call to |
| /// `ListInstances`. |
| ConnectToInstance(resource struct { |
| cid uint32; |
| controller server_end:Guest; |
| }); |
| |
| /// Connect to the memory balloon of a currently running guest instance |
| /// identified by `cid`. |
| ConnectToBalloon(resource struct { |
| cid uint32; |
| controller server_end:BalloonController; |
| }); |
| |
| /// Returns an interface that can be used to access the host vsock endpoint. |
| GetHostVsockEndpoint(resource struct { |
| endpoint server_end:HostVsockEndpoint; |
| }); |
| }; |