diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-07-31 18:43:41 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-07-31 18:43:41 +0200 | 
| commit | 85e9ca333d03fbd56b9e123c8456f0d98e20faad (patch) | |
| tree | 7bb15ada5f536950efa23ad60ea9eea60380ca1c /net/tipc/core.h | |
| parent | a300bec952127d9a15e666b391bb35c9aecb3002 (diff) | |
| parent | 6e86841d05f371b5b9b86ce76c02aaee83352298 (diff) | |
Merge branch 'linus' into timers/hpet
Diffstat (limited to 'net/tipc/core.h')
| -rw-r--r-- | net/tipc/core.h | 126 | 
1 files changed, 75 insertions, 51 deletions
| diff --git a/net/tipc/core.h b/net/tipc/core.h index 5a0e4878d3b..a881f92a853 100644 --- a/net/tipc/core.h +++ b/net/tipc/core.h @@ -2,7 +2,7 @@   * net/tipc/core.h: Include file for TIPC global declarations   *   * Copyright (c) 2005-2006, Ericsson AB - * Copyright (c) 2005-2006, Wind River Systems + * Copyright (c) 2005-2007, Wind River Systems   * All rights reserved.   *   * Redistribution and use in source and binary forms, with or without @@ -59,84 +59,108 @@  #include <linux/vmalloc.h>  /* - * TIPC debugging code + * TIPC sanity test macros   */  #define assert(i)  BUG_ON(!(i)) -struct tipc_msg; -extern struct print_buf *TIPC_NULL, *TIPC_CONS, *TIPC_LOG; -extern struct print_buf *TIPC_TEE(struct print_buf *, struct print_buf *); -void tipc_msg_print(struct print_buf*,struct tipc_msg *,const char*); -void tipc_printf(struct print_buf *, const char *fmt, ...); -void tipc_dump(struct print_buf*,const char *fmt, ...); - -#ifdef CONFIG_TIPC_DEBUG -  /* - * TIPC debug support included: - * - system messages are printed to TIPC_OUTPUT print buffer - * - debug messages are printed to DBG_OUTPUT print buffer + * TIPC system monitoring code   */ -#define err(fmt, arg...)  tipc_printf(TIPC_OUTPUT, KERN_ERR "TIPC: " fmt, ## arg) -#define warn(fmt, arg...) tipc_printf(TIPC_OUTPUT, KERN_WARNING "TIPC: " fmt, ## arg) -#define info(fmt, arg...) tipc_printf(TIPC_OUTPUT, KERN_NOTICE "TIPC: " fmt, ## arg) +/* + * TIPC's print buffer subsystem supports the following print buffers: + * + * TIPC_NULL : null buffer (i.e. print nowhere) + * TIPC_CONS : system console + * TIPC_LOG  : TIPC log buffer + * &buf	     : user-defined buffer (struct print_buf *) + * + * Note: TIPC_LOG is configured to echo its output to the system console; + *       user-defined buffers can be configured to do the same thing. + */ -#define dbg(fmt, arg...)  do {if (DBG_OUTPUT != TIPC_NULL) tipc_printf(DBG_OUTPUT, fmt, ## arg);} while(0) -#define msg_dbg(msg, txt) do {if (DBG_OUTPUT != TIPC_NULL) tipc_msg_print(DBG_OUTPUT, msg, txt);} while(0) -#define dump(fmt, arg...) do {if (DBG_OUTPUT != TIPC_NULL) tipc_dump(DBG_OUTPUT, fmt, ##arg);} while(0) +extern struct print_buf *const TIPC_NULL; +extern struct print_buf *const TIPC_CONS; +extern struct print_buf *const TIPC_LOG; +void tipc_printf(struct print_buf *, const char *fmt, ...);  /* - * By default, TIPC_OUTPUT is defined to be system console and TIPC log buffer, - * while DBG_OUTPUT is the null print buffer.  These defaults can be changed - * here, or on a per .c file basis, by redefining these symbols.  The following - * print buffer options are available: - * - * TIPC_NULL		   : null buffer (i.e. print nowhere) - * TIPC_CONS		   : system console - * TIPC_LOG		   : TIPC log buffer - * &buf			   : user-defined buffer (struct print_buf *) - * TIPC_TEE(&buf_a,&buf_b) : list of buffers (eg. TIPC_TEE(TIPC_CONS,TIPC_LOG)) + * TIPC_OUTPUT is the destination print buffer for system messages.   */  #ifndef TIPC_OUTPUT -#define TIPC_OUTPUT TIPC_TEE(TIPC_CONS,TIPC_LOG) -#endif - -#ifndef DBG_OUTPUT -#define DBG_OUTPUT TIPC_NULL +#define TIPC_OUTPUT TIPC_LOG  #endif -#else -  /* - * TIPC debug support not included: - * - system messages are printed to system console - * - debug messages are not printed + * TIPC can be configured to send system messages to TIPC_OUTPUT + * or to the system console only.   */ +#ifdef CONFIG_TIPC_DEBUG + +#define err(fmt, arg...)  tipc_printf(TIPC_OUTPUT, \ +					KERN_ERR "TIPC: " fmt, ## arg) +#define warn(fmt, arg...) tipc_printf(TIPC_OUTPUT, \ +					KERN_WARNING "TIPC: " fmt, ## arg) +#define info(fmt, arg...) tipc_printf(TIPC_OUTPUT, \ +					KERN_NOTICE "TIPC: " fmt, ## arg) + +#else +  #define err(fmt, arg...)  printk(KERN_ERR "TIPC: " fmt , ## arg)  #define info(fmt, arg...) printk(KERN_INFO "TIPC: " fmt , ## arg)  #define warn(fmt, arg...) printk(KERN_WARNING "TIPC: " fmt , ## arg) -#define dbg(fmt, arg...) do {} while (0) -#define msg_dbg(msg,txt) do {} while (0) -#define dump(fmt,arg...) do {} while (0) +#endif +/* + * DBG_OUTPUT is the destination print buffer for debug messages. + * It defaults to the the null print buffer, but can be redefined + * (typically in the individual .c files being debugged) to allow + * selected debug messages to be generated where needed. + */ + +#ifndef DBG_OUTPUT +#define DBG_OUTPUT TIPC_NULL +#endif  /* - * TIPC_OUTPUT is defined to be the system console, while DBG_OUTPUT is - * the null print buffer.  Thes ensures that any system or debug messages - * that are generated without using the above macros are handled correctly. + * TIPC can be configured to send debug messages to the specified print buffer + * (typically DBG_OUTPUT) or to suppress them entirely.   */ -#undef  TIPC_OUTPUT -#define TIPC_OUTPUT TIPC_CONS +#ifdef CONFIG_TIPC_DEBUG -#undef  DBG_OUTPUT -#define DBG_OUTPUT TIPC_NULL +#define dbg(fmt, arg...)  \ +	do { \ +		if (DBG_OUTPUT != TIPC_NULL) \ +			tipc_printf(DBG_OUTPUT, fmt, ## arg); \ +	} while (0) +#define msg_dbg(msg, txt) \ +	do { \ +		if (DBG_OUTPUT != TIPC_NULL) \ +			tipc_msg_dbg(DBG_OUTPUT, msg, txt); \ +	} while (0) +#define dump(fmt, arg...) \ +	do { \ +		if (DBG_OUTPUT != TIPC_NULL) \ +			tipc_dump_dbg(DBG_OUTPUT, fmt, ##arg); \ +	} while (0) + +void tipc_msg_dbg(struct print_buf *, struct tipc_msg *, const char *); +void tipc_dump_dbg(struct print_buf *, const char *fmt, ...); + +#else + +#define dbg(fmt, arg...)	do {} while (0) +#define msg_dbg(msg, txt)	do {} while (0) +#define dump(fmt, arg...)	do {} while (0) + +#define tipc_msg_dbg(...)	do {} while (0) +#define tipc_dump_dbg(...)	do {} while (0)  #endif @@ -178,7 +202,7 @@ extern atomic_t tipc_user_count;  extern int  tipc_core_start(void);  extern void tipc_core_stop(void); -extern int  tipc_core_start_net(void); +extern int  tipc_core_start_net(unsigned long addr);  extern void tipc_core_stop_net(void);  extern int  tipc_handler_start(void);  extern void tipc_handler_stop(void); | 
