summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2010-03-20 19:56:34 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2010-03-20 19:56:34 +0000
commit360a9f542dc2eb7f07037b0a2ee988408bb665a8 (patch)
treee1ef03aa1d84ca098a271241452ae529c30670b2
parent2745eff6ce058f8f367b013861b0e43298f7a98a (diff)
printk wrapper macros - first shot
Add a number of printk-like macros to print messages for span and channel. I found them useful in the sysfs branch. The _dbg ones use the magical variable debug, and hence require the code to acknowledge that explicitly by defining DAHDI_PRINK_MACROS_USE_debug explicitly. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8354 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--include/dahdi/kernel.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h
index 0e98819..19378e4 100644
--- a/include/dahdi/kernel.h
+++ b/include/dahdi/kernel.h
@@ -1231,4 +1231,47 @@ wait_for_completion_timeout(struct completion *x, unsigned long timeout)
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
#endif
+/* prink-wrapper macros */
+#define DAHDI_PRINTK(level, category, fmt, ...) \
+ printk(KERN_ ## level "%s%s-%s: " fmt, #level, category, \
+ THIS_MODULE->name, ## __VA_ARGS__)
+#define span_printk(level, category, span, fmt, ...) \
+ printk(KERN_ ## level "%s%s-%s: span-%d: " fmt, #level, \
+ category, THIS_MODULE->name, (span)->spanno, ## __VA_ARGS__)
+#define chan_printk(level, category, chan, fmt, ...) \
+ printk(KERN_ ## level "%s%s-%s: %d: " fmt, #level, \
+ category, THIS_MODULE->name, (chan)->channo, ## __VA_ARGS__)
+#define dahdi_err(fmt, ...) DAHDI_PRINTK(ERR, "", fmt, ## __VA_ARGS__)
+#define span_info(span, fmt, ...) span_printk(INFO, "", span, fmt, \
+ ## __VA_ARGS__)
+#define span_err(span, fmt, ...) span_printk(ERR, "", span, fmt, \
+ ## __VA_ARGS__)
+#define chan_err(chan, fmt, ...) chan_printk(ERR, "", chan, fmt, \
+ ## __VA_ARGS__)
+
+/* The dbg_* ones use a magical variable 'debug' and the user should be
+ * aware of that.
+*/
+#ifdef DAHDI_PRINK_MACROS_USE_debug
+#ifndef BIT /* added in 2.6.24 */
+#define BIT(i) (1UL << (i))
+#endif
+/* Standard debug bit values. Any module may define others. They must
+ * be of the form DAHDI_DBG_*
+ */
+#define DAHDI_DBG_GENERAL BIT(0)
+#define DAHDI_DBG_DEVICES BIT(7) /* instantiation/destruction etc. */
+#define dahdi_dbg(bits, fmt, ...) \
+ ((void)((debug & (DAHDI_DBG_ ## bits)) && DAHDI_PRINTK(DEBUG, \
+ "-" #bits, "%s: " fmt, __func__, ## __VA_ARGS__)))
+#define span_dbg(bits, span, fmt, ...) \
+ ((void)((debug & (DAHDI_DBG_ ## bits)) && \
+ span_printk(DEBUG, "-" #bits, span, "%s: " \
+ fmt, __func__, ## __VA_ARGS__)))
+#define chan_dbg(bits, chan, fmt, ...) \
+ ((void)((debug & (DAHDI_DBG_ ## bits)) && \
+ chan_printk(DEBUG, "-" #bits, chan, \
+ "%s: " fmt, __func__, ## __VA_ARGS__)))
+#endif /* DAHDI_PRINK_MACROS_USE_debug */
+
#endif /* _DAHDI_KERNEL_H */