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