• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #if !defined(NXPLOG__H_INCLUDED)
18 #define NXPLOG__H_INCLUDED
19 
20 #include <log/log.h>
21 
22 typedef struct nci_log_level {
23   uint8_t global_log_level;
24   uint8_t extns_log_level;
25   uint8_t hal_log_level;
26   uint8_t dnld_log_level;
27   uint8_t tml_log_level;
28   uint8_t ncix_log_level;
29   uint8_t ncir_log_level;
30 } nci_log_level_t;
31 
32 /* global log level Ref */
33 extern nci_log_level_t gLog_level;
34 
35 /* define log module included when compile */
36 #define ENABLE_HAL_TRACES TRUE
37 #define ENABLE_TML_TRACES TRUE
38 #define ENABLE_FWDNLD_TRACES TRUE
39 #define ENABLE_NCIX_TRACES TRUE
40 #define ENABLE_NCIR_TRACES TRUE
41 
42 #define ENABLE_HCPX_TRACES FALSE
43 #define ENABLE_HCPR_TRACES FALSE
44 
45 /* ####################### Set the log module name in .conf file
46  * ########################## */
47 #define NAME_NXPLOG_EXTNS_LOGLEVEL "NXPLOG_EXTNS_LOGLEVEL"
48 #define NAME_NXPLOG_HAL_LOGLEVEL "NXPLOG_NCIHAL_LOGLEVEL"
49 #define NAME_NXPLOG_NCIX_LOGLEVEL "NXPLOG_NCIX_LOGLEVEL"
50 #define NAME_NXPLOG_NCIR_LOGLEVEL "NXPLOG_NCIR_LOGLEVEL"
51 #define NAME_NXPLOG_FWDNLD_LOGLEVEL "NXPLOG_FWDNLD_LOGLEVEL"
52 #define NAME_NXPLOG_TML_LOGLEVEL "NXPLOG_TML_LOGLEVEL"
53 
54 /* ####################### Set the log module name by Android property
55  * ########################## */
56 #define PROP_NAME_NXPLOG_GLOBAL_LOGLEVEL "nfc.nxp_log_level_global"
57 #define PROP_NAME_NXPLOG_EXTNS_LOGLEVEL "nfc.nxp_log_level_extns"
58 #define PROP_NAME_NXPLOG_HAL_LOGLEVEL "nfc.nxp_log_level_hal"
59 #define PROP_NAME_NXPLOG_NCI_LOGLEVEL "nfc.nxp_log_level_nci"
60 #define PROP_NAME_NXPLOG_FWDNLD_LOGLEVEL "nfc.nxp_log_level_dnld"
61 #define PROP_NAME_NXPLOG_TML_LOGLEVEL "nfc.nxp_log_level_tml"
62 
63 /* ####################### Set the logging level for EVERY COMPONENT here
64  * ######################## :START: */
65 #define NXPLOG_LOG_SILENT_LOGLEVEL 0x00
66 #define NXPLOG_LOG_ERROR_LOGLEVEL 0x01
67 #define NXPLOG_LOG_WARN_LOGLEVEL 0x02
68 #define NXPLOG_LOG_DEBUG_LOGLEVEL 0x03
69 /* ####################### Set the default logging level for EVERY COMPONENT
70  * here ########################## :END: */
71 
72 /* The Default log level for all the modules. */
73 #define NXPLOG_DEFAULT_LOGLEVEL NXPLOG_LOG_ERROR_LOGLEVEL
74 
75 /* ################################################################################################################
76  */
77 /* ############################################### Component Names
78  * ################################################ */
79 /* ################################################################################################################
80  */
81 
82 extern const char* NXPLOG_ITEM_EXTNS;  /* Android logging tag for NxpExtns  */
83 extern const char* NXPLOG_ITEM_NCIHAL; /* Android logging tag for NxpNciHal */
84 extern const char* NXPLOG_ITEM_NCIX;   /* Android logging tag for NxpNciX   */
85 extern const char* NXPLOG_ITEM_NCIR;   /* Android logging tag for NxpNciR   */
86 extern const char* NXPLOG_ITEM_FWDNLD; /* Android logging tag for NxpFwDnld */
87 extern const char* NXPLOG_ITEM_TML;    /* Android logging tag for NxpTml    */
88 
89 #ifdef NXP_HCI_REQ
90 extern const char* NXPLOG_ITEM_HCPX; /* Android logging tag for NxpHcpX   */
91 extern const char* NXPLOG_ITEM_HCPR; /* Android logging tag for NxpHcpR   */
92 #endif                               /*NXP_HCI_REQ*/
93 
94 /* ######################################## Defines used for Logging data
95  * ######################################### */
96 #ifdef NXP_VRBS_REQ
97 #define NXPLOG_FUNC_ENTRY(COMP) \
98   LOG_PRI(ANDROID_LOG_VERBOSE, (COMP), "+:%s", (__func__))
99 #define NXPLOG_FUNC_EXIT(COMP) \
100   LOG_PRI(ANDROID_LOG_VERBOSE, (COMP), "-:%s", (__func__))
101 #endif /*NXP_VRBS_REQ*/
102 
103 /* ################################################################################################################
104  */
105 /* ######################################## Logging APIs of actual modules
106  * ######################################## */
107 /* ################################################################################################################
108  */
109 /* Logging APIs used by NxpNciHal module */
110 #if (ENABLE_HAL_TRACES == TRUE)
111 #define NXPLOG_NCIHAL_D(...)                                       \
112   {                                                                \
113     if (gLog_level.hal_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)     \
114       LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \
115   }
116 #define NXPLOG_NCIHAL_W(...)                                      \
117   {                                                               \
118     if (gLog_level.hal_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)     \
119       LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \
120   }
121 #define NXPLOG_NCIHAL_E(...)                                       \
122   {                                                                \
123     if (gLog_level.hal_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL)     \
124       LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \
125   }
126 #else
127 #define NXPLOG_NCIHAL_D(...)
128 #define NXPLOG_NCIHAL_W(...)
129 #define NXPLOG_NCIHAL_E(...)
130 #endif /* Logging APIs used by HAL module */
131 
132 /* Logging APIs used by NxpNciX module */
133 #if (ENABLE_NCIX_TRACES == TRUE)
134 #define NXPLOG_NCIX_D(...)                                       \
135   {                                                              \
136     if (gLog_level.ncix_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)  \
137       LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIX, __VA_ARGS__); \
138   }
139 #define NXPLOG_NCIX_W(...)                                      \
140   {                                                             \
141     if (gLog_level.ncix_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)  \
142       LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIX, __VA_ARGS__); \
143   }
144 #define NXPLOG_NCIX_E(...)                                       \
145   {                                                              \
146     if (gLog_level.ncix_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL)  \
147       LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIX, __VA_ARGS__); \
148   }
149 #else
150 #define NXPLOG_NCIX_D(...)
151 #define NXPLOG_NCIX_W(...)
152 #define NXPLOG_NCIX_E(...)
153 #endif /* Logging APIs used by NCIx module */
154 
155 /* Logging APIs used by NxpNciR module */
156 #if (ENABLE_NCIR_TRACES == TRUE)
157 #define NXPLOG_NCIR_D(...)                                       \
158   {                                                              \
159     if (gLog_level.ncir_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)  \
160       LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIR, __VA_ARGS__); \
161   }
162 #define NXPLOG_NCIR_W(...)                                      \
163   {                                                             \
164     if (gLog_level.ncir_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)  \
165       LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIR, __VA_ARGS__); \
166   }
167 #define NXPLOG_NCIR_E(...)                                       \
168   {                                                              \
169     if (gLog_level.ncir_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL)  \
170       LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIR, __VA_ARGS__); \
171   }
172 #else
173 #define NXPLOG_NCIR_D(...)
174 #define NXPLOG_NCIR_W(...)
175 #define NXPLOG_NCIR_E(...)
176 #endif /* Logging APIs used by NCIR module */
177 
178 /* Logging APIs used by NxpFwDnld module */
179 #if (ENABLE_FWDNLD_TRACES == TRUE)
180 #define NXPLOG_FWDNLD_D(...)                                       \
181   {                                                                \
182     if (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)    \
183       LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
184   }
185 #define NXPLOG_FWDNLD_W(...)                                      \
186   {                                                               \
187     if (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)    \
188       LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
189   }
190 #define NXPLOG_FWDNLD_E(...)                                       \
191   {                                                                \
192     if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL)    \
193       LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
194   }
195 #else
196 #define NXPLOG_FWDNLD_D(...)
197 #define NXPLOG_FWDNLD_W(...)
198 #define NXPLOG_FWDNLD_E(...)
199 #endif /* Logging APIs used by NxpFwDnld module */
200 
201 /* Logging APIs used by NxpTml module */
202 #if (ENABLE_TML_TRACES == TRUE)
203 #define NXPLOG_TML_D(...)                                       \
204   {                                                             \
205     if (gLog_level.tml_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)  \
206       LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_TML, __VA_ARGS__); \
207   }
208 #define NXPLOG_TML_W(...)                                      \
209   {                                                            \
210     if (gLog_level.tml_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)  \
211       LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_TML, __VA_ARGS__); \
212   }
213 #define NXPLOG_TML_E(...)                                       \
214   {                                                             \
215     if (gLog_level.tml_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL)  \
216       LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_TML, __VA_ARGS__); \
217   }
218 #else
219 #define NXPLOG_TML_D(...)
220 #define NXPLOG_TML_W(...)
221 #define NXPLOG_TML_E(...)
222 #endif /* Logging APIs used by NxpTml module */
223 
224 #ifdef NXP_HCI_REQ
225 /* Logging APIs used by NxpHcpX module */
226 #if (ENABLE_HCPX_TRACES == TRUE)
227 #define NXPLOG_HCPX_D(...)                                         \
228   {                                                                \
229     if (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)    \
230       LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
231   }
232 #define NXPLOG_HCPX_W(...)                                        \
233   {                                                               \
234     if (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)    \
235       LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
236   }
237 #define NXPLOG_HCPX_E(...)                                         \
238   {                                                                \
239     if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL)    \
240       LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
241   }
242 #else
243 #define NXPLOG_HCPX_D(...)
244 #define NXPLOG_HCPX_W(...)
245 #define NXPLOG_HCPX_E(...)
246 #endif /* Logging APIs used by NxpHcpX module */
247 
248 /* Logging APIs used by NxpHcpR module */
249 #if (ENABLE_HCPR_TRACES == TRUE)
250 #define NXPLOG_HCPR_D(...)                                         \
251   {                                                                \
252     if (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)    \
253       LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
254   }
255 #define NXPLOG_HCPR_W(...)                                        \
256   {                                                               \
257     if (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)    \
258       LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
259   }
260 #define NXPLOG_HCPR_E(...)                                         \
261   {                                                                \
262     if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL)    \
263       LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \
264   }
265 #else
266 #define NXPLOG_HCPR_D(...)
267 #define NXPLOG_HCPR_W(...)
268 #define NXPLOG_HCPR_E(...)
269 #endif /* Logging APIs used by NxpHcpR module */
270 #endif /* NXP_HCI_REQ */
271 
272 #ifdef NXP_VRBS_REQ
273 #if (ENABLE_HAL_TRACES == TRUE)
274 #define NXPLOG_NCIHAL_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIHAL)
275 #define NXPLOG_NCIHAL_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIHAL)
276 #else
277 #define NXPLOG_NCIHAL_ENTRY()
278 #define NXPLOG_NCIHAL_EXIT()
279 #endif
280 
281 #if (ENABLE_NCIX_TRACES == TRUE)
282 #define NXPLOG_NCIX_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIX)
283 #define NXPLOG_NCIX_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIX)
284 #else
285 #define NXPLOG_NCIX_ENTRY()
286 #define NXPLOG_NCIX_EXIT()
287 #endif
288 
289 #if (ENABLE_NCIR_TRACES == TRUE)
290 #define NXPLOG_NCIR_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIR)
291 #define NXPLOG_NCIR_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIR)
292 #else
293 #define NXPLOG_NCIR_ENTRY()
294 #define NXPLOG_NCIR_EXIT()
295 #endif
296 
297 #ifdef NXP_HCI_REQ
298 
299 #if (ENABLE_HCPX_TRACES == TRUE)
300 #define NXPLOG_HCPX_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_HCPX)
301 #define NXPLOG_HCPX_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_HCPX)
302 #else
303 #define NXPLOG_HCPX_ENTRY()
304 #define NXPLOG_HCPX_EXIT()
305 #endif
306 
307 #if (ENABLE_HCPR_TRACES == TRUE)
308 #define NXPLOG_HCPR_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_HCPR)
309 #define NXPLOG_HCPR_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_HCPR)
310 #else
311 #define NXPLOG_HCPR_ENTRY()
312 #define NXPLOG_HCPR_EXIT()
313 #endif
314 #endif /* NXP_HCI_REQ */
315 
316 #endif /* NXP_VRBS_REQ */
317 
318 void phNxpLog_InitializeLogLevel(void);
319 
320 #endif /* NXPLOG__H_INCLUDED */
321