1/* 2 * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or modify it 5 * under the terms of version 2 of the GNU General Public License as 6 * published by the Free Software Foundation. 7 * 8 * This program is distributed in the hope that it would be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11 * 12 * Further, this software is distributed without any warranty that it is 13 * free of the rightful claim of any third person regarding infringement 14 * or the like. Any license provided herein, whether implied or 15 * otherwise, applies only to this software file. Patent licenses, if 16 * any, provided herein do not apply to combinations of this program with 17 * other software, or any other product whatsoever. 18 * 19 * You should have received a copy of the GNU General Public License along 20 * with this program; if not, write the Free Software Foundation, Inc., 59 21 * Temple Place - Suite 330, Boston MA 02111-1307, USA. 22 * 23 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, 24 * Mountain View, CA 94043, or: 25 * 26 * http://www.sgi.com 27 * 28 * For further information regarding this notice, see: 29 * 30 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ 31 */ 32 33 34#include <sys/param.h> 35#include <sys/proc.h> 36#include <sys/kernel.h> 37#include <sys/systm.h> 38#include <sys/sysctl.h> 39#include <machine/stdarg.h> 40 41#include <support/debug.h> 42 43static SYSCTL_NODE(_debug, OID_AUTO, xfs, CTLFLAG_RD, 0, "XFS debug options"); 44 45static int verbosity = 10; 46SYSCTL_INT(_debug_xfs, OID_AUTO, verbosity, CTLFLAG_RW, &verbosity, 0, ""); 47 48#ifdef DEBUG 49 50static int doass = 1; 51SYSCTL_INT(_debug_xfs, OID_AUTO, assert, CTLFLAG_RW, &doass, 0, ""); 52 53void 54assfail(char *a, char *f, int l) 55{ 56 if (doass == 0) return; 57 panic("XFS assertion failed: %s, file: %s, line: %d\n", a, f, l); 58} 59 60int 61get_thread_id(void) 62{ 63 return curthread->td_proc->p_pid; 64} 65 66#endif 67 68void 69cmn_err(register int level, char *fmt, ...) 70{ 71 char *fp = fmt; 72 char message[256]; 73 va_list ap; 74 75 if (verbosity < level) 76 return; 77 78 va_start(ap, fmt); 79 if (*fmt == '!') fp++; 80 vsprintf(message, fp, ap); 81 printf("%s\n", message); 82 va_end(ap); 83} 84 85 86void 87icmn_err(register int level, char *fmt, va_list ap) 88{ 89 char message[256]; 90 91 if (verbosity < level) 92 return; 93 94 vsprintf(message, fmt, ap); 95 printf("cmn_err level %d %s\n",level, message); 96} 97 98