| // 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.sysmem; |
| |
| using zx; |
| |
| // TODO(fxbug.dev/32119): change struct to table |
| /// Information about a buffer collection and its buffers. |
| @for_deprecated_c_bindings |
| type BufferCollectionInfo = resource struct { |
| /// The number of buffers in the collection. |
| buffer_count uint32; |
| |
| /// Describes how the contents of buffers are represented. |
| /// All buffers within the collection have the same format. |
| format BufferFormat; |
| |
| /// VMO handles for each buffer in the collection. |
| /// The VMOs are only present when the buffers are backed by VMOs. |
| /// |
| /// If present, all the VMOs after `buffer_count` are invalid handles. |
| /// All buffer VMO handles have identical size and access rights. |
| /// The VMO access rights are determined based on the usages which the |
| /// client specified when allocating the buffer collection. For example, |
| /// a client which expressed a read-only usage will receive VMOs without |
| /// write rights. |
| vmos array<zx.handle:<VMO, optional>, 64>; |
| |
| /// The size of each VMO provided. |
| /// This property is only present when the buffers are backed by VMOs. |
| @allow_deprecated_struct_defaults |
| vmo_size uint64 = 0; |
| }; |