| // 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 zx; |
| |
| // Contains a memory statistic for the balloon device. |
| struct MemStat { |
| uint16 tag; |
| uint64 val; |
| }; |
| |
| // A |BalloonController| controls a guest instance's memory balloon. |
| [Discoverable] |
| protocol BalloonController { |
| // Get the number of pages in the memory balloon. |
| GetNumPages() -> (uint32 num_pages); |
| |
| // Request a number of pages to be supplied to the memory balloon. |
| // |
| // If |num_pages| is greater than the current value, the guest instance will |
| // provide additional pages to the memory balloon. If |num_pages| is less |
| // than the current value, the guest instance is free to reclaim pages from |
| // the memory balloon. |
| RequestNumPages(uint32 num_pages); |
| |
| // Get memory statistics of the guest instance. |
| GetMemStats() -> (zx.status status, vector<MemStat>? mem_stats); |
| }; |