blob: 351bfb9bb4bcb20c309ad4f703d5a96b30a53cce [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.
type MemStat = struct {
tag uint16;
val uint64;
};
/// A `BalloonController` controls a guest instance's memory balloon.
@discoverable
protocol BalloonController {
/// Get the number of pages in the memory balloon.
GetNumPages() -> (struct {
num_pages uint32;
});
/// 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(struct {
num_pages uint32;
});
/// Get memory statistics of the guest instance.
GetMemStats() -> (struct {
status zx.status;
mem_stats vector<MemStat>:optional;
});
};