blob: 8a7ea44bd6db50d0418e1238e5476a93e5776afd [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")
protocol UsbComposite {
/// Returns the length of the additional descriptor list.
GetAdditionalDescriptorLength() -> (struct {
length uint64;
});
/// Returns the USB descriptors following the interface's existing descriptors.
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.
ClaimInterface(struct {
desc fuchsia.hardware.usb.descriptor.UsbInterfaceDescriptor;
length uint32;
}) -> (struct {
s zx.status;
});
};