1/* 2 * Copyright (C) 2010-2014 NXP Semiconductors 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#include <log/log.h> 20 21typedef struct nci_log_level { 22 uint8_t global_log_level; 23 uint8_t extns_log_level; 24 uint8_t hal_log_level; 25 uint8_t dnld_log_level; 26 uint8_t tml_log_level; 27 uint8_t ncix_log_level; 28 uint8_t ncir_log_level; 29} nci_log_level_t; 30 31/* global log level Ref */ 32extern nci_log_level_t gLog_level; 33extern bool nfc_debug_enabled; 34/* define log module included when compile */ 35#define ENABLE_EXTNS_TRACES TRUE 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 82extern const char* NXPLOG_ITEM_EXTNS; /* Android logging tag for NxpExtns */ 83extern const char* NXPLOG_ITEM_NCIHAL; /* Android logging tag for NxpNciHal */ 84extern const char* NXPLOG_ITEM_NCIX; /* Android logging tag for NxpNciX */ 85extern const char* NXPLOG_ITEM_NCIR; /* Android logging tag for NxpNciR */ 86extern const char* NXPLOG_ITEM_FWDNLD; /* Android logging tag for NxpFwDnld */ 87extern const char* NXPLOG_ITEM_TML; /* Android logging tag for NxpTml */ 88 89#ifdef NXP_HCI_REQ 90extern const char* NXPLOG_ITEM_HCPX; /* Android logging tag for NxpHcpX */ 91extern 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 NxpExtns module */ 110#if (ENABLE_EXTNS_TRACES == TRUE) 111#define NXPLOG_EXTNS_D(...) \ 112 { \ 113 if ((nfc_debug_enabled) || \ 114 (gLog_level.extns_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)) \ 115 LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_EXTNS, __VA_ARGS__); \ 116 } 117#define NXPLOG_EXTNS_W(...) \ 118 { \ 119 if ((nfc_debug_enabled) || \ 120 (gLog_level.extns_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)) \ 121 LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_EXTNS, __VA_ARGS__); \ 122 } 123#define NXPLOG_EXTNS_E(...) \ 124 { \ 125 if (gLog_level.extns_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ 126 LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_EXTNS, __VA_ARGS__); \ 127 } 128#else 129#define NXPLOG_EXTNS_D(...) 130#define NXPLOG_EXTNS_W(...) 131#define NXPLOG_EXTNS_E(...) 132#endif /* Logging APIs used by NxpExtns module */ 133 134/* Logging APIs used by NxpNciHal module */ 135#if (ENABLE_HAL_TRACES == TRUE) 136#define NXPLOG_NCIHAL_D(...) \ 137 { \ 138 if ((nfc_debug_enabled) || \ 139 (gLog_level.hal_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)) \ 140 LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \ 141 } 142#define NXPLOG_NCIHAL_W(...) \ 143 { \ 144 if ((nfc_debug_enabled) || \ 145 (gLog_level.hal_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)) \ 146 LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \ 147 } 148#define NXPLOG_NCIHAL_E(...) \ 149 { \ 150 if (gLog_level.hal_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ 151 LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \ 152 } 153#else 154#define NXPLOG_NCIHAL_D(...) 155#define NXPLOG_NCIHAL_W(...) 156#define NXPLOG_NCIHAL_E(...) 157#endif /* Logging APIs used by HAL module */ 158 159/* Logging APIs used by NxpNciX module */ 160#if (ENABLE_NCIX_TRACES == TRUE) 161#define NXPLOG_NCIX_D(...) \ 162 { \ 163 if ((nfc_debug_enabled) || \ 164 (gLog_level.ncix_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)) \ 165 LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIX, __VA_ARGS__); \ 166 } 167#define NXPLOG_NCIX_W(...) \ 168 { \ 169 if ((nfc_debug_enabled) || \ 170 (gLog_level.ncix_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)) \ 171 LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIX, __VA_ARGS__); \ 172 } 173#define NXPLOG_NCIX_E(...) \ 174 { \ 175 if (gLog_level.ncix_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ 176 LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIX, __VA_ARGS__); \ 177 } 178#else 179#define NXPLOG_NCIX_D(...) 180#define NXPLOG_NCIX_W(...) 181#define NXPLOG_NCIX_E(...) 182#endif /* Logging APIs used by NCIx module */ 183 184/* Logging APIs used by NxpNciR module */ 185#if (ENABLE_NCIR_TRACES == TRUE) 186#define NXPLOG_NCIR_D(...) \ 187 { \ 188 if ((nfc_debug_enabled) || \ 189 (gLog_level.ncir_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)) \ 190 LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIR, __VA_ARGS__); \ 191 } 192#define NXPLOG_NCIR_W(...) \ 193 { \ 194 if ((nfc_debug_enabled) || \ 195 (gLog_level.ncir_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)) \ 196 LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIR, __VA_ARGS__); \ 197 } 198#define NXPLOG_NCIR_E(...) \ 199 { \ 200 if (gLog_level.ncir_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ 201 LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIR, __VA_ARGS__); \ 202 } 203#else 204#define NXPLOG_NCIR_D(...) 205#define NXPLOG_NCIR_W(...) 206#define NXPLOG_NCIR_E(...) 207#endif /* Logging APIs used by NCIR module */ 208 209/* Logging APIs used by NxpFwDnld module */ 210#if (ENABLE_FWDNLD_TRACES == TRUE) 211#define NXPLOG_FWDNLD_D(...) \ 212 { \ 213 if ((nfc_debug_enabled) || \ 214 (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)) \ 215 LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 216 } 217#define NXPLOG_FWDNLD_W(...) \ 218 { \ 219 if ((nfc_debug_enabled) || \ 220 (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)) \ 221 LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 222 } 223#define NXPLOG_FWDNLD_E(...) \ 224 { \ 225 if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ 226 LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 227 } 228#else 229#define NXPLOG_FWDNLD_D(...) 230#define NXPLOG_FWDNLD_W(...) 231#define NXPLOG_FWDNLD_E(...) 232#endif /* Logging APIs used by NxpFwDnld module */ 233 234/* Logging APIs used by NxpTml module */ 235#if (ENABLE_TML_TRACES == TRUE) 236#define NXPLOG_TML_D(...) \ 237 { \ 238 if ((nfc_debug_enabled) || \ 239 (gLog_level.tml_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)) \ 240 LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_TML, __VA_ARGS__); \ 241 } 242#define NXPLOG_TML_W(...) \ 243 { \ 244 if ((nfc_debug_enabled) || \ 245 (gLog_level.tml_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)) \ 246 LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_TML, __VA_ARGS__); \ 247 } 248#define NXPLOG_TML_E(...) \ 249 { \ 250 if (gLog_level.tml_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ 251 LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_TML, __VA_ARGS__); \ 252 } 253#else 254#define NXPLOG_TML_D(...) 255#define NXPLOG_TML_W(...) 256#define NXPLOG_TML_E(...) 257#endif /* Logging APIs used by NxpTml module */ 258 259#ifdef NXP_HCI_REQ 260/* Logging APIs used by NxpHcpX module */ 261#if (ENABLE_HCPX_TRACES == TRUE) 262#define NXPLOG_HCPX_D(...) \ 263 { \ 264 if ((nfc_debug_enabled) || \ 265 (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)) \ 266 LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 267 } 268#define NXPLOG_HCPX_W(...) \ 269 { \ 270 if ((nfc_debug_enabled) || \ 271 (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)) \ 272 LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 273 } 274#define NXPLOG_HCPX_E(...) \ 275 { \ 276 if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ 277 LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 278 } 279#else 280#define NXPLOG_HCPX_D(...) 281#define NXPLOG_HCPX_W(...) 282#define NXPLOG_HCPX_E(...) 283#endif /* Logging APIs used by NxpHcpX module */ 284 285/* Logging APIs used by NxpHcpR module */ 286#if (ENABLE_HCPR_TRACES == TRUE) 287#define NXPLOG_HCPR_D(...) \ 288 { \ 289 if ((nfc_debug_enabled) || \ 290 (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL)) \ 291 LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 292 } 293#define NXPLOG_HCPR_W(...) \ 294 { \ 295 if ((nfc_debug_enabled) || \ 296 (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL)) \ 297 LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 298 } 299#define NXPLOG_HCPR_E(...) \ 300 { \ 301 if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ 302 LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ 303 } 304#else 305#define NXPLOG_HCPR_D(...) 306#define NXPLOG_HCPR_W(...) 307#define NXPLOG_HCPR_E(...) 308#endif /* Logging APIs used by NxpHcpR module */ 309#endif /* NXP_HCI_REQ */ 310 311#ifdef NXP_VRBS_REQ 312#if (ENABLE_EXTNS_TRACES == TRUE) 313#define NXPLOG_EXTNS_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_EXTNS) 314#define NXPLOG_EXTNS_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_EXTNS) 315#else 316#define NXPLOG_EXTNS_ENTRY() 317#define NXPLOG_EXTNS_EXIT() 318#endif 319 320#if (ENABLE_HAL_TRACES == TRUE) 321#define NXPLOG_NCIHAL_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIHAL) 322#define NXPLOG_NCIHAL_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIHAL) 323#else 324#define NXPLOG_NCIHAL_ENTRY() 325#define NXPLOG_NCIHAL_EXIT() 326#endif 327 328#if (ENABLE_NCIX_TRACES == TRUE) 329#define NXPLOG_NCIX_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIX) 330#define NXPLOG_NCIX_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIX) 331#else 332#define NXPLOG_NCIX_ENTRY() 333#define NXPLOG_NCIX_EXIT() 334#endif 335 336#if (ENABLE_NCIR_TRACES == TRUE) 337#define NXPLOG_NCIR_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIR) 338#define NXPLOG_NCIR_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIR) 339#else 340#define NXPLOG_NCIR_ENTRY() 341#define NXPLOG_NCIR_EXIT() 342#endif 343 344#ifdef NXP_HCI_REQ 345 346#if (ENABLE_HCPX_TRACES == TRUE) 347#define NXPLOG_HCPX_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_HCPX) 348#define NXPLOG_HCPX_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_HCPX) 349#else 350#define NXPLOG_HCPX_ENTRY() 351#define NXPLOG_HCPX_EXIT() 352#endif 353 354#if (ENABLE_HCPR_TRACES == TRUE) 355#define NXPLOG_HCPR_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_HCPR) 356#define NXPLOG_HCPR_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_HCPR) 357#else 358#define NXPLOG_HCPR_ENTRY() 359#define NXPLOG_HCPR_EXIT() 360#endif 361#endif /* NXP_HCI_REQ */ 362 363#endif /* NXP_VRBS_REQ */ 364 365void phNxpLog_InitializeLogLevel(void); 366 367#endif /* NXPLOG__H_INCLUDED */ 368