/* * linux/fs/9p/debug.h - V9FS Debug Definitions * * Copyright (C) 2004 by Eric Van Hensbergen * Copyright (C) 2002 by Ron Minnich * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation. * * 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; if not, write to: * Free Software Foundation * 51 Franklin Street, Fifth Floor * Boston, MA 02111-1301 USA * */ #define DEBUG_ERROR (1<<0) #define DEBUG_CURRENT (1<<1) #define DEBUG_9P (1<<2) #define DEBUG_VFS (1<<3) #define DEBUG_CONV (1<<4) #define DEBUG_MUX (1<<5) #define DEBUG_TRANS (1<<6) #define DEBUG_SLABS (1<<7) #define DEBUG_FCALL (1<<8) #define DEBUG_DUMP_PKT 0 extern int v9fs_debug_level; #define dprintk(level, format, arg...) \ do { \ if((v9fs_debug_level & level)==level) \ printk(KERN_NOTICE "-- %s (%d): " \ format , __FUNCTION__, current->pid , ## arg); \ } while(0) #define eprintk(level, format, arg...) \ do { \ printk(level "v9fs: %s (%d): " \ format , __FUNCTION__, current->pid , ## arg); \ } while(0) #if DEBUG_DUMP_PKT static inline void dump_data(const unsigned char *data, unsigned int datalen) { int i, n; char buf[5*8]; n = 0; i = 0; while (i < datalen) { n += snprintf(buf+n, sizeof(buf)-n, "%02x", data[i++]); if (i%4 == 0) n += snprintf(buf+n, sizeof(buf)-n, " "); if (i%16 == 0) { dprintk(DEBUG_ERROR, "%s\n", buf); n = 0; } } dprintk(DEBUG_ERROR, "%s\n", buf); } #else /* DEBUG_DUMP_PKT */ static inline void dump_data(const unsigned char *data, unsigned int datalen) { } #endif /* DEBUG_DUMP_PKT */