| // 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; |
| }); |
| }; |