I'm trying to iterate through a USB device but the iterator is always empty or contains only the matched interface:
Single interface in Iterator
This happens when my driver matches against the interface. Because I need to use 2 interfaces (control and cdc), I try to open the IOUSBHostDevice (copied from the interface) and iterate through the rest, but I only get the interface my dext matched with.
Empty Iterator
I decided to match against USB communication devices, thinking things would be different. However, this time the interface iterator is completely empty (provider is IOUSBHostDevice).
Here's a snippet of my code before iterating with IOUSBHostDevice->CopyInterface():
// teardown the configured interfaces.
result = device->SetConfiguration(ivars->Config, true);
__Require_noErr_Action(result, _failure_Out,
ELOG("IOUSBHostDevice::SetConfiguration failed 0x%x", result));
// open usb device
result = device->Open(this, 0, 0);
__Require_noErr_Action(result, _failure_Out,
ELOG("Failed to open IOUSBHostDevice"));
// Get interface iterator
result = device->CreateInterfaceIterator(&iterRef);
__Require_noErr_Action(result, _failure_Out,
ELOG("IOUSBHostDevice::CreateInterfaceIterator failed failed: 0x%x", result));
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
As seen in this - https://github.com/GoogleContainerTools/kpt/issues/962 github issue, Xcode does not seem to create a symlink for MacOSX11.1.sdk, so Homebrew fails to install anything. I'm sure Homebrew isn't be the only program failing to build code because of this error.
The solution would be to reinstall the Command-line Tools or create these symlinks yourself if reinstalling doesn't fix it:
ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk
ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk
Note: This is only a temporary fix to get builds affected by this issue working again, however it may break the SDK in some unknown ways.