blob: 52617bc27d81d226d9cc66af3e9ed9741e16cb57 [file] [log] [blame]
// Copyright 2019 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.hardware.goldfish.control;
using zx;
@transport("Banjo")
@banjo_layout("ddk-protocol")
protocol GoldfishControl {
/// Get color buffer for VMO. Fails if VMO is not associated with a color
/// buffer.
GetColorBuffer(resource struct {
vmo zx.handle:VMO;
}) -> (struct {
ret zx.status;
cb uint32;
});
/// Create a sync fence on goldfish control device. The fence `event`
/// argument will signal its peer once all the graphics work already queued
/// on the EGL display context associated with the device when it is created
/// has finished.
/// Returns ZX_ERR_INTERNAL if the device cannot create a fence or cannot
/// trigger the wait.
CreateSyncFence(resource struct {
event zx.handle:EVENTPAIR;
}) -> (struct {
ret zx.status;
});
/// Connect a channel to a goldfish-pipe FIDL server.
ConnectToPipeDevice(resource struct {
channel zx.handle:CHANNEL;
}) -> (struct {
ret zx.status;
});
};