[DAPL2] DAPL Counters & 2.0.3 extensions to support counter retrieval.
[mirror/winof/.git] / ulp / dapl2 / dapl / include / dapl_debug.h
1 /*\r
2  * Copyright (c) 2002-2003, Network Appliance, Inc. All rights reserved.\r
3  *\r
4  * This Software is licensed under one of the following licenses:\r
5  *\r
6  * 1) under the terms of the "Common Public License 1.0" a copy of which is\r
7  *    available from the Open Source Initiative, see\r
8  *    http://www.opensource.org/licenses/cpl.php.\r
9  *\r
10  * 2) under the terms of the "The BSD License" a copy of which is\r
11  *    available from the Open Source Initiative, see\r
12  *    http://www.opensource.org/licenses/bsd-license.php.\r
13  *\r
14  * 3) under the terms of the "GNU General Public License (GPL) Version 2" a\r
15  *    copy of which is available from the Open Source Initiative, see\r
16  *    http://www.opensource.org/licenses/gpl-license.php.\r
17  *\r
18  * Licensee has the right to choose one of the above licenses.\r
19  *\r
20  * Redistributions of source code must retain the above copyright\r
21  * notice and one of the license notices.\r
22  *\r
23  * Redistributions in binary form must reproduce both the above copyright\r
24  * notice, one of the license notices in the documentation\r
25  * and/or other materials provided with the distribution.\r
26  */\r
27 \r
28 /**********************************************************************\r
29  *\r
30  * MODULE: dapl_debug.h\r
31  *\r
32  * PURPOSE: defines common deuggging flags & data for the DAPL reference\r
33  * implemenation\r
34  *\r
35  * Description:\r
36  *\r
37  *\r
38  * $Id:$\r
39  **********************************************************************/\r
40 \r
41 #ifndef _DAPL_DEBUG_H_\r
42 #define _DAPL_DEBUG_H_\r
43 \r
44 /*\r
45  * Debug level switches\r
46  *\r
47  * Use these bits to enable various tracing/debug options. Each bit\r
48  * represents debugging in a particular subsystem or area of the code.\r
49  *\r
50  * The ERR bit should always be on unless someone disables it for a\r
51  * reason: The ERR flag is used sparingly and will print useful\r
52  * information if it fires.\r
53  */\r
54 typedef enum\r
55 {\r
56     DAPL_DBG_TYPE_ERR           = 0x0001,\r
57     DAPL_DBG_TYPE_WARN          = 0x0002,\r
58     DAPL_DBG_TYPE_EVD           = 0x0004,\r
59     DAPL_DBG_TYPE_CM            = 0x0008,\r
60     DAPL_DBG_TYPE_EP            = 0x0010,\r
61     DAPL_DBG_TYPE_UTIL          = 0x0020,\r
62     DAPL_DBG_TYPE_CALLBACK      = 0x0040,\r
63     DAPL_DBG_TYPE_DTO_COMP_ERR  = 0x0080,\r
64     DAPL_DBG_TYPE_API           = 0x0100,\r
65     DAPL_DBG_TYPE_RTN           = 0x0200,\r
66     DAPL_DBG_TYPE_EXCEPTION     = 0x0400,\r
67     DAPL_DBG_TYPE_SRQ           = 0x0800,\r
68     DAPL_DBG_TYPE_CNTR          = 0x1000,\r
69         DAPL_DBG_EVD_DEQUEUE    = 0x2000\r
70 \r
71 } DAPL_DBG_TYPE;\r
72 \r
73 typedef enum\r
74 {\r
75     DAPL_DBG_DEST_STDOUT        = 0x0001,\r
76     DAPL_DBG_DEST_SYSLOG        = 0x0002,\r
77 } DAPL_DBG_DEST;\r
78 \r
79 extern DAPL_DBG_TYPE    g_dapl_dbg_type;\r
80 extern DAPL_DBG_DEST    g_dapl_dbg_dest;\r
81 \r
82 extern void dapl_internal_dbg_log(DAPL_DBG_TYPE type,  const char *fmt,  ...);\r
83 \r
84 #define dapl_log g_dapl_dbg_type==0 ? (void) 1 : dapl_internal_dbg_log\r
85 \r
86 #if defined(DAPL_DBG)\r
87 \r
88 #define dapl_dbg_log g_dapl_dbg_type==0 ? (void) 1 : dapl_internal_dbg_log\r
89 \r
90 #else  /* !DAPL_DBG */\r
91 \r
92 #if defined(_WIN32) || defined(_WIN64)\r
93 /* sigh - no support for (...) in macros. Compiler should optimize this away */\r
94 static __inline void dapl_dbg_log ( DAPL_DBG_TYPE type,  const char *fmt,  ...)\r
95 {\r
96 }\r
97 #else\r
98 #define dapl_dbg_log(...)\r
99 #endif\r
100 \r
101 #endif /* !DAPL_DBG */\r
102 \r
103 #include <dat/dat_ib_extensions.h>\r
104 \r
105 #ifdef DAPL_COUNTERS\r
106 \r
107 #define DAPL_CNTR(h_ptr, cntr) ((DAT_UINT64*)h_ptr->cntrs)[cntr]++\r
108 #define DAPL_CNTR_DATA(h_ptr, cntr, data) ((DAT_UINT64*)h_ptr->cntrs)[cntr]+= data\r
109 \r
110 DAT_RETURN dapl_query_counter(DAT_HANDLE dh, \r
111                               int counter, \r
112                               void *p_cntrs_out,\r
113                               int reset);\r
114 char *dapl_query_counter_name(DAT_HANDLE dh, int counter);\r
115 void dapl_print_counter(DAT_HANDLE dh, int counter, int reset);\r
116 \r
117 #else\r
118 \r
119 #define DAPL_CNTR(handle, cntr)\r
120 #define DAPL_CNTR_DATA(handle, cntr, data)\r
121 \r
122 #endif /* DAPL_COUNTERS */\r
123 \r
124 #endif /* _DAPL_DEBUG_H_ */\r