// 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.device.manager.test;

// Max size of returned metadata
const METADATA_MAX_SIZE uint32 = 0x1000;

/// Protocol to query a driver's metadata. This is only used to test that the
/// isolateddevmgr sends test metadata correctly to drivers.
closed protocol Metadata {
    /// Recieves the metadata that the driver has been given.
    strict GetMetadata(struct {
        type uint32;
    }) -> (struct {
        data vector<uint8>:METADATA_MAX_SIZE;
    });
};
