#ifndef __APPLEUSBCDCECM__
#define __APPLEUSBCDCECM__
#include "AppleUSBCDCCommon.h"
#define LDEBUG 0 // for debugging
#define USE_ELG 0 // to Event LoG (via kprintf and Firewire) - LDEBUG must also be set
#define USE_IOL 0 // to IOLog - LDEBUG must also be set
#define LOG_DATA 0 // logs data to the appropriate log - LDEBUG must also be set
#define DUMPALL 0 // Dumps all the data to the log - LOG_DATA must also be set
#define Sleep_Time 20
#define Log IOLog
#if USE_ELG
#undef Log
#define Log kprintf
#endif
#if LDEBUG
#if USE_ELG
#define XTRACE(ID,A,B,STRING) {Log("%8p %8x %8x " DEBUG_NAME ": " STRING "\n",(void *)(ID),(unsigned int)(A),(unsigned int)(B));}
#define XTRACEP(ID,A,B,STRING) {Log("%8p %8p %8p " DEBUG_NAME ": " STRING "\n",(void *)(ID),(void *)(A),(void *)(B));}
#else
#if USE_IOL
#define XTRACE(ID,A,B,STRING) {Log("%8p %8x %8x " DEBUG_NAME ": " STRING "\n",(void *)(ID),(unsigned int)(A),(unsigned int)(B)); IOSleep(Sleep_Time);}
#define XTRACEP(ID,A,B,STRING) {Log("%8p %8p %8p " DEBUG_NAME ": " STRING "\n",(void *)(ID),(void *)(A),(void *)(B)); IOSleep(Sleep_Time);}
#else
#define XTRACE(id, x, y, msg)
#define XTRACEP(id, x, y, msg)
#endif
#endif
#if LOG_DATA
#define LogData(D, C, b) USBLogData((UInt8)D, (SInt32)C, (char *)b)
#define meLogData(D, C, b) me->USBLogData((UInt8)D, (SInt32)C, (char *)b)
#define DumpData(b, C) dumpData(char *)b, (SInt32)C)
#define meDumpData(b, C) me->dumpData(char *)b, (SInt32)C)
#else
#define LogData(D, C, b)
#define meLogData(D, C, b)
#define DumpData(b, C)
#define meDumpData(b, C)
#endif
#else
#define XTRACE(id, x, y, msg)
#define XTRACEP(id, x, y, msg)
#define LogData(D, C, b)
#define meLogData(D, C, b)
#define DumpData(b, C)
#define meDumpData(b, C)
#undef USE_ELG
#undef USE_IOL
#undef LOG_DATA
#endif
#define ALERT(A,B,STRING) Log("%8x %8x " DEBUG_NAME ": " STRING "\n", (unsigned int)(A), (unsigned int)(B))
enum
{
kDataIn = 0,
kDataOut,
kDataOther,
kDataNone
};
enum
{
kResetNormal = 0,
kResetNeeded,
kResetDone
};
enum
{
kLinkDown = 0,
kLinkUp
};
#endif