#import <Cocoa/Cocoa.h>
#import <Foundation/Foundation.h>
#import "Node.h"
#import <stdio.h>
#import <unistd.h> // (getopt, ...)
#import <stdlib.h>
#import <IOKit/IOKitLib.h>
#import "NodeOutput.h"
struct Options
{
char * class; UInt32 flags; char * name; char * plane; UInt32 width; };
typedef struct Options Options;
struct context
{
UInt32 depth;
UInt64 stackOfBits;
};
@interface IORegistryClass : NodeOutput {
IBOutlet id ov;
}
+ (Node *)ioregRootNode;
+ (void)doIOReg:(int)plane; + (kern_return_t)DumpIOUSBPlane:(mach_port_t)iokitPort options:(Options)options;
+ (void)scan:(io_registry_entry_t)service serviceHasMoreSiblings:(Boolean)serviceHasMoreSiblings serviceDepth:(UInt32)serviceDepth stackOfBits:(UInt64)stackOfBits options:(Options)options;
+ (void)show:(io_registry_entry_t)service serviceDepth:(UInt32)serviceDepth stackOfBits:(UInt64)stackOfBits options:(Options)options;
+ (kern_return_t)ScanUSBDevices:(io_iterator_t)intfIterator options:(Options)options;
kern_return_t FindUSBPCIDevice(mach_port_t masterPort, io_iterator_t *matchingServices);
+ (void)indent:(Boolean)isNode depth:(UInt32)depth stackOfBits:(UInt64)stackOfBits;
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item;
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item;
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item;
@end