mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 09:36:25 +00:00 
			
		
		
		
	 156f1ed640
			
		
	
	
		156f1ed640
		
	
	
	
	
		
			
			__FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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) \
 | |
| printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
 | |
| } while (0)
 | |
| 
 | |
| #define DBG_PACKET(level,data,count) \
 | |
|   if (level & __debug_variable) dump_packet(__func__,data,count)
 | |
| 
 | |
| #define DBG_SKB(level,skb) \
 | |
|   if ((level & __debug_variable) && skb) dump_packet(__func__,skb->data,skb->len)
 | |
| 
 | |
| 
 | |
| 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
 |