From 274ee06526fe963860ebfa7a1703de411bab9d2c Mon Sep 17 00:00:00 2001 From: gibbs Date: Mon, 16 Aug 1999 22:18:14 +0000 Subject: Add another flag for debugging just peripheral drivers. The whole debugging mechanism should be completely revamped, but this will serve for the time being. Take advantage of some new behavior in xpt_path_comp which allows the caller to determine which path, if any, had wildcards in it that allowed for a match to succeed. We can now use this to filter out wildcard nodes in the EDT. Make the amount of time we pause after writing a debug message configurable. --- sys/cam/cam_debug.h | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/sys/cam/cam_debug.h b/sys/cam/cam_debug.h index ab07980..6fa6d52 100644 --- a/sys/cam/cam_debug.h +++ b/sys/cam/cam_debug.h @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: cam_debug.h,v 1.2 1998/10/02 21:00:50 ken Exp $ + * $Id: cam_debug.h,v 1.3 1998/12/05 23:55:48 mjacob Exp $ */ #ifndef _CAM_CAM_DEBUG_H #define _CAM_CAM_DEBUG_H 1 @@ -43,7 +43,8 @@ typedef enum { CAM_DEBUG_TRACE = 0x02, /* routine flow tracking */ CAM_DEBUG_SUBTRACE = 0x04, /* internal to routine flows */ CAM_DEBUG_CDB = 0x08, /* print out SCSI CDBs only */ - CAM_DEBUG_XPT = 0x10 /* print out xpt scheduling */ + CAM_DEBUG_XPT = 0x10, /* print out xpt scheduling */ + CAM_DEBUG_PERIPH = 0x20 /* print out peripheral calls */ } cam_debug_flags; #if defined(CAMDEBUG) && defined(KERNEL) @@ -52,25 +53,31 @@ typedef enum { extern struct cam_path *cam_dpath; /* Current debug levels set */ extern u_int32_t cam_dflags; +/* Printf delay value (to prevent scrolling */ +extern u_int32_t cam_debug_delay; /* Debugging macros. */ #define CAM_DEBUGGED(path, flag) \ ((cam_dflags & (flag)) \ && (cam_dpath != NULL) \ - && (xpt_path_comp(path, cam_dpath) >= 0)) + && (xpt_path_comp(cam_dpath, path) >= 0) \ + && (xpt_path_comp(cam_dpath, path) < 2)) #define CAM_DEBUG(path, flag, printfargs) \ if ((cam_dflags & (flag)) \ && (cam_dpath != NULL) \ - && (xpt_path_comp(path, cam_dpath) >= 0)) { \ + && (xpt_path_comp(cam_dpath, path) >= 0) \ + && (xpt_path_comp(cam_dpath, path) < 2)) { \ xpt_print_path(path); \ printf printfargs; \ - DELAY(100000); \ + if (cam_debug_delay != 0) \ + DELAY(cam_debug_delay); \ } #define CAM_DEBUG_PRINT(flag, printfargs) \ if (cam_dflags & (flag)) { \ printf("cam_debug: "); \ printf printfargs; \ - DELAY(100000); \ + if (cam_debug_delay != 0) \ + DELAY(cam_debug_delay); \ } #else /* !CAMDEBUG || !KERNEL */ -- cgit v1.1