// 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.

#ifndef SYSROOT_ZIRCON_DEVICE_SYSMEM_H_
#define SYSROOT_ZIRCON_DEVICE_SYSMEM_H_

#include <ddk/metadata.h>
#include <fuchsia/sysmem/c/fidl.h>

// "SyM"
#define SYSMEM_METADATA (0x53794d00 | DEVICE_METADATA_PRIVATE)

typedef struct {
    uint32_t vid;
    uint32_t pid;
    uint64_t protected_memory_size;
    // Size of the pool used to allocate contiguous memory.
    uint64_t contiguous_memory_size;
} sysmem_metadata_t;

// TODO(ZX-2677): Deleting this file is blocked by banjo being able to consume
// code generated by fidl.
typedef fuchsia_sysmem_BufferCollectionInfo buffer_collection_info_t;

#endif  // SYSROOT_ZIRCON_DEVICE_SYSMEM_H_
