1 /* $NetBSD: trace.c,v 1.4 2014/01/26 21:43:45 christos Exp $ */ 2 /*- 3 * Copyright (c) 1996 4 * Rob Zimmermann. All rights reserved. 5 * Copyright (c) 1996 6 * Keith Bostic. All rights reserved. 7 * 8 * See the LICENSE file for redistribution information. 9 */ 10 11 #include "config.h" 12 13 #include <sys/cdefs.h> 14 #if 0 15 #ifndef lint 16 static const char sccsid[] = "Id: trace.c,v 8.4 1997/08/03 15:04:23 bostic Exp (Berkeley) Date: 1997/08/03 15:04:23 "; 17 #endif /* not lint */ 18 #else 19 __RCSID("$NetBSD: trace.c,v 1.4 2014/01/26 21:43:45 christos Exp $"); 20 #endif 21 22 #include <sys/queue.h> 23 24 #include <bitstring.h> 25 #include <stdio.h> 26 27 #ifdef __STDC__ 28 #include <stdarg.h> 29 #else 30 #include <varargs.h> 31 #endif 32 33 #include "common.h" 34 35 #ifdef TRACE 36 37 static FILE *tfp; 38 39 /* 40 * vtrace_end -- 41 * End tracing. 42 * 43 * PUBLIC: void vtrace_end __P((void)); 44 */ 45 void 46 vtrace_end(void) 47 { 48 if (tfp != NULL && tfp != stderr) 49 (void)fclose(tfp); 50 } 51 52 /* 53 * vtrace_init -- 54 * Initialize tracing. 55 * 56 * PUBLIC: void vtrace_init __P((const char *)); 57 */ 58 void 59 vtrace_init(const char *name) 60 { 61 if (name == NULL || (tfp = fopen(name, "w")) == NULL) 62 tfp = stderr; 63 vtrace("\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nTRACE\n"); 64 } 65 66 /* 67 * vtrace -- 68 * Debugging trace routine. 69 * 70 * PUBLIC: void vtrace __P((const char *, ...)); 71 */ 72 void 73 vtrace(const char *fmt, ...) 74 { 75 va_list ap; 76 77 if (tfp == NULL) 78 vtrace_init(NULL); 79 80 va_start(ap, fmt); 81 (void)vfprintf(tfp, fmt, ap); 82 va_end(ap); 83 84 (void)fflush(tfp); 85 } 86 #endif 87