diff options
author | Arian <arian.kulmer@web.de> | 2019-09-30 11:10:42 +0200 |
---|---|---|
committer | Arian <arian.kulmer@web.de> | 2019-10-25 22:17:12 +0200 |
commit | 9224c881cf3f8575194823a6c779c0d65c42258a (patch) | |
tree | ac8a018ff4fdea5a589ca7ee3d88cd88d0d460ba /pn54x/log/phNxpLog.c | |
parent | fbdbc276d9f25e67e49a7ca03002b838cc9c8548 (diff) |
shinano-common: pn54x: Import from lineage-15.1
* https://github.com/LineageOS/android_system_nfc/tree/lineage-15.1/halimpl/pn54x/common
* support for pn54x has been dropped in lineage-16.0 and above
Change-Id: I19f2c3a6e3066bf9aaaaf4ddcd7d7ad867de0ed8
Diffstat (limited to 'pn54x/log/phNxpLog.c')
-rw-r--r-- | pn54x/log/phNxpLog.c | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/pn54x/log/phNxpLog.c b/pn54x/log/phNxpLog.c new file mode 100644 index 0000000..49d6911 --- /dev/null +++ b/pn54x/log/phNxpLog.c @@ -0,0 +1,257 @@ +/* + * Copyright (C) 2010-2014 NXP Semiconductors + * + * 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. + */ + +#include <stdio.h> +#include <string.h> +#if !defined(NXPLOG__H_INCLUDED) +#include "phNxpConfig.h" +#include "phNxpLog.h" +#endif +#include <cutils/properties.h> + +const char* NXPLOG_ITEM_EXTNS = "NxpExtns"; +const char* NXPLOG_ITEM_NCIHAL = "NxpHal"; +const char* NXPLOG_ITEM_NCIX = "NxpNciX"; +const char* NXPLOG_ITEM_NCIR = "NxpNciR"; +const char* NXPLOG_ITEM_FWDNLD = "NxpFwDnld"; +const char* NXPLOG_ITEM_TML = "NxpTml"; + +#ifdef NXP_HCI_REQ +const char* NXPLOG_ITEM_HCPX = "NxpHcpX"; +const char* NXPLOG_ITEM_HCPR = "NxpHcpR"; +#endif /*NXP_HCI_REQ*/ + +/* global log level structure */ +nci_log_level_t gLog_level; + +/******************************************************************************* + * + * Function phNxpLog_SetGlobalLogLevel + * + * Description Sets the global log level for all modules. + * This value is set by Android property + *nfc.nxp_log_level_global. + * If value can be overridden by module log level. + * + * Returns The value of global log level + * + ******************************************************************************/ +static uint8_t phNxpLog_SetGlobalLogLevel(void) { + uint8_t level = NXPLOG_DEFAULT_LOGLEVEL; + unsigned long num = 0; + char valueStr[PROPERTY_VALUE_MAX] = {0}; + + int len = property_get(PROP_NAME_NXPLOG_GLOBAL_LOGLEVEL, valueStr, ""); + if (len > 0) { + /* let Android property override .conf variable */ + sscanf(valueStr, "%lu", &num); + level = (unsigned char)num; + } + memset(&gLog_level, level, sizeof(nci_log_level_t)); + return level; +} + +/******************************************************************************* + * + * Function phNxpLog_SetHALLogLevel + * + * Description Sets the HAL layer log level. + * + * Returns void + * + ******************************************************************************/ +static void phNxpLog_SetHALLogLevel(uint8_t level) { + unsigned long num = 0; + int len; + char valueStr[PROPERTY_VALUE_MAX] = {0}; + + if (GetNxpNumValue(NAME_NXPLOG_HAL_LOGLEVEL, &num, sizeof(num))) { + gLog_level.hal_log_level = + (level > (unsigned char)num) ? level : (unsigned char)num; + ; + } + + len = property_get(PROP_NAME_NXPLOG_HAL_LOGLEVEL, valueStr, ""); + if (len > 0) { + /* let Android property override .conf variable */ + sscanf(valueStr, "%lu", &num); + gLog_level.hal_log_level = (unsigned char)num; + } +} + +/******************************************************************************* + * + * Function phNxpLog_SetExtnsLogLevel + * + * Description Sets the Extensions layer log level. + * + * Returns void + * + ******************************************************************************/ +static void phNxpLog_SetExtnsLogLevel(uint8_t level) { + unsigned long num = 0; + int len; + char valueStr[PROPERTY_VALUE_MAX] = {0}; + if (GetNxpNumValue(NAME_NXPLOG_EXTNS_LOGLEVEL, &num, sizeof(num))) { + gLog_level.extns_log_level = + (level > (unsigned char)num) ? level : (unsigned char)num; + ; + } + + len = property_get(PROP_NAME_NXPLOG_EXTNS_LOGLEVEL, valueStr, ""); + if (len > 0) { + /* let Android property override .conf variable */ + sscanf(valueStr, "%lu", &num); + gLog_level.extns_log_level = (unsigned char)num; + } +} + +/******************************************************************************* + * + * Function phNxpLog_SetTmlLogLevel + * + * Description Sets the Tml layer log level. + * + * Returns void + * + ******************************************************************************/ +static void phNxpLog_SetTmlLogLevel(uint8_t level) { + unsigned long num = 0; + int len; + char valueStr[PROPERTY_VALUE_MAX] = {0}; + if (GetNxpNumValue(NAME_NXPLOG_TML_LOGLEVEL, &num, sizeof(num))) { + gLog_level.tml_log_level = + (level > (unsigned char)num) ? level : (unsigned char)num; + ; + } + + len = property_get(PROP_NAME_NXPLOG_TML_LOGLEVEL, valueStr, ""); + if (len > 0) { + /* let Android property override .conf variable */ + sscanf(valueStr, "%lu", &num); + gLog_level.tml_log_level = (unsigned char)num; + } +} + +/******************************************************************************* + * + * Function phNxpLog_SetDnldLogLevel + * + * Description Sets the FW download layer log level. + * + * Returns void + * + ******************************************************************************/ +static void phNxpLog_SetDnldLogLevel(uint8_t level) { + unsigned long num = 0; + int len; + char valueStr[PROPERTY_VALUE_MAX] = {0}; + if (GetNxpNumValue(NAME_NXPLOG_FWDNLD_LOGLEVEL, &num, sizeof(num))) { + gLog_level.dnld_log_level = + (level > (unsigned char)num) ? level : (unsigned char)num; + ; + } + + len = property_get(PROP_NAME_NXPLOG_FWDNLD_LOGLEVEL, valueStr, ""); + if (len > 0) { + /* let Android property override .conf variable */ + sscanf(valueStr, "%lu", &num); + gLog_level.dnld_log_level = (unsigned char)num; + } +} + +/******************************************************************************* + * + * Function phNxpLog_SetNciTxLogLevel + * + * Description Sets the NCI transaction layer log level. + * + * Returns void + * + ******************************************************************************/ +static void phNxpLog_SetNciTxLogLevel(uint8_t level) { + unsigned long num = 0; + int len; + char valueStr[PROPERTY_VALUE_MAX] = {0}; + if (GetNxpNumValue(NAME_NXPLOG_NCIX_LOGLEVEL, &num, sizeof(num))) { + gLog_level.ncix_log_level = + (level > (unsigned char)num) ? level : (unsigned char)num; + } + if (GetNxpNumValue(NAME_NXPLOG_NCIR_LOGLEVEL, &num, sizeof(num))) { + gLog_level.ncir_log_level = + (level > (unsigned char)num) ? level : (unsigned char)num; + ; + } + + len = property_get(PROP_NAME_NXPLOG_NCI_LOGLEVEL, valueStr, ""); + if (len > 0) { + /* let Android property override .conf variable */ + sscanf(valueStr, "%lu", &num); + gLog_level.ncix_log_level = (unsigned char)num; + gLog_level.ncir_log_level = (unsigned char)num; + } +} + +/****************************************************************************** + * Function phNxpLog_InitializeLogLevel + * + * Description Initialize and get log level of module from libnfc-nxp.conf + *or + * Android runtime properties. + * The Android property nfc.nxp_global_log_level is to + * define log level for all modules. Modules log level will + *overwide global level. + * The Android property will overwide the level + * in libnfc-nxp.conf + * + * Android property names: + * nfc.nxp_log_level_global * defines log level for all + *modules + * nfc.nxp_log_level_extns * extensions module log + * nfc.nxp_log_level_hal * Hal module log + * nfc.nxp_log_level_dnld * firmware download module + *log + * nfc.nxp_log_level_tml * TML module log + * nfc.nxp_log_level_nci * NCI transaction log + * + * Log Level values: + * NXPLOG_LOG_SILENT_LOGLEVEL 0 * No trace to show + * NXPLOG_LOG_ERROR_LOGLEVEL 1 * Show Error trace + *only + * NXPLOG_LOG_WARN_LOGLEVEL 2 * Show Warning + *trace and Error trace + * NXPLOG_LOG_DEBUG_LOGLEVEL 3 * Show all traces + * + * Returns void + * + ******************************************************************************/ +void phNxpLog_InitializeLogLevel(void) { + uint8_t level = phNxpLog_SetGlobalLogLevel(); + phNxpLog_SetHALLogLevel(level); + phNxpLog_SetExtnsLogLevel(level); + phNxpLog_SetTmlLogLevel(level); + phNxpLog_SetDnldLogLevel(level); + phNxpLog_SetNciTxLogLevel(level); + + ALOGD( + "%s: global =%u, Fwdnld =%u, extns =%u, \ + hal =%u, tml =%u, ncir =%u, \ + ncix =%u", + __func__, gLog_level.global_log_level, gLog_level.dnld_log_level, + gLog_level.extns_log_level, gLog_level.hal_log_level, + gLog_level.tml_log_level, gLog_level.ncir_log_level, + gLog_level.ncix_log_level); +} |