xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852be/phl/phl_wpp.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /******************************************************************************
2*4882a593Smuzhiyun  *
3*4882a593Smuzhiyun  * Copyright(c) 2020 Realtek Corporation.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * This program is free software; you can redistribute it and/or modify it
6*4882a593Smuzhiyun  * under the terms of version 2 of the GNU General Public License as
7*4882a593Smuzhiyun  * published by the Free Software Foundation.
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  * This program is distributed in the hope that it will be useful, but WITHOUT
10*4882a593Smuzhiyun  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11*4882a593Smuzhiyun  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12*4882a593Smuzhiyun  * more details.
13*4882a593Smuzhiyun  *
14*4882a593Smuzhiyun  *****************************************************************************/
15*4882a593Smuzhiyun #pragma once
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #ifndef PHL_WPP_H
18*4882a593Smuzhiyun #define PHL_WPP_H
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun #define PHL_WPP_CONTROL_GUID\
21*4882a593Smuzhiyun 	WPP_DEFINE_CONTROL_GUID( \
22*4882a593Smuzhiyun 		rtPhlGuid, (16D085D0,69AD,41FD,94E1,77667C0C6664), \
23*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_DBG) \
24*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_RECV) \
25*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_XMIT) \
26*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_MAC) \
27*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_SOUND)\
28*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_WOW)\
29*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_TRIG)\
30*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_PKTOFLD)\
31*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_FSM)\
32*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_PS)\
33*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_PSTS)\
34*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_LED)\
35*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_BB)\
36*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_RF)\
37*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_MCC)\
38*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_P2PPS)\
39*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_ECSA)\
40*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_CMDDISP)\
41*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_BTC)\
42*4882a593Smuzhiyun 		WPP_DEFINE_BIT(COMP_PHL_TWT)\
43*4882a593Smuzhiyun 		) \
44*4882a593Smuzhiyun 		HALMAC_WPP_CONTROL_GUIDS \
45*4882a593Smuzhiyun 		HALBB_WPP_CONTROL_GUIDS
46*4882a593Smuzhiyun 		//HALRF_WPP_CONTROL_GUIDS
47*4882a593Smuzhiyun /*
48*4882a593Smuzhiyun  * Note that the comment blocks begin with "begin_wpp" and end with "end_wpp"
49*4882a593Smuzhiyun  * will be scanned by the trace preprocessor to define our trace function.
50*4882a593Smuzhiyun  */
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL_ENABLED
53*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_ENABLED(COMPID, LEVEL)	  \
54*4882a593Smuzhiyun 	((WPP_CONTROL(WPP_BIT_ ## COMPID).Level >= LEVEL) && \
55*4882a593Smuzhiyun 	 (WPP_CONTROL(WPP_BIT_ ## COMPID).Flags[WPP_FLAG_NO(WPP_BIT_ ## COMPID)] & \
56*4882a593Smuzhiyun 	  WPP_MASK(WPP_BIT_ ## COMPID)))
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL_LOGGER
59*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_LOGGER(COMPID, LEVEL)	  \
60*4882a593Smuzhiyun 	(WPP_CONTROL(WPP_BIT_ ## COMPID).Logger),
61*4882a593Smuzhiyun 
62*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL__sts_ENABLED
63*4882a593Smuzhiyun #define WPP_COMPID_LEVEL__sts_ENABLED(COMPID, LEVEL, _sts)	  \
64*4882a593Smuzhiyun 	((WPP_CONTROL(WPP_BIT_ ## COMPID).Level >= LEVEL) && \
65*4882a593Smuzhiyun 	 (WPP_CONTROL(WPP_BIT_ ## COMPID).Flags[WPP_FLAG_NO(WPP_BIT_ ## COMPID)] & \
66*4882a593Smuzhiyun 	  WPP_MASK(WPP_BIT_ ## COMPID)))
67*4882a593Smuzhiyun 
68*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL__sts_LOGGER
69*4882a593Smuzhiyun #define WPP_COMPID_LEVEL__sts_LOGGER(COMPID, LEVEL, _sts)	  \
70*4882a593Smuzhiyun 	(WPP_CONTROL(WPP_BIT_ ## COMPID).Logger),
71*4882a593Smuzhiyun 
72*4882a593Smuzhiyun /*
73*4882a593Smuzhiyun  * begin_wpp config
74*4882a593Smuzhiyun  *
75*4882a593Smuzhiyun  * USEPREFIX (PHL_TRACE, "%!STDPREFIX! %s", PHL_PREFIX);
76*4882a593Smuzhiyun  * FUNC PHL_TRACE{}(COMPID, LEVEL, MSG,...);
77*4882a593Smuzhiyun  *
78*4882a593Smuzhiyun  * FUNC PHL_DATA{}(COMPID, LEVEL, MSG,...);
79*4882a593Smuzhiyun  *
80*4882a593Smuzhiyun  * USEPREFIX (PHL_ERR, "%!STDPREFIX! %s ERROR\t", PHL_PREFIX);
81*4882a593Smuzhiyun  * FUNC PHL_ERR{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_ERROR}(MSG,...);
82*4882a593Smuzhiyun  *
83*4882a593Smuzhiyun  * USEPREFIX (PHL_PRINT, "%!STDPREFIX! %s", PHL_PREFIX);
84*4882a593Smuzhiyun  * FUNC PHL_PRINT{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_CRITICAL}(MSG,...);
85*4882a593Smuzhiyun  *
86*4882a593Smuzhiyun  * USEPREFIX (PHL_WARN, "%!STDPREFIX! %s WARN\t", PHL_PREFIX);
87*4882a593Smuzhiyun  * FUNC PHL_WARN{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_WARNING}(MSG,...);
88*4882a593Smuzhiyun  *
89*4882a593Smuzhiyun  * USEPREFIX (PHL_INFO, "%!STDPREFIX! %s INFO\t", PHL_PREFIX);
90*4882a593Smuzhiyun  * FUNC PHL_INFO{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_INFORMATION}(MSG,...);
91*4882a593Smuzhiyun  *
92*4882a593Smuzhiyun  * USEPREFIX (PHL_DBG, "%!STDPREFIX! %s", PHL_PREFIX);
93*4882a593Smuzhiyun  * FUNC PHL_DBG{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_VERBOSE}(MSG,...);
94*4882a593Smuzhiyun  *
95*4882a593Smuzhiyun  * USEPREFIX (FUNCIN, "%!STDPREFIX! %s", PHL_PREFIX);
96*4882a593Smuzhiyun  * FUNC FUNCIN{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_VERBOSE}();
97*4882a593Smuzhiyun  * USESUFFIX(FUNCIN, "Enter %!FUNC!");
98*4882a593Smuzhiyun  *
99*4882a593Smuzhiyun  * USEPREFIX (FUNCOUT, "%!STDPREFIX! %s", PHL_PREFIX);
100*4882a593Smuzhiyun  * FUNC FUNCOUT{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_VERBOSE}();
101*4882a593Smuzhiyun  * USESUFFIX(FUNCOUT, "Leave %!FUNC!");
102*4882a593Smuzhiyun  *
103*4882a593Smuzhiyun  * CUSTOM_TYPE(RTW_PHL_STATUS, ItemEnum(rtw_phl_status) );
104*4882a593Smuzhiyun  * USEPREFIX (FUNCIN_WSTS, "%!STDPREFIX! %s", PHL_PREFIX);
105*4882a593Smuzhiyun  * FUNC FUNCIN_WSTS{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_VERBOSE}(_sts);
106*4882a593Smuzhiyun  * USESUFFIX(FUNCIN_WSTS, "Enter with %!RTW_PHL_STATUS! %!FUNC!", _sts);
107*4882a593Smuzhiyun  *
108*4882a593Smuzhiyun  * USEPREFIX (FUNCOUT_WSTS, "%!STDPREFIX! %s", PHL_PREFIX);
109*4882a593Smuzhiyun  * FUNC FUNCOUT_WSTS{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_VERBOSE}(_sts);
110*4882a593Smuzhiyun  * USESUFFIX(FUNCOUT_WSTS, "Leave with %!RTW_PHL_STATUS! %!FUNC!", _sts);
111*4882a593Smuzhiyun  *
112*4882a593Smuzhiyun  * USEPREFIX (BB_TRACE, "%!STDPREFIX! [BB]\t");
113*4882a593Smuzhiyun  * FUNC BB_TRACE{COMPID=COMP_PHL_BB, LEVEL=TRACE_LEVEL_INFORMATION}(MSG,...);
114*4882a593Smuzhiyun  *
115*4882a593Smuzhiyun  * USEPREFIX (BB_WARNING, "%!STDPREFIX! [BB][WARN]\t");
116*4882a593Smuzhiyun  * FUNC BB_WARNING{COMPID=COMP_PHL_BB, LEVEL=TRACE_LEVEL_WARNING}(MSG,...);
117*4882a593Smuzhiyun  *
118*4882a593Smuzhiyun  * USEPREFIX (RF_TRACE, "%!STDPREFIX! [RF]\t");
119*4882a593Smuzhiyun  * FUNC RF_TRACE{COMPID=COMP_PHL_RF, LEVEL=TRACE_LEVEL_INFORMATION}(MSG,...);
120*4882a593Smuzhiyun  *
121*4882a593Smuzhiyun  * USEPREFIX (RF_WARNING, "%!STDPREFIX! [RF][WARN]\t");
122*4882a593Smuzhiyun  * FUNC RF_WARNING{COMPID=COMP_PHL_RF, LEVEL=TRACE_LEVEL_WARNING}(MSG,...);
123*4882a593Smuzhiyun  *
124*4882a593Smuzhiyun  * end_wpp
125*4882a593Smuzhiyun  */
126*4882a593Smuzhiyun 
127*4882a593Smuzhiyun /*
128*4882a593Smuzhiyun  * begin_wpp config
129*4882a593Smuzhiyun  *
130*4882a593Smuzhiyun  * USEPREFIX (PLTFM_MSG_ERR, "%!STDPREFIX! [MAC][ERR]\t");
131*4882a593Smuzhiyun  * FUNC PLTFM_MSG_ERR{COMPID=COMP_PHL_MAC, LEVEL=TRACE_LEVEL_ERROR}(MSG,...);
132*4882a593Smuzhiyun  *
133*4882a593Smuzhiyun  * USEPREFIX (PLTFM_MSG_ALWAYS, "%!STDPREFIX! [MAC]\t");
134*4882a593Smuzhiyun  * FUNC PLTFM_MSG_ALWAYS{COMPID=COMP_PHL_MAC, LEVEL=TRACE_LEVEL_CRITICAL}(MSG,...);
135*4882a593Smuzhiyun  *
136*4882a593Smuzhiyun  * USEPREFIX (PLTFM_MSG_WARN, "%!STDPREFIX! [MAC][WARN]\t");
137*4882a593Smuzhiyun  * FUNC PLTFM_MSG_WARN{COMPID=COMP_PHL_MAC, LEVEL=TRACE_LEVEL_WARNING}(MSG,...);
138*4882a593Smuzhiyun  *
139*4882a593Smuzhiyun  * USEPREFIX (PLTFM_MSG_TRACE, "%!STDPREFIX! [MAC][TRACE]\t");
140*4882a593Smuzhiyun  * FUNC PLTFM_MSG_TRACE{COMPID=COMP_PHL_MAC, LEVEL=TRACE_LEVEL_INFORMATION}(MSG,...);
141*4882a593Smuzhiyun  *
142*4882a593Smuzhiyun  * end_wpp
143*4882a593Smuzhiyun  */
144*4882a593Smuzhiyun 
145*4882a593Smuzhiyun #ifdef CONFIG_FSM
146*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL_FSM_ENABLED
147*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_FSM_ENABLED(COMPID, LEVEL, FSM)	  \
148*4882a593Smuzhiyun 	((!FSM || phl_fsm_dbg_level(FSM, LEVEL) || \
149*4882a593Smuzhiyun 	  LEVEL == TRACE_LEVEL_ERROR || LEVEL == TRACE_LEVEL_WARNING) && \
150*4882a593Smuzhiyun 	 (WPP_CONTROL(WPP_BIT_ ## COMPID).Level >= LEVEL) && \
151*4882a593Smuzhiyun 	 (WPP_CONTROL(WPP_BIT_ ## COMPID).Flags[WPP_FLAG_NO(WPP_BIT_ ## COMPID)] & \
152*4882a593Smuzhiyun 	  WPP_MASK(WPP_BIT_ ## COMPID)))
153*4882a593Smuzhiyun 
154*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL_FSM_LOGGER
155*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_FSM_LOGGER(COMPID, LEVEL, FSM)	  \
156*4882a593Smuzhiyun 	(WPP_CONTROL(WPP_BIT_ ## COMPID).Logger),
157*4882a593Smuzhiyun #endif
158*4882a593Smuzhiyun /*
159*4882a593Smuzhiyun  * begin_wpp config
160*4882a593Smuzhiyun  *
161*4882a593Smuzhiyun  * USEPREFIX (FSM_ERR, "%!STDPREFIX! %s ERROR\t", PHL_PREFIX);
162*4882a593Smuzhiyun  * FUNC FSM_ERR{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_ERROR}(FSM,MSG,...);
163*4882a593Smuzhiyun  *
164*4882a593Smuzhiyun  * USEPREFIX (FSM_WARN, "%!STDPREFIX! %s WARN\t", PHL_PREFIX);
165*4882a593Smuzhiyun  * FUNC FSM_WARN{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_WARNING}(FSM,MSG,...);
166*4882a593Smuzhiyun  *
167*4882a593Smuzhiyun  * USEPREFIX (FSM_PRINT, "%!STDPREFIX! %s", PHL_PREFIX);
168*4882a593Smuzhiyun  * FUNC FSM_PRINT{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_CRITICAL}(FSM,MSG,...);
169*4882a593Smuzhiyun  *
170*4882a593Smuzhiyun  * USEPREFIX (FSM_INFO, "%!STDPREFIX! %s INFO\t", PHL_PREFIX);
171*4882a593Smuzhiyun  * FUNC FSM_INFO{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_INFORMATION}(FSM,MSG,...);
172*4882a593Smuzhiyun  *
173*4882a593Smuzhiyun  * USEPREFIX (FSM_DBG, "%!STDPREFIX! %s", PHL_PREFIX);
174*4882a593Smuzhiyun  * FUNC FSM_DBG{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_VERBOSE}(FSM,MSG,...);
175*4882a593Smuzhiyun  *
176*4882a593Smuzhiyun  * end_wpp
177*4882a593Smuzhiyun  */
178*4882a593Smuzhiyun 
179*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL_opsfun_ENABLED
180*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_opsfun_ENABLED(COMPID, LEVEL, opsfun)	  \
181*4882a593Smuzhiyun 	((WPP_CONTROL(WPP_BIT_ ## COMPID).Level >= LEVEL) && \
182*4882a593Smuzhiyun 	 (WPP_CONTROL(WPP_BIT_ ## COMPID).Flags[WPP_FLAG_NO(WPP_BIT_ ## COMPID)] & \
183*4882a593Smuzhiyun 	  WPP_MASK(WPP_BIT_ ## COMPID)))
184*4882a593Smuzhiyun 
185*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL_opsfun_LOGGER
186*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_opsfun_LOGGER(COMPID, LEVEL, opsfun)	  \
187*4882a593Smuzhiyun 	(WPP_CONTROL(WPP_BIT_ ## COMPID).Logger),
188*4882a593Smuzhiyun 
189*4882a593Smuzhiyun /*
190*4882a593Smuzhiyun  * begin_wpp config
191*4882a593Smuzhiyun  *
192*4882a593Smuzhiyun  * USEPREFIX (phl_ops_error_msg, "%!STDPREFIX! %s", PHL_PREFIX);
193*4882a593Smuzhiyun  * FUNC phl_ops_error_msg{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_ERROR}(opsfun);
194*4882a593Smuzhiyun  * USESUFFIX(phl_ops_error_msg, "### %!FUNC! - Please hook phl_hci_ops.%s ###\n", opsfun);
195*4882a593Smuzhiyun  *
196*4882a593Smuzhiyun  * USEPREFIX (hal_error_msg, "%!STDPREFIX! %s", PHL_PREFIX);
197*4882a593Smuzhiyun  * FUNC hal_error_msg{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_ERROR}(opsfun);
198*4882a593Smuzhiyun  * USESUFFIX(hal_error_msg, "### %!FUNC! - Error : Please hook hal_ops.%s ###\n", opsfun);
199*4882a593Smuzhiyun  *
200*4882a593Smuzhiyun  * end_wpp
201*4882a593Smuzhiyun  */
202*4882a593Smuzhiyun 
203*4882a593Smuzhiyun /*
204*4882a593Smuzhiyun  * Define the 'xstr' structure for logging buffer and length pairs
205*4882a593Smuzhiyun  * and the 'log_xstr' function which returns it to create one in-place.
206*4882a593Smuzhiyun  * this enables logging of complex data types.
207*4882a593Smuzhiyun  */
208*4882a593Smuzhiyun 
209*4882a593Smuzhiyun typedef struct xstr { char * _buf; size_t  _len; } xstr_t;
log_xstr(void * p,size_t l)210*4882a593Smuzhiyun __inline xstr_t log_xstr(void * p, size_t l)
211*4882a593Smuzhiyun {
212*4882a593Smuzhiyun 	xstr_t xs;
213*4882a593Smuzhiyun 	xs._buf = (char *)p;
214*4882a593Smuzhiyun 	xs._len = l;
215*4882a593Smuzhiyun 	return xs;
216*4882a593Smuzhiyun }
217*4882a593Smuzhiyun 
218*4882a593Smuzhiyun #define WPP_LOGHEXDUMP(x) WPP_LOGPAIR(2, &((x)._len)) WPP_LOGPAIR((x)._len, (x)._buf)
219*4882a593Smuzhiyun 
220*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL_BUF_LEN_PREFIX_ENABLED
221*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_BUF_LEN_PREFIX_ENABLED(COMPID, LEVEL, BUF, LEN, PREFIX) \
222*4882a593Smuzhiyun 	((WPP_CONTROL(WPP_BIT_ ## COMPID).Level >= LEVEL) && \
223*4882a593Smuzhiyun 	 (WPP_CONTROL(WPP_BIT_ ## COMPID).Flags[WPP_FLAG_NO(WPP_BIT_ ## COMPID)] & \
224*4882a593Smuzhiyun 	  WPP_MASK(WPP_BIT_ ## COMPID)))
225*4882a593Smuzhiyun 
226*4882a593Smuzhiyun #undef WPP_COMPID_LEVEL_BUF_LEN_PREFIX_LOGGER
227*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_BUF_LEN_PREFIX_LOGGER(COMPID, LEVEL, BUF, LEN, PREFIX) \
228*4882a593Smuzhiyun 	(WPP_CONTROL(WPP_BIT_ ## COMPID).Logger),
229*4882a593Smuzhiyun 
230*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_BUF_LEN_PREFIX_PRE(COMPID, LEVEL, BUF, LEN, PREFIX) \
231*4882a593Smuzhiyun 	{ if (BUF != NULL) { \
232*4882a593Smuzhiyun 
233*4882a593Smuzhiyun #define WPP_COMPID_LEVEL_BUF_LEN_PREFIX_POST(COMPID, LEVEL, BUF, LEN, PREFIX) \
234*4882a593Smuzhiyun 	/* TraceMessage() */; }}
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun /*
237*4882a593Smuzhiyun  * begin_wpp config
238*4882a593Smuzhiyun  *
239*4882a593Smuzhiyun  * DEFINE_CPLX_TYPE(HEXDUMP, WPP_LOGHEXDUMP, xstr_t, ItemHEXDump, "s", _HEX_, 0, 2);
240*4882a593Smuzhiyun  * USEPREFIX (debug_dump_data, "%!STDPREFIX! %s\t[debug dump] %s", PHL_PREFIX, PREFIX);
241*4882a593Smuzhiyun  * FUNC debug_dump_data{COMPID=COMP_PHL_DBG, LEVEL=TRACE_LEVEL_INFORMATION}(BUF,LEN, PREFIX);
242*4882a593Smuzhiyun  * USESUFFIX(debug_dump_data, "%!HEXDUMP!", log_xstr(BUF, LEN));
243*4882a593Smuzhiyun  *
244*4882a593Smuzhiyun  * end_wpp
245*4882a593Smuzhiyun  */
246*4882a593Smuzhiyun 
247*4882a593Smuzhiyun #undef WPP_LEVEL_BB_COMPID_ENABLED
248*4882a593Smuzhiyun #define WPP_LEVEL_BB_COMPID_ENABLED(LEVEL, BB, COMPID)	  \
249*4882a593Smuzhiyun 	((WPP_CONTROL(WPP_BIT_ ## COMPID).Level >= LEVEL) && \
250*4882a593Smuzhiyun 	 (WPP_CONTROL(WPP_BIT_ ## COMPID).Flags[WPP_FLAG_NO(WPP_BIT_ ## COMPID)] & \
251*4882a593Smuzhiyun 	  WPP_MASK(WPP_BIT_ ## COMPID)))
252*4882a593Smuzhiyun 
253*4882a593Smuzhiyun #undef WPP_LEVEL_BB_COMPID_LOGGER
254*4882a593Smuzhiyun #define WPP_LEVEL_BB_COMPID_LOGGER(LEVEL, BB, COMPID)	  \
255*4882a593Smuzhiyun 	(WPP_CONTROL(WPP_BIT_ ## COMPID).Logger),
256*4882a593Smuzhiyun 
257*4882a593Smuzhiyun /*
258*4882a593Smuzhiyun  * begin_wpp config
259*4882a593Smuzhiyun  *
260*4882a593Smuzhiyun  * USEPREFIX (BB_DBG, "%!STDPREFIX! [BB]\t");
261*4882a593Smuzhiyun  * FUNC BB_DBG{LEVEL=TRACE_LEVEL_INFORMATION}(BB, COMPID, MSG,...);
262*4882a593Smuzhiyun  *
263*4882a593Smuzhiyun  * end_wpp
264*4882a593Smuzhiyun  */
265*4882a593Smuzhiyun 
266*4882a593Smuzhiyun 
267*4882a593Smuzhiyun #undef WPP_LEVEL_RF_COMPID_ENABLED
268*4882a593Smuzhiyun #define WPP_LEVEL_RF_COMPID_ENABLED(LEVEL, RF, COMPID)	  \
269*4882a593Smuzhiyun 	((WPP_CONTROL(WPP_BIT_ ## COMPID).Level >= LEVEL) && \
270*4882a593Smuzhiyun 	(WPP_CONTROL(WPP_BIT_ ## COMPID).Flags[WPP_FLAG_NO(WPP_BIT_ ## COMPID)] & \
271*4882a593Smuzhiyun 	WPP_MASK(WPP_BIT_ ## COMPID)))
272*4882a593Smuzhiyun 
273*4882a593Smuzhiyun #undef WPP_LEVEL_RF_COMPID_LOGGER
274*4882a593Smuzhiyun #define WPP_LEVEL_RF_COMPID_LOGGER(LEVEL, RF, COMPID)	  \
275*4882a593Smuzhiyun 	(WPP_CONTROL(WPP_BIT_ ## COMPID).Logger),
276*4882a593Smuzhiyun 
277*4882a593Smuzhiyun /*
278*4882a593Smuzhiyun  * begin_wpp config
279*4882a593Smuzhiyun  *
280*4882a593Smuzhiyun  * USEPREFIX (RF_DBG, "%!STDPREFIX! [RF]\t");
281*4882a593Smuzhiyun  * FUNC RF_DBG{LEVEL=TRACE_LEVEL_INFORMATION}(RF, COMPID, MSG,...);
282*4882a593Smuzhiyun  *
283*4882a593Smuzhiyun  * end_wpp
284*4882a593Smuzhiyun  */
285*4882a593Smuzhiyun 
286*4882a593Smuzhiyun #endif
287