summaryrefslogtreecommitdiffstats
path: root/include/linux/ide.h
diff options
context:
space:
mode:
authorBorislav Petkov2008-10-13 21:39:35 +0200
committerBartlomiej Zolnierkiewicz2008-10-13 21:39:35 +0200
commite1c7c4641aae8d278fca62b3b5cffad3a8dcb0a4 (patch)
tree5fee46f00db24a3ca301dca5fb2d3baddfdd2938 /include/linux/ide.h
parentide: add drive->debug_mask switch (diff)
downloadkernel-qcow2-linux-e1c7c4641aae8d278fca62b3b5cffad3a8dcb0a4.tar.gz
kernel-qcow2-linux-e1c7c4641aae8d278fca62b3b5cffad3a8dcb0a4.tar.xz
kernel-qcow2-linux-e1c7c4641aae8d278fca62b3b5cffad3a8dcb0a4.zip
ide: add a driver-wide debugging macro
Add __ide_debug_log() debugging macro which is controlled by drive->debug_mask. The macro has to have the macro DRV_NAME defined in each driver before use. Also, add different debugging levels depending on the functionality debugged. Signed-off-by: Borislav Petkov <petkovbb@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'include/linux/ide.h')
-rw-r--r--include/linux/ide.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index fcd98e1d1863..02c4c642e6a5 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -927,6 +927,26 @@ static inline void ide_proc_unregister_driver(ide_drive_t *drive, ide_driver_t *
#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) return 0;
#endif
+enum {
+ /* enter/exit functions */
+ IDE_DBG_FUNC = (1 << 0),
+ /* sense key/asc handling */
+ IDE_DBG_SENSE = (1 << 1),
+ /* packet commands handling */
+ IDE_DBG_PC = (1 << 2),
+ /* request handling */
+ IDE_DBG_RQ = (1 << 3),
+ /* driver probing/setup */
+ IDE_DBG_PROBE = (1 << 4),
+};
+
+/* DRV_NAME has to be defined in the driver before using the macro below */
+#define __ide_debug_log(lvl, fmt, args...) \
+{ \
+ if (unlikely(drive->debug_mask & lvl)) \
+ printk(KERN_INFO DRV_NAME ": " fmt, ## args); \
+}
+
/*
* Power Management step value (rq->pm->pm_step).
*