blob: 84763b56b4b248e0a60bf757fb25e5cb41b3d53c [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.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);
};