blob: e663b45747aff6fce05e2561c45837842feb70e3 [file] [log] [blame]
/*******************************************************************************
This software file (the "File") is distributed by Marvell International Ltd.
or its affiliate(s) under the terms of the GNU General Public License Version 2,
June 1991 (the "License"). You may use, redistribute and/or modify this File
in accordance with the terms and conditions of the License, a copy of which
is available along with the File in the license.txt file or by writing to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED. The GPL License provides additional details about this warranty
disclaimer.
(C) Copyright 2004 - 2007 Marvell Semiconductor Israel Ltd. All Rights Reserved.
(C) Copyright 1999 - 2004 Chipidea Microelectronica, S.A. All Rights Reserved.
*******************************************************************************/
#ifndef __mvUsbDebug_h__
#define __mvUsbDebug_h__
#include "mvUsbTypes.h"
#define MV_USB_RT_DEBUG
/************************************************************
The following array is used to make a run time trace route
inside the USB stack.
*************************************************************/
#define ARC_DEBUG_FLAG_ANY 0x00000000
#define ARC_DEBUG_FLAG_TRACE 0x00000001
#define ARC_DEBUG_FLAG_CTRL 0x00000002
#define ARC_DEBUG_FLAG_RX 0x00000004
#define ARC_DEBUG_FLAG_TX 0x00000008
#define ARC_DEBUG_FLAG_STALL 0x00000010
#define ARC_DEBUG_FLAG_STATUS 0x00000020
#define ARC_DEBUG_FLAG_TRANSFER 0x00000040
#define ARC_DEBUG_FLAG_INIT 0x00000080
#define ARC_DEBUG_FLAG_ISR 0x00000100
#define ARC_DEBUG_FLAG_ERROR 0x00000200
#define ARC_DEBUG_FLAG_ADDR 0x00000400
#define ARC_DEBUG_FLAG_DUMP 0x00000800
#define ARC_DEBUG_FLAG_SETUP 0x00001000
#define ARC_DEBUG_FLAG_CLASS 0x00002000
#define ARC_DEBUG_FLAG_SPEED 0x00004000
#define ARC_DEBUG_FLAG_RESET 0x00008000
#define ARC_DEBUG_FLAG_SUSPEND 0x00010000
#define ARC_DEBUG_FLAG_RESUME 0x00020000
#define ARC_DEBUG_FLAG_EP0 0x00040000
#define ARC_DEBUG_FLAG_EP1 0x00080000
#define ARC_DEBUG_FLAG_STATS 0x00100000
#define ARC_DEBUG_FLAG_ALL 0xffffffff
extern uint_32 usbDebugFlags;
#ifdef MV_USB_RT_DEBUG
# define ARC_DEBUG_CODE(flags, code) \
if( (usbDebugFlags & (flags)) == (flags) ) \
code
#else
# define ARC_DEBUG_CODE(flags, code)
#endif
#if defined(MV_USB_TRACE_LOG)
#define TRACE_ARRAY_SIZE 400
#define MAX_STRING_SIZE 132
extern uint_16 DEBUG_TRACE_ARRAY_COUNTER;
extern char DEBUG_TRACE_ARRAY[TRACE_ARRAY_SIZE][MAX_STRING_SIZE];
#define ARC_DEBUG_TRACE(flags, format, x...) \
{ \
if( (usbDebugFlags & (flags)) == (flags)) \
{ \
USB_sprintf(DEBUG_TRACE_ARRAY[DEBUG_TRACE_ARRAY_COUNTER], format, ##x); \
DEBUG_TRACE_ARRAY_COUNTER++; \
if(DEBUG_TRACE_ARRAY_COUNTER >= TRACE_ARRAY_SIZE) \
{DEBUG_TRACE_ARRAY_COUNTER = 0;} \
} \
}
#elif defined(MV_USB_TRACE_PRINT)
# define ARC_DEBUG_TRACE(flags, format, x...) \
if((usbDebugFlags & (flags)) == (flags)) \
USB_printf(format, ##x)
/*if trace switch is not enabled define debug log trace to empty*/
#else
# define ARC_DEBUG_TRACE(flags, fromat, x...)
#endif
/************************************************************
The following are global data structures that can be used
to copy data from stack on run time. This structure can
be analyzed at run time to see the state of various other
data structures in the memory.
*************************************************************/
#endif /* __mvUsbDebug_h__ */
/* EOF */