···88#include "io_iterator.h"
99#include <CoreFoundation/CFDictionary.h>
10101111+extern "C" const void* kIOMasterPortDefault;
1212+1113// This seems to give all children (e.g. all USB devices)
1214extern "C" CFMutableDictionaryRef IOServiceMatching(const char* service);
1315// This seems to give the root device (e.g. the USB driver)
···1517extern "C" CFMutableDictionaryRef IOBSDNameMatching(void* iokitPort, unsigned int options, const char* bsdName);
16181719extern "C" int IOServiceGetMatchingServices(void* port, CFDictionaryRef rules, io_iterator_t* iter);
1818-extern "C" int IOIteratorIsValid(io_iterator_t iter);
1919-extern "C" io_object_t IOIteratorNext(io_iterator_t iter);
2020-extern "C" int IOObjectRelease(io_object_t obj);
21202121+extern "C" int IORegistryEntryGetParentEntry(io_object_t obj, void* planeName /* TODO */, io_object_t* parent);
2222+extern "C" CFTypeRef IORegistryEntryCreateCFProperty(io_object_t obj, CFStringRef key, CFAllocatorRef allocator, int opts);
2223extern "C" int IORegistryEntryCreateCFProperties(io_object_t obj, CFMutableDictionaryRef* props, CFAllocatorRef allocator, int opts);
23242425#endif