blob: 27ec814626ef85e21adbca3d0c0dda8583843d07 [file] [log] [blame]
// Copyright 2018 The Chromium 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;
// Information about a buffer collection and its buffers.
// TODO(ZX-2260): change struct to table
struct BufferCollectionInfo {
// The number of buffers in the collection.
uint32 buffer_count;
// Describes how the contents of buffers are represented.
// All buffers within the collection have the same format.
BufferFormat format;
// 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.
array<handle<vmo>?>:64 vmos;
// The size of each VMO provided.
// This property is only present when the buffers are backed by VMOs.
uint64 vmo_size = 0;
};