aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/bcm/Debug.c
blob: b86d8456cf7de9334ec1f3c472098773ac1c3613 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "headers.h"

void bcm_print_buffer(UINT debug_level, const char *function_name,
		      const char *file_name, int line_number,
		      const unsigned char *buffer, int bufferlen,
		      BASE_TYPE base)
{
	int i;
	static const char * const buff_dump_base[] = {
		"DEC", "HEX", "OCT", "BIN"
	};

	if(debug_level < BCM_SCREAM)
		return;

	printk("\n" KERN_DEBUG "%s:%s:%d:Buffer dump of size 0x%x in the %s:\n",
	       file_name, function_name, line_number, bufferlen, buff_dump_base[1]);

	for(i = 0; i < bufferlen;i++) {
		if(i && !(i%16) )
			printk("\n");
		switch(base) {
		case BCM_BASE_TYPE_DEC:
			printk("%03d ", buffer[i]);
			break;
		case BCM_BASE_TYPE_OCT:
			printk("%0x03o ", buffer[i]);
			break;
		case BCM_BASE_TYPE_BIN:
			printk("%02x ", buffer[i]);
			break;
		case BCM_BASE_TYPE_HEX:
		default:
			printk("%02X ", buffer[i]);
			break;
		}
		printk("\n");
	}
}