summaryrefslogtreecommitdiffstats
path: root/kernel/include/linux/ceph/ceph_debug.h
blob: aa2e19182d990eedda70de69bf638db5856811d1 (plain)
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
#ifndef _FS_CEPH_DEBUG_H
#define _FS_CEPH_DEBUG_H

#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#ifdef CONFIG_CEPH_LIB_PRETTYDEBUG

/*
 * wrap pr_debug to include a filename:lineno prefix on each line.
 * this incurs some overhead (kernel size and execution time) due to
 * the extra function call at each call site.
 */

# if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
extern const char *ceph_file_part(const char *s, int len);
#  define dout(fmt, ...)						\
	pr_debug("%.*s %12.12s:%-4d : " fmt,				\
		 8 - (int)sizeof(KBUILD_MODNAME), "    ",		\
		 ceph_file_part(__FILE__, sizeof(__FILE__)),		\
		 __LINE__, ##__VA_ARGS__)
# else
/* faux printk call just to see any compiler warnings. */
#  define dout(fmt, ...)	do {				\
		if (0)						\
			printk(KERN_DEBUG fmt, ##__VA_ARGS__);	\
	} while (0)
# endif

#else

/*
 * or, just wrap pr_debug
 */
# define dout(fmt, ...)	pr_debug(" " fmt, ##__VA_ARGS__)

#endif

#endif
pan>; int err; test_init(argc, argv); if (argc != 3) CONFIG("Usage: %s <so file> <dtb file>", argv[0]); sohandle = dlopen(argv[1], RTLD_NOW); if (!sohandle) FAIL("Couldn't dlopen() %s", argv[1]); fdt = dlsym(sohandle, "dt_blob_start"); if (!fdt) FAIL("Couldn't locate \"dt_blob_start\" symbol in %s", argv[1]); err = fdt_check_header(fdt); if (err != 0) FAIL("%s contains invalid tree: %s", argv[1], fdt_strerror(err)); save_blob(argv[2], fdt); PASS(); }