jump label: Introduce static_branch() interface
[deliverable/linux.git] / include / linux / dynamic_debug.h
index 1c70028f81f902321ea9e99ccff1619e48911f30..e747ecd48e1c043a87549cb2cdab62e04e1edbf5 100644 (file)
@@ -1,8 +1,6 @@
 #ifndef _DYNAMIC_DEBUG_H
 #define _DYNAMIC_DEBUG_H
 
-#include <linux/jump_label.h>
-
 /* dynamic_printk_enabled, and dynamic_printk_enabled2 are bitmasks in which
  * bit n is set to 1 if any modname hashes into the bucket n, 0 otherwise. They
  * use independent hash functions, to reduce the chance of false positives.
@@ -31,6 +29,10 @@ struct _ddebug {
         * writes commands to <debugfs>/dynamic_debug/control
         */
 #define _DPRINTK_FLAGS_PRINT   (1<<0)  /* printk() a message using the format */
+#define _DPRINTK_FLAGS_INCL_MODNAME    (1<<1)
+#define _DPRINTK_FLAGS_INCL_FUNCNAME   (1<<2)
+#define _DPRINTK_FLAGS_INCL_LINENO     (1<<3)
+#define _DPRINTK_FLAGS_INCL_TID                (1<<4)
 #define _DPRINTK_FLAGS_DEFAULT 0
        unsigned int flags:8;
        char enabled;
@@ -42,6 +44,8 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n,
 
 #if defined(CONFIG_DYNAMIC_DEBUG)
 extern int ddebug_remove_module(const char *mod_name);
+extern int __dynamic_pr_debug(struct _ddebug *descriptor, const char *fmt, ...)
+       __attribute__ ((format (printf, 2, 3)));
 
 #define dynamic_pr_debug(fmt, ...) do {                                        \
        static struct _ddebug descriptor                                \
@@ -50,7 +54,7 @@ extern int ddebug_remove_module(const char *mod_name);
        { KBUILD_MODNAME, __func__, __FILE__, fmt, __LINE__,            \
                _DPRINTK_FLAGS_DEFAULT };                               \
        if (unlikely(descriptor.enabled))                               \
-               printk(KERN_DEBUG pr_fmt(fmt),  ##__VA_ARGS__);         \
+               __dynamic_pr_debug(&descriptor, pr_fmt(fmt), ##__VA_ARGS__); \
        } while (0)
 
 
This page took 0.025507 seconds and 5 git commands to generate.