patch-1.3.72 linux/drivers/char/ftape/tracing.c
Next file: linux/drivers/char/ftape/tracing.h
Previous file: linux/drivers/char/ftape/qic117.h
Back to the patch index
Back to the overall index
- Lines: 105
- Date:
Wed Mar 6 15:07:21 1996
- Orig file:
v1.3.71/linux/drivers/char/ftape/tracing.c
- Orig date:
Thu Jan 1 02:00:00 1970
diff -u --recursive --new-file v1.3.71/linux/drivers/char/ftape/tracing.c linux/drivers/char/ftape/tracing.c
@@ -0,0 +1,104 @@
+
+/*
+ * Copyright (C) 1993-1995 Bas Laarhoven.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ *
+ * This file contains the reading code
+ * for the QIC-117 floppy-tape driver for Linux.
+ */
+
+#include <linux/module.h>
+#include <linux/ftape.h>
+
+#include "tracing.h"
+
+/* Global vars.
+ */
+/* tracing
+ * set it to: to get:
+ * 0 bugs
+ * 1 + errors
+ * 2 + warnings
+ * 3 + information
+ * 4 + more information
+ * 5 + program flow
+ * 6 + fdc/dma info
+ * 7 + data flow
+ * 8 + everything else
+ */
+int tracing = 3; /* Default level: report only errors */
+
+#ifndef NO_TRACE_AT_ALL
+
+byte trace_id = 0;
+int function_nest_level = 0;
+
+/* Local vars.
+ */
+static char spacing[] = "* ";
+
+int trace_call(int level, char *file, char *name)
+{
+ char *indent;
+
+ if (tracing >= level && level <= TOP_LEVEL) {
+ /* Since printk seems not to work with "%*s" format
+ * we'll use this work-around.
+ */
+ if (function_nest_level < sizeof(spacing)) {
+ indent = spacing + sizeof(spacing) - 1 - function_nest_level;
+ } else {
+ indent = spacing;
+ }
+ printk(KERN_INFO "[%03d]%s+%s (%s)\n", (int) trace_id++, indent, file, name);
+ }
+ return function_nest_level++;
+}
+
+void trace_exit(int level, char *file, char *name)
+{
+ char *indent;
+
+ if (tracing >= level && level <= TOP_LEVEL) {
+ /* Since printk seems not to work with "%*s" format
+ * we'll use this work-around.
+ */
+ if (function_nest_level < sizeof(spacing)) {
+ indent = spacing + sizeof(spacing) - 1 - function_nest_level;
+ } else {
+ indent = spacing;
+ }
+ printk(KERN_INFO "[%03d]%s-%s (%s)\n", (int) trace_id++, indent, file, name);
+ }
+}
+
+void trace_log(char *file, char *name)
+{
+ char *indent;
+
+ /* Since printk seems not to work with "%*s" format
+ * we'll use this work-around.
+ */
+ if (function_nest_level < sizeof(spacing)) {
+ indent = spacing + sizeof(spacing) - 1 - function_nest_level;
+ } else {
+ indent = spacing;
+ }
+ printk(KERN_INFO "[%03d]%s%s (%s) - ", (int) trace_id++, indent, file, name);
+}
+
+#endif /* NO_TRACE_AT_ALL */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this