summaryrefslogtreecommitdiffstats
path: root/sys/cam/cam_debug.h
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1998-09-15 06:33:23 +0000
committergibbs <gibbs@FreeBSD.org>1998-09-15 06:33:23 +0000
commit855593c295ac3878b7f73a83edd07f899eccc38d (patch)
tree436fdb7e7e00d8403854b3bc0865866cd885e9dd /sys/cam/cam_debug.h
parentbbc0682d67a7e0c50ade831509abd8c3e119db5c (diff)
downloadFreeBSD-src-855593c295ac3878b7f73a83edd07f899eccc38d.zip
FreeBSD-src-855593c295ac3878b7f73a83edd07f899eccc38d.tar.gz
CAM Transport Layer (XPT).
Submitted by: The CAM Team
Diffstat (limited to 'sys/cam/cam_debug.h')
-rw-r--r--sys/cam/cam_debug.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/sys/cam/cam_debug.h b/sys/cam/cam_debug.h
new file mode 100644
index 0000000..f1b95f2
--- /dev/null
+++ b/sys/cam/cam_debug.h
@@ -0,0 +1,77 @@
+/*
+ * Macros for tracing/loging information in the CAM layer
+ *
+ * Copyright (c) 1997 Justin T. Gibbs.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification, immediately at the beginning of the file.
+ * 2. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id$
+ */
+#ifndef _CAM_CAM_DEBUG_H
+#define _CAM_CAM_DEBUG_H 1
+
+#if defined(CAMDEBUG) && defined(KERNEL)
+#include <machine/clock.h>
+#endif /* CAMDEBUG && KERNEL */
+
+/*
+ * Debugging flags.
+ */
+typedef enum {
+ CAM_DEBUG_NONE = 0x00, /* no debugging */
+ CAM_DEBUG_INFO = 0x01, /* scsi commands, errors, data */
+ CAM_DEBUG_TRACE = 0x02, /* routine flow tracking */
+ CAM_DEBUG_SUBTRACE = 0x04, /* internal to routine flows */
+} cam_debug_flags;
+
+#if defined(CAMDEBUG) && defined(KERNEL)
+
+/* Path we want to debug */
+extern struct cam_path *cam_dpath;
+/* Current debug levels set */
+extern u_int32_t cam_dflags;
+
+/* Debugging macros. */
+#define CAM_DEBUG(path, flag, printfargs) \
+ if ((cam_dflags & (flag)) \
+ && (cam_dpath != NULL) \
+ && (xpt_path_comp(path, cam_dpath) >= 0)) { \
+ xpt_print_path(path); \
+ printf printfargs; \
+ DELAY(100000); \
+ }
+#define CAM_DEBUG_PRINT(flag, printfargs) \
+ if (cam_dflags & (flag)) { \
+ printf("cam_debug: "); \
+ printf printfargs; \
+ DELAY(100000); \
+ }
+
+#else /* !CAMDEBUG || !KERNEL */
+
+#define CAM_DEBUG(A, B, C)
+#define CAM_DEBUG_PRINT(A, B)
+
+#endif /* CAMDEBUG && KERNEL */
+
+#endif /* _CAM_CAM_DEBUG_H */
OpenPOWER on IntegriCloud