2005-04-16 15:20:36 -07:00
/*
* Common debugging macros for use with the hisax driver
*
* Author Frode Isaksen
* Copyright 2001 by Frode Isaksen < fisaksen @ bewan . com >
* 2001 by Kai Germaschewski < kai . germaschewski @ gmx . de >
*
* This software may be used and distributed according to the terms
* of the GNU General Public License , incorporated herein by reference .
*
* How to use :
*
* Before including this file , you need to
* # define __debug_variable my_debug
* where my_debug is a variable in your code which
* determines the debug bitmask .
*
* If CONFIG_HISAX_DEBUG is not set , all macros evaluate to nothing
*
*/
# ifndef __HISAX_DEBUG_H__
# define __HISAX_DEBUG_H__
# ifdef CONFIG_HISAX_DEBUG
# define DBG(level, format, arg...) do { \
if ( level & __debug_variable ) \
2008-04-28 02:14:40 -07:00
printk ( KERN_DEBUG " %s: " format " \n " , __func__ , # # arg ) ; \
2005-04-16 15:20:36 -07:00
} while ( 0 )
# define DBG_PACKET(level,data,count) \
2008-04-28 02:14:40 -07:00
if ( level & __debug_variable ) dump_packet ( __func__ , data , count )
2005-04-16 15:20:36 -07:00
# define DBG_SKB(level,skb) \
2008-04-28 02:14:40 -07:00
if ( ( level & __debug_variable ) & & skb ) dump_packet ( __func__ , skb - > data , skb - > len )
2005-04-16 15:20:36 -07:00
static void __attribute__ ( ( unused ) )
dump_packet ( const char * name , const u_char * data , int pkt_len )
{
# define DUMP_HDR_SIZE 20
# define DUMP_TLR_SIZE 8
if ( pkt_len ) {
int i , len1 , len2 ;
printk ( KERN_DEBUG " %s: length=%d,data= " , name , pkt_len ) ;
if ( pkt_len > DUMP_HDR_SIZE + DUMP_TLR_SIZE ) {
len1 = DUMP_HDR_SIZE ;
len2 = DUMP_TLR_SIZE ;
} else {
len1 = pkt_len > DUMP_HDR_SIZE ? DUMP_HDR_SIZE : pkt_len ;
len2 = 0 ;
}
for ( i = 0 ; i < len1 ; + + i ) {
printk ( " %.2x " , data [ i ] ) ;
}
if ( len2 ) {
printk ( " .. " ) ;
for ( i = pkt_len - DUMP_TLR_SIZE ; i < pkt_len ; + + i ) {
printk ( " %.2x " , data [ i ] ) ;
}
}
printk ( " \n " ) ;
}
# undef DUMP_HDR_SIZE
# undef DUMP_TLR_SIZE
}
# else
# define DBG(level, format, arg...) do {} while (0)
# define DBG_PACKET(level,data,count) do {} while (0)
# define DBG_SKB(level,skb) do {} while (0)
# endif
# endif