| // 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; |
| }); |
| }; |