#ifndef _IOKIT_IOUSBNUB_H
#define _IOKIT_IOUSBNUB_H
#include <IOKit/IOService.h>
#include <libkern/c++/OSData.h>
#include <IOKit/IOMemoryDescriptor.h>
#include <IOKit/usb/USB.h>
class IOUSBController;
class IOUSBPipe;
class IOUSBNub : public IOService
{
OSDeclareDefaultStructors(IOUSBNub)
public:
virtual void joinPMtree ( IOService * driver );
virtual const char * stringFromReturn( IOReturn rtn );
virtual bool USBCompareProperty(OSDictionary * matching, const char * key );
bool IsWildCardMatch( OSDictionary * matching, const char * key );
bool USBComparePropertyWithMask( OSDictionary *matching, const char *key, const char * maskKey );
};
#ifdef __cplusplus
extern "C" {
#endif
void printDescriptor(const IOUSBDescriptorHeader *desc);
void printDeviceDescriptor(const IOUSBDeviceDescriptor *desc);
void printConfigDescriptor(const IOUSBConfigurationDescriptor *cd);
void printEndpointDescriptor(const IOUSBEndpointDescriptor *ed);
void printInterfaceDescriptor(const IOUSBInterfaceDescriptor *id);
#ifdef __cplusplus
}
#endif
#endif