diff options
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 5a0e4878d3b7..a881f92a8537 100644 --- a/net/tipc/core.h +++ b/net/tipc/core.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | * net/tipc/core.h: Include file for TIPC global declarations | 2 | * net/tipc/core.h: Include file for TIPC global declarations |
| 3 | * | 3 | * |
| 4 | * Copyright (c) 2005-2006, Ericsson AB | 4 | * Copyright (c) 2005-2006, Ericsson AB |
| 5 | * Copyright (c) 2005-2006, Wind River Systems | 5 | * Copyright (c) 2005-2007, Wind River Systems |
| 6 | * All rights reserved. | 6 | * All rights reserved. |
| 7 | * | 7 | * |
| 8 | * Redistribution and use in source and binary forms, with or without | 8 | * Redistribution and use in source and binary forms, with or without |
| @@ -59,84 +59,108 @@ | |||
| 59 | #include <linux/vmalloc.h> | 59 | #include <linux/vmalloc.h> |
| 60 | 60 | ||
| 61 | /* | 61 | /* |
| 62 | * TIPC debugging code | 62 | * TIPC sanity test macros |
| 63 | */ | 63 | */ |
| 64 | 64 | ||
| 65 | #define assert(i) BUG_ON(!(i)) | 65 | #define assert(i) BUG_ON(!(i)) |
| 66 | 66 | ||
| 67 | struct tipc_msg; | ||
| 68 | extern struct print_buf *TIPC_NULL, *TIPC_CONS, *TIPC_LOG; | ||
| 69 | extern struct print_buf *TIPC_TEE(struct print_buf *, struct print_buf *); | ||
| 70 | void tipc_msg_print(struct print_buf*,struct tipc_msg *,const char*); | ||
| 71 | void tipc_printf(struct print_buf *, const char *fmt, ...); | ||
| 72 | void tipc_dump(struct print_buf*,const char *fmt, ...); | ||
| 73 | |||
| 74 | #ifdef CONFIG_TIPC_DEBUG | ||
| 75 | |||
| 76 | /* | 67 | /* |
| 77 | * TIPC debug support included: | 68 | * TIPC system monitoring code |
| 78 | * - system messages are printed to TIPC_OUTPUT print buffer | ||
| 79 | * - debug messages are printed to DBG_OUTPUT print buffer | ||
| 80 | */ | 69 | */ |
| 81 | 70 | ||
| 82 | #define err(fmt, arg...) tipc_printf(TIPC_OUTPUT, KERN_ERR "TIPC: " fmt, ## arg) | 71 | /* |
| 83 | #define warn(fmt, arg...) tipc_printf(TIPC_OUTPUT, KERN_WARNING "TIPC: " fmt, ## arg) | 72 | * TIPC's print buffer subsystem supports the following print buffers: |
| 84 | #define info(fmt, arg...) tipc_printf(TIPC_OUTPUT, KERN_NOTICE "TIPC: " fmt, ## arg) | 73 | * |
| 74 | * TIPC_NULL : null buffer (i.e. print nowhere) | ||
| 75 | * TIPC_CONS : system console | ||
| 76 | * TIPC_LOG : TIPC log buffer | ||
| 77 | * &buf : user-defined buffer (struct print_buf *) | ||
| 78 | * | ||
| 79 | * Note: TIPC_LOG is configured to echo its output to the system console; | ||
| 80 | * user-defined buffers can be configured to do the same thing. | ||
| 81 | */ | ||
| 85 | 82 | ||
| 86 | #define dbg(fmt, arg...) do {if (DBG_OUTPUT != TIPC_NULL) tipc_printf(DBG_OUTPUT, fmt, ## arg);} while(0) | 83 | extern struct print_buf *const TIPC_NULL; |
| 87 | #define msg_dbg(msg, txt) do {if (DBG_OUTPUT != TIPC_NULL) tipc_msg_print(DBG_OUTPUT, msg, txt);} while(0) | 84 | extern struct print_buf *const TIPC_CONS; |
| 88 | #define dump(fmt, arg...) do {if (DBG_OUTPUT != TIPC_NULL) tipc_dump(DBG_OUTPUT, fmt, ##arg);} while(0) | 85 | extern struct print_buf *const TIPC_LOG; |
| 89 | 86 | ||
| 87 | void tipc_printf(struct print_buf *, const char *fmt, ...); | ||
| 90 | 88 | ||
| 91 | /* | 89 | /* |
| 92 | * By default, TIPC_OUTPUT is defined to be system console and TIPC log buffer, | 90 | * TIPC_OUTPUT is the destination print buffer for system messages. |
| 93 | * while DBG_OUTPUT is the null print buffer. These defaults can be changed | ||
| 94 | * here, or on a per .c file basis, by redefining these symbols. The following | ||
| 95 | * print buffer options are available: | ||
| 96 | * | ||
| 97 | * TIPC_NULL : null buffer (i.e. print nowhere) | ||
| 98 | * TIPC_CONS : system console | ||
| 99 | * TIPC_LOG : TIPC log buffer | ||
| 100 | * &buf : user-defined buffer (struct print_buf *) | ||
| 101 | * TIPC_TEE(&buf_a,&buf_b) : list of buffers (eg. TIPC_TEE(TIPC_CONS,TIPC_LOG)) | ||
| 102 | */ | 91 | */ |
| 103 | 92 | ||
| 104 | #ifndef TIPC_OUTPUT | 93 | #ifndef TIPC_OUTPUT |
| 105 | #define TIPC_OUTPUT TIPC_TEE(TIPC_CONS,TIPC_LOG) | 94 | #define TIPC_OUTPUT TIPC_LOG |
| 106 | #endif | ||
| 107 | |||
| 108 | #ifndef DBG_OUTPUT | ||
| 109 | #define DBG_OUTPUT TIPC_NULL | ||
| 110 | #endif | 95 | #endif |
| 111 | 96 | ||
| 112 | #else | ||
| 113 | |||
| 114 | /* | 97 | /* |
| 115 | * TIPC debug support not included: | 98 | * TIPC can be configured to send system messages to TIPC_OUTPUT |
| 116 | * - system messages are printed to system console | 99 | * or to the system console only. |
| 117 | * - debug messages are not printed | ||
| 118 | */ | 100 | */ |
| 119 | 101 | ||
| 102 | #ifdef CONFIG_TIPC_DEBUG | ||
| 103 | |||
| 104 | #define err(fmt, arg...) tipc_printf(TIPC_OUTPUT, \ | ||
| 105 | KERN_ERR "TIPC: " fmt, ## arg) | ||
| 106 | #define warn(fmt, arg...) tipc_printf(TIPC_OUTPUT, \ | ||
| 107 | KERN_WARNING "TIPC: " fmt, ## arg) | ||
| 108 | #define info(fmt, arg...) tipc_printf(TIPC_OUTPUT, \ | ||
| 109 | KERN_NOTICE "TIPC: " fmt, ## arg) | ||
| 110 | |||
| 111 | #else | ||
| 112 | |||
| 120 | #define err(fmt, arg...) printk(KERN_ERR "TIPC: " fmt , ## arg) | 113 | #define err(fmt, arg...) printk(KERN_ERR "TIPC: " fmt , ## arg) |
| 121 | #define info(fmt, arg...) printk(KERN_INFO "TIPC: " fmt , ## arg) | 114 | #define info(fmt, arg...) printk(KERN_INFO "TIPC: " fmt , ## arg) |
| 122 | #define warn(fmt, arg...) printk(KERN_WARNING "TIPC: " fmt , ## arg) | 115 | #define warn(fmt, arg...) printk(KERN_WARNING "TIPC: " fmt , ## arg) |
| 123 | 116 | ||
| 124 | #define dbg(fmt, arg...) do {} while (0) | 117 | #endif |
| 125 | #define msg_dbg(msg,txt) do {} while (0) | ||
| 126 | #define dump(fmt,arg...) do {} while (0) | ||
| 127 | 118 | ||
| 119 | /* | ||
| 120 | * DBG_OUTPUT is the destination print buffer for debug messages. | ||
| 121 | * It defaults to the the null print buffer, but can be redefined | ||
| 122 | * (typically in the individual .c files being debugged) to allow | ||
| 123 | * selected debug messages to be generated where needed. | ||
| 124 | */ | ||
| 125 | |||
| 126 | #ifndef DBG_OUTPUT | ||
| 127 | #define DBG_OUTPUT TIPC_NULL | ||
| 128 | #endif | ||
| 128 | 129 | ||
| 129 | /* | 130 | /* |
| 130 | * TIPC_OUTPUT is defined to be the system console, while DBG_OUTPUT is | 131 | * TIPC can be configured to send debug messages to the specified print buffer |
| 131 | * the null print buffer. Thes ensures that any system or debug messages | 132 | * (typically DBG_OUTPUT) or to suppress them entirely. |
| 132 | * that are generated without using the above macros are handled correctly. | ||
| 133 | */ | 133 | */ |
| 134 | 134 | ||
| 135 | #undef TIPC_OUTPUT | 135 | #ifdef CONFIG_TIPC_DEBUG |
| 136 | #define TIPC_OUTPUT TIPC_CONS | ||
| 137 | 136 | ||
| 138 | #undef DBG_OUTPUT | 137 | #define dbg(fmt, arg...) \ |
| 139 | #define DBG_OUTPUT TIPC_NULL | 138 | do { \ |
| 139 | if (DBG_OUTPUT != TIPC_NULL) \ | ||
| 140 | tipc_printf(DBG_OUTPUT, fmt, ## arg); \ | ||
| 141 | } while (0) | ||
| 142 | #define msg_dbg(msg, txt) \ | ||
| 143 | do { \ | ||
| 144 | if (DBG_OUTPUT != TIPC_NULL) \ | ||
| 145 | tipc_msg_dbg(DBG_OUTPUT, msg, txt); \ | ||
| 146 | } while (0) | ||
| 147 | #define dump(fmt, arg...) \ | ||
| 148 | do { \ | ||
| 149 | if (DBG_OUTPUT != TIPC_NULL) \ | ||
| 150 | tipc_dump_dbg(DBG_OUTPUT, fmt, ##arg); \ | ||
| 151 | } while (0) | ||
| 152 | |||
| 153 | void tipc_msg_dbg(struct print_buf *, struct tipc_msg *, const char *); | ||
| 154 | void tipc_dump_dbg(struct print_buf *, const char *fmt, ...); | ||
| 155 | |||
| 156 | #else | ||
| 157 | |||
| 158 | #define dbg(fmt, arg...) do {} while (0) | ||
| 159 | #define msg_dbg(msg, txt) do {} while (0) | ||
| 160 | #define dump(fmt, arg...) do {} while (0) | ||
| 161 | |||
| 162 | #define tipc_msg_dbg(...) do {} while (0) | ||
| 163 | #define tipc_dump_dbg(...) do {} while (0) | ||
| 140 | 164 | ||
| 141 | #endif | 165 | #endif |
| 142 | 166 | ||
| @@ -178,7 +202,7 @@ extern atomic_t tipc_user_count; | |||
| 178 | 202 | ||
| 179 | extern int tipc_core_start(void); | 203 | extern int tipc_core_start(void); |
| 180 | extern void tipc_core_stop(void); | 204 | extern void tipc_core_stop(void); |
| 181 | extern int tipc_core_start_net(void); | 205 | extern int tipc_core_start_net(unsigned long addr); |
| 182 | extern void tipc_core_stop_net(void); | 206 | extern void tipc_core_stop_net(void); |
| 183 | extern int tipc_handler_start(void); | 207 | extern int tipc_handler_start(void); |
| 184 | extern void tipc_handler_stop(void); | 208 | extern void tipc_handler_stop(void); |
