#include <IOKit/usb/IOUSBHostPipe.h>

IOKit/usb/IOUSBHostPipe.h Kernel.framework

@header IOUSBHostPipe.h @brief IOUSBHostPipe is an object representing a USB endpoint. @discussion <h3>IOUSBPipe Migration</h3> IOUSBHostPipe serves as a replacement for IOUSBPipe. Clients that previously used an IOUSBPipe can use the following guide to convert to IOUSBHostPipe. <code>virtual IOReturn IOUSBPipe::Abort(IOOptionBits, IOReturn);</code><br> Replacement: <code>abort(...);</code> <code>virtual IOReturn IOUSBPipe::Reset();<br> virtual IOReturn IOUSBPipe::ClearStall();</code><br> Replacement: <code>clearStall(false)</code> <code>virtual IOReturn IOUSBPipe::ClearPipeStall(bool);</code><br> Replacement: <code>clearStall(...);</code> <code>virtual IOReturn IOUSBPipe::Read(IOMemoryDescriptor*, IOUSBCompletion*, UInt32*);<br> virtual IOReturn IOUSBPipe::Read(IOMemoryDescriptor*, UInt32, UInt32, IOUSBCompletion*, UInt32*);<br> virtual IOReturn IOUSBPipe::Read(IOMemoryDescriptor*, UInt32, UInt32, IOByteCount, IOUSBCompletion*, UInt32*);<br> virtual IOReturn IOUSBPipe::Read(IOMemoryDescriptor*, UInt32, UInt32, IOByteCount, IOUSBCompletionWithTimeStamp*, UInt32*);<br> virtual IOReturn IOUSBPipe::Write(IOMemoryDescriptor*, UInt32, UInt32, IOUSBCompletion*);<br> virtual IOReturn IOUSBPipe::Write(IOMemoryDescriptor*, UInt32, UInt32, IOByteCount, IOUSBCompletion*);<br> virtual IOReturn IOUSBPipe::Write(IOMemoryDescriptor*, IOUSBCompletion*);<br> virtual IOReturn IOUSBPipe::Read(IOMemoryDescriptor*, UInt64, UInt32, IOUSBIsocFrame*, IOUSBIsocCompletion*);<br> virtual IOReturn IOUSBPipe::Read(IOMemoryDescriptor*, UInt64, UInt32, IOUSBLowLatencyIsocFrame*, IOUSBLowLatencyIsocCompletion*, UInt32);<br> virtual IOReturn IOUSBPipe::Write(IOMemoryDescriptor*, UInt64, UInt32, IOUSBIsocFrame*, IOUSBIsocCompletion*);<br> virtual IOReturn IOUSBPipe::Write(IOMemoryDescriptor*, UInt64, UInt32, IOUSBLowLatencyIsocFrame*, IOUSBLowLatencyIsocCompletion*, UInt32);</code><br> Replacement: <code>io(...);</code> <code>virtual IOReturn IOUSBPipe::ControlRequest(IOUSBDevRequestDesc*, IOUSBCompletion*, UInt32, UInt32);<br> virtual IOReturn IOUSBPipe::ControlRequest(IOUSBDevRequest*, IOUSBCompletion*);<br> virtual IOReturn IOUSBPipe::ControlRequest(IOUSBDevRequestDesc*, UInt32, UInt32, IOUSBCompletion*);<br> virtual IOReturn IOUSBPipe::ControlRequest(IOUSBDevRequest*, UInt32, UInt32, IOUSBCompletion*);</code><br> Replacement: <code>controlRequest(...);</code> <code>virtual const IOUSBController::Endpoint* IOUSBPipe::GetEndpoint();<br> virtual UInt8 IOUSBPipe::GetDirection();<br> virtual UInt8 IOUSBPipe::GetType();<br> virtual UInt8 IOUSBPipe::GetEndpointNumber();<br> virtual UInt16 IOUSBPipe::GetMaxPacketSize();<br> virtual UInt8 IOUSBPipe::GetInterval();</code><br> Replacement: Use <code>getEndpointDescriptor()</code>, <code>getSuperSpeedEndpointCompanionDescriptor()</code>, and <code>getDescriptors()</code> with <code>StandardUSB::getEndpoint*</code> methods to retrieve endpoint characteristics <code>virtual tUSBHostDeviceAddress IOUSBPipe::GetAddress();</code><br> Replacement: <code>getDeviceAddress();</code> <code>virtual UInt8 IOUSBPipe::GetSpeed();</code><br> Replacement: <code>getSpeed();</code> <code>virtual IOReturn IOUSBPipe::GetPipeStatus();</code><br> Replacement: If an endpoint is halted, new IO requests will be rejected with an appropriate error until the condition is cleared. <code>virtual IOReturn IOUSBPipe::SetPipePolicy(UInt16 maxPacketSize, UInt8 maxInterval);</code><br> Replacement: <code>adjustPipe(...);</code> <h3>IOUSBPipeV2 Migration</h3> IOUSBPipeV2 implemented interfaces for USB 3.0 streaming endpoint support. IOUSBHostPipe provides interfaces to enable or disable streaming, and IOUSBHostStream provides interfaces to perform streaming IO. <code>virtual IOReturn IOUSBPipeV2::CreateStreams(UInt32);</code><br> Replacement: <code>enableStreams();</code> and <code>disableStreams();</code> <code>virtual IOReturn IOUSBPipeV2::Read(UInt32, IOMemoryDescriptor*, UInt32, UInt32, IOByteCount, IOUSBCompletion*, IOByteCount*);<br> virtual IOReturn IOUSBPipeV2::Write(UInt32, IOMemoryDescriptor*, UInt32, UInt32, IOByteCount, IOUSBCompletion*);<br> virtual IOReturn IOUSBPipeV2::Abort(UInt32, IOOptionBits, IOReturn);</code><br> Replacement: Use <code>copyStream</code> and IOUSBHostStream interfaces to perform IO to a streaming endpoint. <code>virtual UInt32 IOUSBPipeV2::GetConfiguredStreams();</code><br> Replacement: none <code>virtual UInt32 IOUSBPipeV2::SupportsStreams();</code><br> Replacement: <code>StandardUSB::getEndpointMaxStreams(...);</code> <code>virtual const IOUSBSuperSpeedEndpointCompanionDescriptor* IOUSBPipeV2::GetSuperSpeedEndpointCompanionDescriptor();</code><br> Replacement: <code>getSuperSpeedEndpointCompanionDescriptor(...);</code> <code>virtual UInt8 IOUSBPipeV2::GetMult();</code><br> Replacement: <code>StandardUSB::getEndpointMult(...);</code> Refer to documentation for this method, as it may not return the same values as <code>IOUSBPipeV2::GetMult()</code>. <code>virtual UInt8 IOUSBPipeV2::GetMaxBurst();<br> virtual UInt16 IOUSBPipeV2::GetBytesPerInterval();</code><br> Replacement: <code>StandardUSB::getEndpointBurstSize(...)</code> or <code>StandardUSB::getEndpointBurstSize32(...)</code>. Refer to documentation for the replacement methods, as they may not return the same values as <code>IOUSBPipeV2::GetMaxBurst()</code> or <code>IOUSBPipeV2::GetBytesPerInterval;</code>
2 macros

macroIOUSBHostFamily_IOUSBHostPipe_h

#define IOUSBHostFamily_IOUSBHostPipe_h 

macroTARGET_OS_HAS_USBDRIVERKIT_IOUSBHOSTPIPE

#define TARGET_OS_HAS_USBDRIVERKIT_IOUSBHOSTPIPE __has_include(<USBDriverKit/IOUSBHostPipe.h>)