b86d8456cf7de9334ec1f3c472098773ac1c3613
[pandora-kernel.git] / drivers / staging / bcm / Debug.c
1 #include "headers.h"
2
3 void bcm_print_buffer(UINT debug_level, const char *function_name,
4                       const char *file_name, int line_number,
5                       const unsigned char *buffer, int bufferlen,
6                       BASE_TYPE base)
7 {
8         int i;
9         static const char * const buff_dump_base[] = {
10                 "DEC", "HEX", "OCT", "BIN"
11         };
12
13         if(debug_level < BCM_SCREAM)
14                 return;
15
16         printk("\n" KERN_DEBUG "%s:%s:%d:Buffer dump of size 0x%x in the %s:\n",
17                file_name, function_name, line_number, bufferlen, buff_dump_base[1]);
18
19         for(i = 0; i < bufferlen;i++) {
20                 if(i && !(i%16) )
21                         printk("\n");
22                 switch(base) {
23                 case BCM_BASE_TYPE_DEC:
24                         printk("%03d ", buffer[i]);
25                         break;
26                 case BCM_BASE_TYPE_OCT:
27                         printk("%0x03o ", buffer[i]);
28                         break;
29                 case BCM_BASE_TYPE_BIN:
30                         printk("%02x ", buffer[i]);
31                         break;
32                 case BCM_BASE_TYPE_HEX:
33                 default:
34                         printk("%02X ", buffer[i]);
35                         break;
36                 }
37                 printk("\n");
38         }
39 }