| /* | 
 |  * | 
 |  * Copyright (c) 2009, Microsoft Corporation. | 
 |  * | 
 |  * This program is free software; you can redistribute it and/or modify it | 
 |  * under the terms and conditions of the GNU General Public License, | 
 |  * version 2, as published by the Free Software Foundation. | 
 |  * | 
 |  * This program is distributed in the hope 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 the Free Software Foundation, Inc., 59 Temple | 
 |  * Place - Suite 330, Boston, MA 02111-1307 USA. | 
 |  * | 
 |  * Authors: | 
 |  *   Haiyang Zhang <haiyangz@microsoft.com> | 
 |  *   Hank Janssen  <hjanssen@microsoft.com> | 
 |  * | 
 |  */ | 
 |  | 
 |  | 
 | #ifndef _LOGGING_H_ | 
 | #define _LOGGING_H_ | 
 |  | 
 | #define LOWORD(dw) ((unsigned short)(dw)) | 
 | #define HIWORD(dw) ((unsigned short)(((unsigned int) (dw) >> 16) & 0xFFFF)) | 
 |  | 
 | /* #include <linux/init.h> */ | 
 | /* #include <linux/module.h> */ | 
 |  | 
 |  | 
 | #define VMBUS				0x0001 | 
 | #define STORVSC				0x0002 | 
 | #define NETVSC				0x0004 | 
 | #define INPUTVSC			0x0008 | 
 | #define BLKVSC				0x0010 | 
 | #define VMBUS_DRV			0x0100 | 
 | #define STORVSC_DRV			0x0200 | 
 | #define NETVSC_DRV			0x0400 | 
 | #define INPUTVSC_DRV		0x0800 | 
 | #define BLKVSC_DRV			0x1000 | 
 |  | 
 | #define ALL_MODULES			(VMBUS		|\ | 
 | 							STORVSC		|\ | 
 | 							NETVSC		|\ | 
 | 							INPUTVSC	|\ | 
 | 							BLKVSC		|\ | 
 | 							VMBUS_DRV	|\ | 
 | 							STORVSC_DRV	|\ | 
 | 							NETVSC_DRV	|\ | 
 | 							INPUTVSC_DRV|\ | 
 | 							BLKVSC_DRV) | 
 |  | 
 | /* Logging Level */ | 
 | #define ERROR_LVL				3 | 
 | #define WARNING_LVL				4 | 
 | #define INFO_LVL				6 | 
 | #define DEBUG_LVL				7 | 
 | #define DEBUG_LVL_ENTEREXIT			8 | 
 | #define DEBUG_RING_LVL				9 | 
 |  | 
 | extern unsigned int vmbus_loglevel; | 
 |  | 
 | #define DPRINT(mod, lvl, fmt, args...) do {\ | 
 | 	if ((mod & (HIWORD(vmbus_loglevel))) &&	\ | 
 | 	    (lvl <= LOWORD(vmbus_loglevel)))	\ | 
 | 		printk(KERN_DEBUG #mod": %s() " fmt "\n", __func__, ## args);\ | 
 | 	} while (0) | 
 |  | 
 | #define DPRINT_DBG(mod, fmt, args...) do {\ | 
 | 	if ((mod & (HIWORD(vmbus_loglevel))) &&		\ | 
 | 	    (DEBUG_LVL <= LOWORD(vmbus_loglevel)))	\ | 
 | 		printk(KERN_DEBUG #mod": %s() " fmt "\n", __func__, ## args);\ | 
 | 	} while (0) | 
 |  | 
 | #define DPRINT_INFO(mod, fmt, args...) do {\ | 
 | 	if ((mod & (HIWORD(vmbus_loglevel))) &&		\ | 
 | 	    (INFO_LVL <= LOWORD(vmbus_loglevel)))	\ | 
 | 		printk(KERN_INFO #mod": " fmt "\n", ## args);\ | 
 | 	} while (0) | 
 |  | 
 | #define DPRINT_WARN(mod, fmt, args...) do {\ | 
 | 	if ((mod & (HIWORD(vmbus_loglevel))) &&		\ | 
 | 	    (WARNING_LVL <= LOWORD(vmbus_loglevel)))	\ | 
 | 		printk(KERN_WARNING #mod": WARNING! " fmt "\n", ## args);\ | 
 | 	} while (0) | 
 |  | 
 | #define DPRINT_ERR(mod, fmt, args...) do {\ | 
 | 	if ((mod & (HIWORD(vmbus_loglevel))) &&		\ | 
 | 	    (ERROR_LVL <= LOWORD(vmbus_loglevel)))	\ | 
 | 		printk(KERN_ERR #mod": %s() ERROR!! " fmt "\n",	\ | 
 | 		       __func__, ## args);\ | 
 | 	} while (0) | 
 |  | 
 | #endif /* _LOGGING_H_ */ |