Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: chromeos/drivers/ath6kl/include/a_debug.h

Issue 646055: Atheros AR600x driver + build glue (Closed)
Patch Set: Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chromeos/drivers/ath6kl/include/a_config.h ('k') | chromeos/drivers/ath6kl/include/a_drv.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 //------------------------------------------------------------------------------
2 // <copyright file="a_debug.h" company="Atheros">
3 // Copyright (c) 2004-2008 Atheros Corporation. All rights reserved.
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License version 2 as
7 // published by the Free Software Foundation;
8 //
9 // Software distributed under the License is distributed on an "AS
10 // IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
11 // implied. See the License for the specific language governing
12 // rights and limitations under the License.
13 //
14 //
15 //------------------------------------------------------------------------------
16 //==============================================================================
17 // Author(s): ="Atheros"
18 //==============================================================================
19 #ifndef _A_DEBUG_H_
20 #define _A_DEBUG_H_
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif /* __cplusplus */
25
26 #include <a_types.h>
27 #include <a_osapi.h>
28
29 /* standard debug print masks bits 0..7 */
30 #define ATH_DEBUG_ERR (1 << 0) /* errors */
31 #define ATH_DEBUG_WARN (1 << 1) /* warnings */
32 #define ATH_DEBUG_INFO (1 << 2) /* informational (module startup info) */
33 #define ATH_DEBUG_TRC (1 << 3) /* generic function call tracing */
34 #define ATH_DEBUG_RSVD1 (1 << 4)
35 #define ATH_DEBUG_RSVD2 (1 << 5)
36 #define ATH_DEBUG_RSVD3 (1 << 6)
37 #define ATH_DEBUG_RSVD4 (1 << 7)
38
39 #define ATH_DEBUG_MASK_DEFAULTS (ATH_DEBUG_ERR | ATH_DEBUG_WARN)
40 #define ATH_DEBUG_ANY 0xFFFF
41
42 /* other aliases used throughout */
43 #define ATH_DEBUG_ERROR ATH_DEBUG_ERR
44 #define ATH_LOG_ERR ATH_DEBUG_ERR
45 #define ATH_LOG_INF ATH_DEBUG_INFO
46 #define ATH_LOG_TRC ATH_DEBUG_TRC
47 #define ATH_DEBUG_TRACE ATH_DEBUG_TRC
48 #define ATH_DEBUG_INIT ATH_DEBUG_INFO
49
50 /* bits 8..31 are module-specific masks */
51 #define ATH_DEBUG_MODULE_MASK_SHIFT 8
52
53 /* macro to make a module-specific masks */
54 #define ATH_DEBUG_MAKE_MODULE_MASK(index) (1 << (ATH_DEBUG_MODULE_MASK_SHIFT + (index)))
55
56 void DebugDumpBytes(A_UCHAR *buffer, A_UINT16 length, char *pDescription);
57
58 /* Debug support on a per-module basis
59 *
60 * Usage:
61 *
62 * Each module can utilize it's own debug mask variable. A set of commonly us ed
63 * masks are provided (ERRORS, WARNINGS, TRACE etc..). It is up to each modul e
64 * to define module-specific masks using the macros above.
65 *
66 * Each module defines a single debug mask variable debug_XXX where the "name" of the module is
67 * common to all C-files within that module. This requires every C-file that includes a_debug.h
68 * to define the module name in that file.
69 *
70 * Example:
71 *
72 * #define ATH_MODULE_NAME htc
73 * #include "a_debug.h"
74 *
75 * This will define a debug mask structure called debug_htc and all debug macr os will reference this
76 * variable.
77 *
78 * A module can define module-specific bit masks using the ATH_DEBUG_MAKE_MODU LE_MASK() macro:
79 *
80 * #define ATH_DEBUG_MY_MASK1 ATH_DEBUG_MAKE_MODULE_MASK(0)
81 * #define ATH_DEBUG_MY_MASK2 ATH_DEBUG_MAKE_MODULE_MASK(1)
82 *
83 * The instantiation of the debug structure should be made by the module. Whe n a module is
84 * instantiated, the module can set a description string, a default mask and a n array of description
85 * entries containing information on each module-defined debug mask.
86 * NOTE: The instantiation is statically allocated, only one instance can exis t per module.
87 *
88 * Example:
89 *
90 *
91 * #define ATH_DEBUG_BMI ATH_DEBUG_MAKE_MODULE_MASK(0)
92 *
93 * #ifdef DEBUG
94 * static ATH_DEBUG_MASK_DESCRIPTION bmi_debug_desc[] = {
95 * { ATH_DEBUG_BMI , "BMI Tracing"}, <== description of the module speci fic mask
96 * };
97 *
98 * ATH_DEBUG_INSTANTIATE_MODULE_VAR(bmi,
99 * "bmi" <== module name
100 * "Boot Manager Interface", <== description of module
101 * ATH_DEBUG_MASK_DEFAULTS, <== defa ults
102 * ATH_DEBUG_DESCRIPTION_COUNT(bmi_debug_desc ),
103 * bmi_debug_desc);
104 *
105 * #endif
106 *
107 * A module can optionally register it's debug module information in order for other tools to change the
108 * bit mask at runtime. A module can call A_REGISTER_MODULE_DEBUG_INFO() in i t's module
109 * init code. This macro can be called multiple times without consequence. Th e debug info maintains
110 * state to indicate whether the information was previously registered.
111 *
112 * */
113
114 #define ATH_DEBUG_MAX_MASK_DESC_LENGTH 32
115 #define ATH_DEBUG_MAX_MOD_DESC_LENGTH 64
116
117 typedef struct {
118 A_UINT32 Mask;
119 A_CHAR Description[ATH_DEBUG_MAX_MASK_DESC_LENGTH];
120 } ATH_DEBUG_MASK_DESCRIPTION;
121
122 #define ATH_DEBUG_INFO_FLAGS_REGISTERED (1 << 0)
123
124 typedef struct _ATH_DEBUG_MODULE_DBG_INFO{
125 struct _ATH_DEBUG_MODULE_DBG_INFO *pNext;
126 A_CHAR ModuleName[16];
127 A_CHAR ModuleDescription[ATH_DEBUG_MAX_MOD_DESC_LENGTH] ;
128 A_UINT32 Flags;
129 A_UINT32 CurrentMask;
130 int MaxDescriptions;
131 ATH_DEBUG_MASK_DESCRIPTION *pMaskDescriptions; /* pointer to array of descr iptions */
132 } ATH_DEBUG_MODULE_DBG_INFO;
133
134 #define ATH_DEBUG_DESCRIPTION_COUNT(d) (int)((sizeof((d))) / (sizeof(ATH_DEBUG_ MASK_DESCRIPTION)))
135
136 #define GET_ATH_MODULE_DEBUG_VAR_NAME(s) _XGET_ATH_MODULE_NAME_DEBUG_(s)
137 #define GET_ATH_MODULE_DEBUG_VAR_MASK(s) _XGET_ATH_MODULE_NAME_DEBUG_(s).Current Mask
138 #define _XGET_ATH_MODULE_NAME_DEBUG_(s) debug_ ## s
139
140 #ifdef DEBUG
141
142 /* for source files that will instantiate the debug variables */
143 #define ATH_DEBUG_INSTANTIATE_MODULE_VAR(s,name,moddesc,initmask,count,descripti ons) \
144 ATH_DEBUG_MODULE_DBG_INFO GET_ATH_MODULE_DEBUG_VAR_NAME(s) = \
145 {NULL,(name),(moddesc),0,(initmask),count,(descriptions)}
146
147 #ifdef ATH_MODULE_NAME
148 extern ATH_DEBUG_MODULE_DBG_INFO GET_ATH_MODULE_DEBUG_VAR_NAME(ATH_MODULE_NAME);
149 #define AR_DEBUG_LVL_CHECK(lvl) (GET_ATH_MODULE_DEBUG_VAR_MASK(ATH_MODULE_NAME) & (lvl))
150 #endif /* ATH_MODULE_NAME */
151
152 #define ATH_DEBUG_SET_DEBUG_MASK(s,lvl) GET_ATH_MODULE_DEBUG_VAR_MASK(s) = (lvl)
153
154 #define ATH_DEBUG_DECLARE_EXTERN(s) \
155 extern ATH_DEBUG_MODULE_DBG_INFO GET_ATH_MODULE_DEBUG_VAR_NAME(s)
156
157 #define AR_DEBUG_PRINTBUF(buffer, length, desc) DebugDumpBytes(buffer,length,des c)
158
159
160 #define AR_DEBUG_ASSERT A_ASSERT
161
162 void a_dump_module_debug_info(ATH_DEBUG_MODULE_DBG_INFO *pInfo);
163 void a_register_module_debug_info(ATH_DEBUG_MODULE_DBG_INFO *pInfo);
164 #define A_DUMP_MODULE_DEBUG_INFO(s) a_dump_module_debug_info(&(GET_ATH_MODULE_DE BUG_VAR_NAME(s)))
165 #define A_REGISTER_MODULE_DEBUG_INFO(s) a_register_module_debug_info(&(GET_ATH_M ODULE_DEBUG_VAR_NAME(s)))
166
167 #else /* !DEBUG */
168 /* NON DEBUG */
169 #define ATH_DEBUG_INSTANTIATE_MODULE_VAR(s,name,moddesc,initmask,count,descripti ons)
170 #define AR_DEBUG_LVL_CHECK(lvl) 0
171 #define AR_DEBUG_PRINTBUF(buffer, length, desc)
172 #define AR_DEBUG_ASSERT(test)
173 #define ATH_DEBUG_DECLARE_EXTERN(s)
174 #define ATH_DEBUG_SET_DEBUG_MASK(s,lvl)
175 #define A_DUMP_MODULE_DEBUG_INFO(s)
176 #define A_REGISTER_MODULE_DEBUG_INFO(s)
177
178 #endif
179
180 A_STATUS a_get_module_mask(A_CHAR *module_name, A_UINT32 *pMask);
181 A_STATUS a_set_module_mask(A_CHAR *module_name, A_UINT32 Mask);
182 void a_dump_module_debug_info_by_name(A_CHAR *module_name);
183 void a_module_debug_support_init(void);
184 void a_module_debug_support_cleanup(void);
185
186 #ifdef UNDER_NWIFI
187 #include "../os/windows/include/debug.h"
188 #endif
189
190 #ifdef ATHR_CE_LEGACY
191 #include "../os/windows/include/debug.h"
192 #endif
193
194 #if defined(__linux__) && !defined(LINUX_EMULATION)
195 #include "../os/linux/include/debug_linux.h"
196 #endif
197
198 #ifdef REXOS
199 #include "../os/rexos/include/common/debug_rexos.h"
200 #endif
201
202 #if defined ART_WIN
203 #include "../os/win_art/include/debug_win.h"
204 #endif
205
206 #ifdef WIN_NWF
207 #include <debug_win.h>
208 #endif
209
210
211 #ifdef __cplusplus
212 }
213 #endif /* __cplusplus */
214
215 #endif
OLDNEW
« no previous file with comments | « chromeos/drivers/ath6kl/include/a_config.h ('k') | chromeos/drivers/ath6kl/include/a_drv.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698