#ifndef __IOKIT_IO_USB_MSC_DEBUGGING__
#define __IOKIT_IO_USB_MSC_DEBUGGING__
#if KERNEL
#include <IOKit/IOLib.h>
#else
#include <IOKit/IOKitLib.h>
#endif
#ifndef DEBUG_ASSERT_COMPONENT_NAME_STRING
#define DEBUG_ASSERT_COMPONENT_NAME_STRING "USB_MSC"
#endif
#if KERNEL
extern void
IOSCSIArchitectureModelFamilyDebugAssert ( const char * componentNameString,
const char * assertionString,
const char * exceptionLabelString,
const char * errorString,
const char * fileName,
long lineNumber,
int errorCode );
#define DEBUG_ASSERT_MESSAGE( componentNameString, \
assertionString, \
exceptionLabelString, \
errorString, \
fileName, \
lineNumber, \
error ) \
IOSCSIArchitectureModelFamilyDebugAssert( componentNameString, \
assertionString, \
exceptionLabelString, \
errorString, \
fileName, \
lineNumber, \
error )
#endif
#include </usr/include/AssertMacros.h>
#define require_success( errorCode, exceptionLabel ) \
require( kIOReturnSuccess == (errorCode), exceptionLabel )
#define require_success_action( errorCode, exceptionLabel, action ) \
require_action( kIOReturnSuccess == (errorCode), exceptionLabel, action )
#define require_success_quiet( errorCode, exceptionLabel ) \
require_quiet( kIOReturnSuccess == (errorCode), exceptionLabel )
#define require_success_action_quiet( errorCode, exceptionLabel, action ) \
require_action_quiet( kIOReturnSuccess == (errorCode), exceptionLabel, action )
#define require_success_string( errorCode, exceptionLabel, message ) \
require_string( kIOReturnSuccess == (errorCode), exceptionLabel, message )
#define require_success_action_string( errorCode, exceptionLabel, action, message ) \
require_action_string( kIOReturnSuccess == (errorCode), exceptionLabel, action, message )
#define require_nonzero( obj, exceptionLabel ) \
require( ( 0 != obj ), exceptionLabel )
#define require_nonzero_action( obj, exceptionLabel, action ) \
require_action( ( 0 != obj ), exceptionLabel, action )
#define require_nonzero_quiet( obj, exceptionLabel ) \
require_quiet( ( 0 != obj ), exceptionLabel )
#define require_nonzero_action_quiet( obj, exceptionLabel, action ) \
require_action_quiet( ( 0 != obj ), exceptionLabel, action )
#define require_nonzero_string( obj, exceptionLabel, message ) \
require_string( ( 0 != obj ), exceptionLabel, message )
#define require_nonzero_action_string( obj, exceptionLabel, action, message ) \
require_action_string( ( 0 != obj ), exceptionLabel, action, message )
#define KPRINTF(LEVEL, FMT, ARGS...) kprintf(FMT "\n", ## ARGS)
#if (USB_MASS_STORAGE_DEBUG == 2)
#define PANIC_NOW(x) panic x
#define STATUS_LOG(x) KPRINTF x
#elif (USB_MASS_STORAGE_DEBUG == 1)
#define PANIC_NOW(x) panic x
#define DEBUG_LEVEL 1
#include <IOKit/usb/IOUSBLog.h>
#define STATUS_LOG(x) USBLog x
#else
#define STATUS_LOG(x)
#define PANIC_NOW(x)
#endif
#endif