/* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #if !defined(NXPLOG__H_INCLUDED) #define NXPLOG__H_INCLUDED #include <log/log.h> typedef struct nci_log_level { uint8_t global_log_level; uint8_t extns_log_level; uint8_t hal_log_level; uint8_t dnld_log_level; uint8_t tml_log_level; uint8_t ncix_log_level; uint8_t ncir_log_level; } nci_log_level_t; /* global log level Ref */ extern nci_log_level_t gLog_level; /* define log module included when compile */ #define ENABLE_HAL_TRACES TRUE #define ENABLE_TML_TRACES TRUE #define ENABLE_FWDNLD_TRACES TRUE #define ENABLE_NCIX_TRACES TRUE #define ENABLE_NCIR_TRACES TRUE #define ENABLE_HCPX_TRACES FALSE #define ENABLE_HCPR_TRACES FALSE /* ####################### Set the log module name in .conf file * ########################## */ #define NAME_NXPLOG_EXTNS_LOGLEVEL "NXPLOG_EXTNS_LOGLEVEL" #define NAME_NXPLOG_HAL_LOGLEVEL "NXPLOG_NCIHAL_LOGLEVEL" #define NAME_NXPLOG_NCIX_LOGLEVEL "NXPLOG_NCIX_LOGLEVEL" #define NAME_NXPLOG_NCIR_LOGLEVEL "NXPLOG_NCIR_LOGLEVEL" #define NAME_NXPLOG_FWDNLD_LOGLEVEL "NXPLOG_FWDNLD_LOGLEVEL" #define NAME_NXPLOG_TML_LOGLEVEL "NXPLOG_TML_LOGLEVEL" /* ####################### Set the log module name by Android property * ########################## */ #define PROP_NAME_NXPLOG_GLOBAL_LOGLEVEL "nfc.nxp_log_level_global" #define PROP_NAME_NXPLOG_EXTNS_LOGLEVEL "nfc.nxp_log_level_extns" #define PROP_NAME_NXPLOG_HAL_LOGLEVEL "nfc.nxp_log_level_hal" #define PROP_NAME_NXPLOG_NCI_LOGLEVEL "nfc.nxp_log_level_nci" #define PROP_NAME_NXPLOG_FWDNLD_LOGLEVEL "nfc.nxp_log_level_dnld" #define PROP_NAME_NXPLOG_TML_LOGLEVEL "nfc.nxp_log_level_tml" /* ####################### Set the logging level for EVERY COMPONENT here * ######################## :START: */ #define NXPLOG_LOG_SILENT_LOGLEVEL 0x00 #define NXPLOG_LOG_ERROR_LOGLEVEL 0x01 #define NXPLOG_LOG_WARN_LOGLEVEL 0x02 #define NXPLOG_LOG_DEBUG_LOGLEVEL 0x03 /* ####################### Set the default logging level for EVERY COMPONENT * here ########################## :END: */ /* The Default log level for all the modules. */ #define NXPLOG_DEFAULT_LOGLEVEL NXPLOG_LOG_ERROR_LOGLEVEL /* ################################################################################################################ */ /* ############################################### Component Names * ################################################ */ /* ################################################################################################################ */ extern const char* NXPLOG_ITEM_EXTNS; /* Android logging tag for NxpExtns */ extern const char* NXPLOG_ITEM_NCIHAL; /* Android logging tag for NxpNciHal */ extern const char* NXPLOG_ITEM_NCIX; /* Android logging tag for NxpNciX */ extern const char* NXPLOG_ITEM_NCIR; /* Android logging tag for NxpNciR */ extern const char* NXPLOG_ITEM_FWDNLD; /* Android logging tag for NxpFwDnld */ extern const char* NXPLOG_ITEM_TML; /* Android logging tag for NxpTml */ #ifdef NXP_HCI_REQ extern const char* NXPLOG_ITEM_HCPX; /* Android logging tag for NxpHcpX */ extern const char* NXPLOG_ITEM_HCPR; /* Android logging tag for NxpHcpR */ #endif /*NXP_HCI_REQ*/ /* ######################################## Defines used for Logging data * ######################################### */ #ifdef NXP_VRBS_REQ #define NXPLOG_FUNC_ENTRY(COMP) \ LOG_PRI(ANDROID_LOG_VERBOSE, (COMP), "+:%s", (__func__)) #define NXPLOG_FUNC_EXIT(COMP) \ LOG_PRI(ANDROID_LOG_VERBOSE, (COMP), "-:%s", (__func__)) #endif /*NXP_VRBS_REQ*/ /* ################################################################################################################ */ /* ######################################## Logging APIs of actual modules * ######################################## */ /* ################################################################################################################ */ /* Logging APIs used by NxpNciHal module */ #if (ENABLE_HAL_TRACES == TRUE) #define NXPLOG_NCIHAL_D(...) \ { \ if (gLog_level.hal_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \ } #define NXPLOG_NCIHAL_W(...) \ { \ if (gLog_level.hal_log_level >= NXPLOG_LOG_WARN_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \ } #define NXPLOG_NCIHAL_E(...) \ { \ if (gLog_level.hal_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIHAL, __VA_ARGS__); \ } #else #define NXPLOG_NCIHAL_D(...) #define NXPLOG_NCIHAL_W(...) #define NXPLOG_NCIHAL_E(...) #endif /* Logging APIs used by HAL module */ /* Logging APIs used by NxpNciX module */ #if (ENABLE_NCIX_TRACES == TRUE) #define NXPLOG_NCIX_D(...) \ { \ if (gLog_level.ncix_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIX, __VA_ARGS__); \ } #define NXPLOG_NCIX_W(...) \ { \ if (gLog_level.ncix_log_level >= NXPLOG_LOG_WARN_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIX, __VA_ARGS__); \ } #define NXPLOG_NCIX_E(...) \ { \ if (gLog_level.ncix_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIX, __VA_ARGS__); \ } #else #define NXPLOG_NCIX_D(...) #define NXPLOG_NCIX_W(...) #define NXPLOG_NCIX_E(...) #endif /* Logging APIs used by NCIx module */ /* Logging APIs used by NxpNciR module */ #if (ENABLE_NCIR_TRACES == TRUE) #define NXPLOG_NCIR_D(...) \ { \ if (gLog_level.ncir_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_NCIR, __VA_ARGS__); \ } #define NXPLOG_NCIR_W(...) \ { \ if (gLog_level.ncir_log_level >= NXPLOG_LOG_WARN_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_NCIR, __VA_ARGS__); \ } #define NXPLOG_NCIR_E(...) \ { \ if (gLog_level.ncir_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_NCIR, __VA_ARGS__); \ } #else #define NXPLOG_NCIR_D(...) #define NXPLOG_NCIR_W(...) #define NXPLOG_NCIR_E(...) #endif /* Logging APIs used by NCIR module */ /* Logging APIs used by NxpFwDnld module */ #if (ENABLE_FWDNLD_TRACES == TRUE) #define NXPLOG_FWDNLD_D(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #define NXPLOG_FWDNLD_W(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #define NXPLOG_FWDNLD_E(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #else #define NXPLOG_FWDNLD_D(...) #define NXPLOG_FWDNLD_W(...) #define NXPLOG_FWDNLD_E(...) #endif /* Logging APIs used by NxpFwDnld module */ /* Logging APIs used by NxpTml module */ #if (ENABLE_TML_TRACES == TRUE) #define NXPLOG_TML_D(...) \ { \ if (gLog_level.tml_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_TML, __VA_ARGS__); \ } #define NXPLOG_TML_W(...) \ { \ if (gLog_level.tml_log_level >= NXPLOG_LOG_WARN_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_TML, __VA_ARGS__); \ } #define NXPLOG_TML_E(...) \ { \ if (gLog_level.tml_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_TML, __VA_ARGS__); \ } #else #define NXPLOG_TML_D(...) #define NXPLOG_TML_W(...) #define NXPLOG_TML_E(...) #endif /* Logging APIs used by NxpTml module */ #ifdef NXP_HCI_REQ /* Logging APIs used by NxpHcpX module */ #if (ENABLE_HCPX_TRACES == TRUE) #define NXPLOG_HCPX_D(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #define NXPLOG_HCPX_W(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #define NXPLOG_HCPX_E(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #else #define NXPLOG_HCPX_D(...) #define NXPLOG_HCPX_W(...) #define NXPLOG_HCPX_E(...) #endif /* Logging APIs used by NxpHcpX module */ /* Logging APIs used by NxpHcpR module */ #if (ENABLE_HCPR_TRACES == TRUE) #define NXPLOG_HCPR_D(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_DEBUG_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_DEBUG, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #define NXPLOG_HCPR_W(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_WARN_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_WARN, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #define NXPLOG_HCPR_E(...) \ { \ if (gLog_level.dnld_log_level >= NXPLOG_LOG_ERROR_LOGLEVEL) \ LOG_PRI(ANDROID_LOG_ERROR, NXPLOG_ITEM_FWDNLD, __VA_ARGS__); \ } #else #define NXPLOG_HCPR_D(...) #define NXPLOG_HCPR_W(...) #define NXPLOG_HCPR_E(...) #endif /* Logging APIs used by NxpHcpR module */ #endif /* NXP_HCI_REQ */ #ifdef NXP_VRBS_REQ #if (ENABLE_HAL_TRACES == TRUE) #define NXPLOG_NCIHAL_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIHAL) #define NXPLOG_NCIHAL_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIHAL) #else #define NXPLOG_NCIHAL_ENTRY() #define NXPLOG_NCIHAL_EXIT() #endif #if (ENABLE_NCIX_TRACES == TRUE) #define NXPLOG_NCIX_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIX) #define NXPLOG_NCIX_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIX) #else #define NXPLOG_NCIX_ENTRY() #define NXPLOG_NCIX_EXIT() #endif #if (ENABLE_NCIR_TRACES == TRUE) #define NXPLOG_NCIR_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_NCIR) #define NXPLOG_NCIR_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_NCIR) #else #define NXPLOG_NCIR_ENTRY() #define NXPLOG_NCIR_EXIT() #endif #ifdef NXP_HCI_REQ #if (ENABLE_HCPX_TRACES == TRUE) #define NXPLOG_HCPX_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_HCPX) #define NXPLOG_HCPX_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_HCPX) #else #define NXPLOG_HCPX_ENTRY() #define NXPLOG_HCPX_EXIT() #endif #if (ENABLE_HCPR_TRACES == TRUE) #define NXPLOG_HCPR_ENTRY() NXPLOG_FUNC_ENTRY(NXPLOG_ITEM_HCPR) #define NXPLOG_HCPR_EXIT() NXPLOG_FUNC_EXIT(NXPLOG_ITEM_HCPR) #else #define NXPLOG_HCPR_ENTRY() #define NXPLOG_HCPR_EXIT() #endif #endif /* NXP_HCI_REQ */ #endif /* NXP_VRBS_REQ */ void phNxpLog_InitializeLogLevel(void); #endif /* NXPLOG__H_INCLUDED */