diff options
Diffstat (limited to 'include/driver.h')
-rw-r--r-- | include/driver.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/include/driver.h b/include/driver.h index d4e7c132c9..45097a3c05 100644 --- a/include/driver.h +++ b/include/driver.h @@ -263,5 +263,35 @@ static inline int dev_close_default(struct device_d *dev, struct filep *f) return 0; } +/* debugging and troubleshooting/diagnostic helpers. */ +extern const char *dev_id(const struct device_d *dev); + +#define dev_printf(dev, format, arg...) \ + printf("%s@%s: " format , dev->name , \ + dev_id(dev) , ## arg) + +#define dev_emerg(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_alert(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_crit(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_err(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_warn(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_notice(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_info(dev, format, arg...) \ + dev_printf(dev , format , ## arg) + +#if defined(DEBUG) +#define dev_dbg(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#else +#define dev_dbg(dev, format, arg...) \ + ({ if (0) dev_printf(dev, format, ##arg); 0; }) +#endif + #endif /* DRIVER_H */ |