blob: 0a8e728c9a1666931c54b70e8a49fa0448362493 [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.
@available(added=7)
library fuchsia.hardware.usb.composite;
using fuchsia.hardware.usb.descriptor;
using zx;
@transport("Banjo")
@banjo_layout("ddk-protocol")
closed protocol UsbComposite {
/// Returns the length of the additional descriptor list.
strict GetAdditionalDescriptorLength() -> (struct {
length uint64;
});
/// Returns the USB descriptors following the interface's existing descriptors.
strict GetAdditionalDescriptorList() -> (struct {
s zx.Status;
desc vector<uint8>:MAX;
});
/// Marks the interface as claimed and appends the interface descriptor to the
/// interface's existing descriptors.
strict ClaimInterface(struct {
desc fuchsia.hardware.usb.descriptor.UsbInterfaceDescriptor;
length uint32;
}) -> (struct {
s zx.Status;
});
};