blob: 6de20792f2003a52815e21b4da4a5f993c54697e [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")
closed protocol GoldfishControl {
/// Get color buffer for VMO. Fails if VMO is not associated with a color
/// buffer.
strict 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.
strict CreateSyncFence(resource struct {
event zx.Handle:EVENTPAIR;
}) -> (struct {
ret zx.Status;
});
/// Connect a channel to a goldfish-pipe FIDL server.
strict ConnectToPipeDevice(resource struct {
channel zx.Handle:CHANNEL;
}) -> (struct {
ret zx.Status;
});
};