cam_debug.h (208911) | cam_debug.h (236712) |
---|---|
1/*- 2 * Macros for tracing/loging information in the CAM layer 3 * 4 * Copyright (c) 1997 Justin T. Gibbs. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 11 unchanged lines hidden (view full) --- 20 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 * | 1/*- 2 * Macros for tracing/loging information in the CAM layer 3 * 4 * Copyright (c) 1997 Justin T. Gibbs. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 11 unchanged lines hidden (view full) --- 20 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 * |
28 * $FreeBSD: head/sys/cam/cam_debug.h 208911 2010-06-08 16:17:25Z mjacob $ | 28 * $FreeBSD: head/sys/cam/cam_debug.h 236712 2012-06-07 10:05:51Z mav $ |
29 */ 30#ifndef _CAM_CAM_DEBUG_H 31#define _CAM_CAM_DEBUG_H 1 32 33/* 34 * Debugging flags. 35 */ 36typedef enum { 37 CAM_DEBUG_NONE = 0x00, /* no debugging */ 38 CAM_DEBUG_INFO = 0x01, /* scsi commands, errors, data */ 39 CAM_DEBUG_TRACE = 0x02, /* routine flow tracking */ 40 CAM_DEBUG_SUBTRACE = 0x04, /* internal to routine flows */ 41 CAM_DEBUG_CDB = 0x08, /* print out SCSI CDBs only */ 42 CAM_DEBUG_XPT = 0x10, /* print out xpt scheduling */ 43 CAM_DEBUG_PERIPH = 0x20, /* print out peripheral calls */ 44 CAM_DEBUG_PROBE = 0x40 /* print out probe actions */ 45} cam_debug_flags; 46 | 29 */ 30#ifndef _CAM_CAM_DEBUG_H 31#define _CAM_CAM_DEBUG_H 1 32 33/* 34 * Debugging flags. 35 */ 36typedef enum { 37 CAM_DEBUG_NONE = 0x00, /* no debugging */ 38 CAM_DEBUG_INFO = 0x01, /* scsi commands, errors, data */ 39 CAM_DEBUG_TRACE = 0x02, /* routine flow tracking */ 40 CAM_DEBUG_SUBTRACE = 0x04, /* internal to routine flows */ 41 CAM_DEBUG_CDB = 0x08, /* print out SCSI CDBs only */ 42 CAM_DEBUG_XPT = 0x10, /* print out xpt scheduling */ 43 CAM_DEBUG_PERIPH = 0x20, /* print out peripheral calls */ 44 CAM_DEBUG_PROBE = 0x40 /* print out probe actions */ 45} cam_debug_flags; 46 |
47#if defined(CAMDEBUG) && defined(_KERNEL) | 47#if defined(_KERNEL) |
48 | 48 |
49#ifndef CAM_DEBUG_FLAGS 50#define CAM_DEBUG_FLAGS CAM_DEBUG_NONE 51#endif 52 53#ifndef CAM_DEBUG_COMPILE 54#ifdef CAMDEBUG 55#define CAM_DEBUG_COMPILE (-1) 56#else 57#define CAM_DEBUG_COMPILE (CAM_DEBUG_INFO | CAM_DEBUG_CDB | \ 58 CAM_DEBUG_PERIPH | CAM_DEBUG_PROBE | \ 59 CAM_DEBUG_FLAGS) 60#endif 61#endif 62 63#ifndef CAM_DEBUG_BUS 64#define CAM_DEBUG_BUS (-1) 65#endif 66#ifndef CAM_DEBUG_TARGET 67#define CAM_DEBUG_TARGET (-1) 68#endif 69#ifndef CAM_DEBUG_LUN 70#define CAM_DEBUG_LUN (-1) 71#endif 72 73#ifndef CAM_DEBUG_DELAY 74#define CAM_DEBUG_DELAY 0 75#endif 76 |
|
49/* Path we want to debug */ 50extern struct cam_path *cam_dpath; 51/* Current debug levels set */ 52extern u_int32_t cam_dflags; 53/* Printf delay value (to prevent scrolling) */ 54extern u_int32_t cam_debug_delay; | 77/* Path we want to debug */ 78extern struct cam_path *cam_dpath; 79/* Current debug levels set */ 80extern u_int32_t cam_dflags; 81/* Printf delay value (to prevent scrolling) */ 82extern u_int32_t cam_debug_delay; |
55 | 83 |
56/* Debugging macros. */ 57#define CAM_DEBUGGED(path, flag) \ | 84/* Debugging macros. */ 85#define CAM_DEBUGGED(path, flag) \ |
58 ((cam_dflags & (flag)) \ | 86 (((flag) & (CAM_DEBUG_COMPILE) & cam_dflags) \ |
59 && (cam_dpath != NULL) \ 60 && (xpt_path_comp(cam_dpath, path) >= 0) \ 61 && (xpt_path_comp(cam_dpath, path) < 2)) 62 63#define CAM_DEBUG(path, flag, printfargs) \ | 87 && (cam_dpath != NULL) \ 88 && (xpt_path_comp(cam_dpath, path) >= 0) \ 89 && (xpt_path_comp(cam_dpath, path) < 2)) 90 91#define CAM_DEBUG(path, flag, printfargs) \ |
64 if ((cam_dflags & (flag)) \ | 92 if (((flag) & (CAM_DEBUG_COMPILE) & cam_dflags) \ |
65 && (cam_dpath != NULL) \ 66 && (xpt_path_comp(cam_dpath, path) >= 0) \ 67 && (xpt_path_comp(cam_dpath, path) < 2)) { \ 68 xpt_print_path(path); \ | 93 && (cam_dpath != NULL) \ 94 && (xpt_path_comp(cam_dpath, path) >= 0) \ 95 && (xpt_path_comp(cam_dpath, path) < 2)) { \ 96 xpt_print_path(path); \ |
69 printf printfargs; \ | 97 printf printfargs; \ |
70 if (cam_debug_delay != 0) \ 71 DELAY(cam_debug_delay); \ 72 } 73 74#define CAM_DEBUG_PRINT(flag, printfargs) \ | 98 if (cam_debug_delay != 0) \ 99 DELAY(cam_debug_delay); \ 100 } 101 102#define CAM_DEBUG_PRINT(flag, printfargs) \ |
75 if (cam_dflags & (flag)) { \ | 103 if (((flag) & (CAM_DEBUG_COMPILE) & cam_dflags)) { \ |
76 printf("cam_debug: "); \ | 104 printf("cam_debug: "); \ |
77 printf printfargs; \ | 105 printf printfargs; \ |
78 if (cam_debug_delay != 0) \ 79 DELAY(cam_debug_delay); \ 80 } 81 82#define CAM_DEBUG_PATH_PRINT(flag, path, printfargs) \ | 106 if (cam_debug_delay != 0) \ 107 DELAY(cam_debug_delay); \ 108 } 109 110#define CAM_DEBUG_PATH_PRINT(flag, path, printfargs) \ |
83 if (cam_dflags & (flag)) { \ | 111 if (((flag) & (CAM_DEBUG_COMPILE) & cam_dflags)) { \ |
84 xpt_print(path, "cam_debug: "); \ | 112 xpt_print(path, "cam_debug: "); \ |
85 printf printfargs; \ | 113 printf printfargs; \ |
86 if (cam_debug_delay != 0) \ 87 DELAY(cam_debug_delay); \ 88 } 89 | 114 if (cam_debug_delay != 0) \ 115 DELAY(cam_debug_delay); \ 116 } 117 |
90#else /* !CAMDEBUG || !_KERNEL */ | 118#else /* !_KERNEL */ |
91 92#define CAM_DEBUGGED(A, B) 0 93#define CAM_DEBUG(A, B, C) 94#define CAM_DEBUG_PRINT(A, B) 95#define CAM_DEBUG_PATH_PRINT(A, B, C) 96 | 119 120#define CAM_DEBUGGED(A, B) 0 121#define CAM_DEBUG(A, B, C) 122#define CAM_DEBUG_PRINT(A, B) 123#define CAM_DEBUG_PATH_PRINT(A, B, C) 124 |
97#endif /* CAMDEBUG && _KERNEL */ | 125#endif /* _KERNEL */ |
98 99#endif /* _CAM_CAM_DEBUG_H */ | 126 127#endif /* _CAM_CAM_DEBUG_H */ |