include/net/cfg80211.h: Add wiphy_<level> printk equivalents
authorJoe Perches <joe@perches.com>
Mon, 26 Jul 2010 21:39:57 +0000 (14:39 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 27 Jul 2010 19:14:13 +0000 (15:14 -0400)
Simplify logging messages for wiphy devices

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
include/net/cfg80211.h

index 4d1f19d70798b2a6521eb2fcab142a993751732a..7fe774c2d43dc48a42fc9d566d7a5159759bceaf 100644 (file)
@@ -1416,7 +1416,7 @@ static inline struct device *wiphy_dev(struct wiphy *wiphy)
  *
  * @wiphy: The wiphy whose name to return
  */
-static inline const char *wiphy_name(struct wiphy *wiphy)
+static inline const char *wiphy_name(const struct wiphy *wiphy)
 {
        return dev_name(&wiphy->dev);
 }
@@ -2420,4 +2420,66 @@ void cfg80211_cqm_rssi_notify(struct net_device *dev,
                              enum nl80211_cqm_rssi_threshold_event rssi_event,
                              gfp_t gfp);
 
+#ifdef __KERNEL__
+
+/* Logging, debugging and troubleshooting/diagnostic helpers. */
+
+/* wiphy_printk helpers, similar to dev_printk */
+
+#define wiphy_printk(level, wiphy, format, args...)            \
+       printk(level "%s: " format, wiphy_name(wiphy), ##args)
+#define wiphy_emerg(wiphy, format, args...)                    \
+       wiphy_printk(KERN_EMERG, wiphy, format, ##args)
+#define wiphy_alert(wiphy, format, args...)                    \
+       wiphy_printk(KERN_ALERT, wiphy, format, ##args)
+#define wiphy_crit(wiphy, format, args...)                     \
+       wiphy_printk(KERN_CRIT, wiphy, format, ##args)
+#define wiphy_err(wiphy, format, args...)                      \
+       wiphy_printk(KERN_ERR, wiphy, format, ##args)
+#define wiphy_warn(wiphy, format, args...)                     \
+       wiphy_printk(KERN_WARNING, wiphy, format, ##args)
+#define wiphy_notice(wiphy, format, args...)                   \
+       wiphy_printk(KERN_NOTICE, wiphy, format, ##args)
+#define wiphy_info(wiphy, format, args...)                     \
+       wiphy_printk(KERN_INFO, wiphy, format, ##args)
+#define wiphy_debug(wiphy, format, args...)                    \
+       wiphy_printk(KERN_DEBUG, wiphy, format, ##args)
+
+#if defined(DEBUG)
+#define wiphy_dbg(wiphy, format, args...)                      \
+       wiphy_printk(KERN_DEBUG, wiphy, format, ##args)
+#elif defined(CONFIG_DYNAMIC_DEBUG)
+#define wiphy_dbg(wiphy, format, args...)                      \
+       dynamic_pr_debug("%s: " format, wiphy_name(dev), ##args)
+#else
+#define wiphy_dbg(wiphy, format, args...)                              \
+({                                                                     \
+       if (0)                                                          \
+               wiphy_printk(KERN_DEBUG, wiphy, format, ##args);        \
+       0;                                                              \
+})
+#endif
+
+#if defined(VERBOSE_DEBUG)
+#define wiphy_vdbg     wiphy_dbg
+#else
+
+#define wiphy_vdbg(wiphy, format, args...)                             \
+({                                                                     \
+       if (0)                                                          \
+               wiphy_printk(KERN_DEBUG, wiphy, format, ##args);        \
+               0;                                                      \
+})
+#endif
+
+/*
+ * wiphy_WARN() acts like wiphy_printk(), but with the key difference
+ * of using a WARN/WARN_ON to get the message out, including the
+ * file/line information and a backtrace.
+ */
+#define wiphy_WARN(wiphy, format, args...)                     \
+       WARN(1, "wiphy: %s\n" format, wiphy_name(wiphy), ##args);
+
+#endif
+
 #endif /* __NET_CFG80211_H */