mirror of
git://sigrok.org/libserialport
synced 2023-08-10 21:13:24 +03:00
macosx: Fix port listing on ElCapitan.
On OSX 10.11 (ElCapitan) the query for IOProviderClass fails to list ACM devices as USB. Add a fallback query using IOClass to correctly recognize these devices. The fix has no effect on previous OSX versions (tested on Mavericks)
This commit is contained in:
committed by
Martin Ling
parent
8062087ab3
commit
aacba60dca
11
macosx.c
11
macosx.c
@@ -63,6 +63,17 @@ SP_PRIV enum sp_return get_port_details(struct sp_port *port)
|
|||||||
DEBUG_FMT("Found port %s", path);
|
DEBUG_FMT("Found port %s", path);
|
||||||
|
|
||||||
IORegistryEntryGetParentEntry(ioport, kIOServicePlane, &ioparent);
|
IORegistryEntryGetParentEntry(ioport, kIOServicePlane, &ioparent);
|
||||||
|
if ((cf_property=IORegistryEntrySearchCFProperty(ioparent,kIOServicePlane,
|
||||||
|
CFSTR("IOClass"), kCFAllocatorDefault,
|
||||||
|
kIORegistryIterateRecursively | kIORegistryIterateParents))) {
|
||||||
|
if (CFStringGetCString(cf_property, class, sizeof(class),
|
||||||
|
kCFStringEncodingASCII) &&
|
||||||
|
strstr(class, "USB")) {
|
||||||
|
DEBUG("Found USB class device");
|
||||||
|
port->transport = SP_TRANSPORT_USB;
|
||||||
|
}
|
||||||
|
CFRelease(cf_property);
|
||||||
|
}
|
||||||
if ((cf_property=IORegistryEntrySearchCFProperty(ioparent,kIOServicePlane,
|
if ((cf_property=IORegistryEntrySearchCFProperty(ioparent,kIOServicePlane,
|
||||||
CFSTR("IOProviderClass"), kCFAllocatorDefault,
|
CFSTR("IOProviderClass"), kCFAllocatorDefault,
|
||||||
kIORegistryIterateRecursively | kIORegistryIterateParents))) {
|
kIORegistryIterateRecursively | kIORegistryIterateParents))) {
|
||||||
|
|||||||
Reference in New Issue
Block a user