blob: 651293dcc58712eb05ddd4780fdc7e70280c561d [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);
};