#import <Cocoa/Cocoa.h>
#import "MainController.h"
#import <Foundation/Foundation.h>
#import <stdio.h>
#import <stdlib.h>
#import <unistd.h>
#import <sys/time.h>
#import <CoreServices/CoreServices.h>
#import <IOKit/IOKitLib.h>
#import <IOKit/usb/IOUSBLib.h>
#import <IOKit/IODataQueueClient.h>
#import <IOKit/IODataQueueShared.h>
#import <mach/mach_port.h>
enum
{
kUSBControllerUserClientOpen = 0,
kUSBControllerUserClientClose,
kUSBControllerUserClientEnableLogger,
kUSBControllerUserClientSetDebuggingLevel,
kUSBControllerUserClientSetDebuggingType,
kUSBControllerUserClientGetDebuggingLevel,
kUSBControllerUserClientGetDebuggingType,
kNumUSBControllerMethods
};
#define _T_STAMP sizeof(struct timeval)
#define _LEVEL sizeof(UInt32)
#define _TAG sizeof(UInt32)
#define _OFFSET (_T_STAMP + _LEVEL + _TAG)
#define _MSG BUFSIZE - (_T_STAMP + _LEVEL + _TAG)
#define BUFSIZE 1024 //entries
#define ENTRYSIZE 1200 //bytes
#define Q_ON 1
#define Q_OFF 0
typedef UInt32 KernelDebuggingOutputType;
enum
{
kKernelDebugOutputIOLogType = 0x00000001,
kKernelDebugOutputKextLoggerType = 0x00000002
};
@interface usbLoggerClass : NSObject
{
IBOutlet id loggingLevelPopup;
IBOutlet id startLoggingButton;
IBOutlet id usbloggerOutput;
IBOutlet id usbloggerDumpToFile;
IBOutlet id filterTextField1;
IBOutlet id filterTextField2;
IBOutlet id usbloggerFilteredOutput;
IBOutlet id filterAndOrSelector;
volatile BOOL loggingThreadIsRunning;
volatile BOOL shouldDisplayOutput;
volatile BOOL loggingLevelChanged;
BOOL shouldDumpToFile;
}
- (IBAction)clearOutput:(id)sender;
- (IBAction)filterOutput:(id)sender;
- (IBAction)startLogging:(id)sender;
- (IBAction)timeStamp:(id)sender;
-(kern_return_t)OpenUSBControllerUserClient;
kern_return_t SetDebuggerOptions( bool disableLogging, bool setLevel, UInt32 level, bool setType, UInt32 type );
-(kern_return_t)DumpUSBLog;
-(void)CleanUp;
+(void)CleanUp; - (void)outputString:(NSString *)string unconditionally:(BOOL)unconditionally;
@end