blob: 442b06c2b9fb5c2a93e4cf54ec650bfa37b0c950 [file] [log] [blame]
// 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(https://fxbug.dev/42107169): change struct to table
/// Information about a buffer collection and its buffers.
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;
};