1121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* 2121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Copyright (C) 2010-2014 NXP Semiconductors 3121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 4121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Licensed under the Apache License, Version 2.0 (the "License"); 5121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * you may not use this file except in compliance with the License. 6121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * You may obtain a copy of the License at 7121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 8121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * http://www.apache.org/licenses/LICENSE-2.0 9121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 10121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Unless required by applicable law or agreed to in writing, software 11121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * distributed under the License is distributed on an "AS IS" BASIS, 12121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * See the License for the specific language governing permissions and 14121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * limitations under the License. 15121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */ 16121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 17121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#include <string.h> 18121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#if ! defined (NXPLOG__H_INCLUDED) 19121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao# include "phNxpLog.h" 20121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao# include "phNxpConfig.h" 21121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#endif 22121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#include <cutils/properties.h> 23121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 24121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaoconst char * NXPLOG_ITEM_EXTNS = "NxpExtns"; 25121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaoconst char * NXPLOG_ITEM_NCIHAL = "NxpHal"; 26121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaoconst char * NXPLOG_ITEM_NCIX = "NxpNciX"; 27121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaoconst char * NXPLOG_ITEM_NCIR = "NxpNciR"; 28121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaoconst char * NXPLOG_ITEM_FWDNLD = "NxpFwDnld"; 29121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaoconst char * NXPLOG_ITEM_TML = "NxpTml"; 30121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 31121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#ifdef NXP_HCI_REQ 32121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaoconst char * NXPLOG_ITEM_HCPX = "NxpHcpX"; 33121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaoconst char * NXPLOG_ITEM_HCPR = "NxpHcpR"; 34121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#endif /*NXP_HCI_REQ*/ 35121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 36121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* global log level structure */ 37121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaonci_log_level_t gLog_level; 38121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 39121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 40121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/******************************************************************************* 41121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 42121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Function phNxpLog_SetGlobalLogLevel 43121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 44121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Description Sets the global log level for all modules. 45121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * This value is set by Android property nfc.nxp_log_level_global. 46121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * If value can be overridden by module log level. 47121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 48121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Returns The value of global log level 49121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 50121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ******************************************************************************/ 51121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaostatic uint8_t phNxpLog_SetGlobalLogLevel (void) 52121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao{ 53121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao uint8_t level = NXPLOG_DEFAULT_LOGLEVEL; 54121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao unsigned long num = 0; 55121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao char valueStr [PROPERTY_VALUE_MAX] = {0}; 56121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 57121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao int len = property_get (PROP_NAME_NXPLOG_GLOBAL_LOGLEVEL, valueStr, ""); 58121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (len > 0) 59121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 60121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao /* let Android property override .conf variable */ 61121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao sscanf (valueStr, "%lu", &num); 62121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao level = (unsigned char) num; 63121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 64121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao memset(&gLog_level, level, sizeof(nci_log_level_t)); 65121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao return level; 66121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao} 67121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 68121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/******************************************************************************* 69121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 70121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Function phNxpLog_SetHALLogLevel 71121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 72121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Description Sets the HAL layer log level. 73121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 74121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Returns void 75121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 76121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ******************************************************************************/ 77121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaostatic void phNxpLog_SetHALLogLevel (uint8_t level) 78121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao{ 79121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao unsigned long num = 0; 80121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao int len; 81121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao char valueStr [PROPERTY_VALUE_MAX] = {0}; 82121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 83121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (GetNxpNumValue (NAME_NXPLOG_HAL_LOGLEVEL, &num, sizeof(num))) 84121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 85121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.hal_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;; 86121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 87121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 88121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao len = property_get (PROP_NAME_NXPLOG_HAL_LOGLEVEL, valueStr, ""); 89121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (len > 0) 90121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 91121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao /* let Android property override .conf variable */ 92121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao sscanf (valueStr, "%lu", &num); 93121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.hal_log_level = (unsigned char) num; 94121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 95121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao} 96121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 97121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/******************************************************************************* 98121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 99121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Function phNxpLog_SetExtnsLogLevel 100121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 101121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Description Sets the Extensions layer log level. 102121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 103121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Returns void 104121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 105121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ******************************************************************************/ 106121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaostatic void phNxpLog_SetExtnsLogLevel (uint8_t level) 107121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao{ 108121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao unsigned long num = 0; 109121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao int len; 110121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao char valueStr [PROPERTY_VALUE_MAX] = {0}; 111121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (GetNxpNumValue (NAME_NXPLOG_EXTNS_LOGLEVEL, &num, sizeof(num))) 112121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 113121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.extns_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;; 114121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 115121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 116121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao len = property_get (PROP_NAME_NXPLOG_EXTNS_LOGLEVEL, valueStr, ""); 117121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (len > 0) 118121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 119121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao /* let Android property override .conf variable */ 120121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao sscanf (valueStr, "%lu", &num); 121121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.extns_log_level = (unsigned char) num; 122121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 123121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao} 124121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 125121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/******************************************************************************* 126121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 127121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Function phNxpLog_SetTmlLogLevel 128121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 129121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Description Sets the Tml layer log level. 130121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 131121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Returns void 132121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 133121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ******************************************************************************/ 134121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaostatic void phNxpLog_SetTmlLogLevel (uint8_t level) 135121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao{ 136121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao unsigned long num = 0; 137121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao int len; 138121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao char valueStr [PROPERTY_VALUE_MAX] = {0}; 139121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (GetNxpNumValue (NAME_NXPLOG_TML_LOGLEVEL, &num, sizeof(num))) 140121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 141121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.tml_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;; 142121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 143121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 144121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao len = property_get (PROP_NAME_NXPLOG_TML_LOGLEVEL, valueStr, ""); 145121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (len > 0) 146121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 147121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao /* let Android property override .conf variable */ 148121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao sscanf (valueStr, "%lu", &num); 149121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.tml_log_level = (unsigned char) num; 150121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 151121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao} 152121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 153121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/******************************************************************************* 154121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 155121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Function phNxpLog_SetDnldLogLevel 156121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 157121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Description Sets the FW download layer log level. 158121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 159121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Returns void 160121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 161121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ******************************************************************************/ 162121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaostatic void phNxpLog_SetDnldLogLevel (uint8_t level) 163121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao{ 164121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao unsigned long num = 0; 165121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao int len; 166121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao char valueStr [PROPERTY_VALUE_MAX] = {0}; 167121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (GetNxpNumValue (NAME_NXPLOG_FWDNLD_LOGLEVEL, &num, sizeof(num))) 168121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 169121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.dnld_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;; 170121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 171121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 172121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao len = property_get (PROP_NAME_NXPLOG_FWDNLD_LOGLEVEL, valueStr, ""); 173121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (len > 0) 174121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 175121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao /* let Android property override .conf variable */ 176121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao sscanf (valueStr, "%lu", &num); 177121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.dnld_log_level = (unsigned char) num; 178121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 179121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao} 180121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 181121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/******************************************************************************* 182121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 183121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Function phNxpLog_SetNciTxLogLevel 184121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 185121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Description Sets the NCI transaction layer log level. 186121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 187121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Returns void 188121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 189121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ******************************************************************************/ 190121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaostatic void phNxpLog_SetNciTxLogLevel (uint8_t level) 191121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao{ 192121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao unsigned long num = 0; 193121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao int len; 194121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao char valueStr [PROPERTY_VALUE_MAX] = {0}; 195121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (GetNxpNumValue (NAME_NXPLOG_NCIX_LOGLEVEL, &num, sizeof(num))) 196121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 197121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.ncix_log_level = (level > (unsigned char) num) ? level : (unsigned char) num; 198121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 199121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (GetNxpNumValue (NAME_NXPLOG_NCIR_LOGLEVEL, &num, sizeof(num))) 200121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 201121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.ncir_log_level = (level > (unsigned char) num) ? level : (unsigned char) num;; 202121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 203121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 204121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao len = property_get (PROP_NAME_NXPLOG_NCI_LOGLEVEL, valueStr, ""); 205121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao if (len > 0) 206121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao { 207121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao /* let Android property override .conf variable */ 208121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao sscanf (valueStr, "%lu", &num); 209121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.ncix_log_level = (unsigned char) num; 210121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.ncir_log_level = (unsigned char) num; 211121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao } 212121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao} 213121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 214121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/****************************************************************************** 215121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Function phNxpLog_InitializeLogLevel 216121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 217121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Description Initialize and get log level of module from libnfc-nxp.conf or 218121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Android runtime properties. 219121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * The Android property nfc.nxp_global_log_level is to 220121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * define log level for all modules. Modules log level will overwide global level. 221121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * The Android property will overwide the level 222121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * in libnfc-nxp.conf 223121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 224121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Android property names: 225121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * nfc.nxp_log_level_global * defines log level for all modules 226121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * nfc.nxp_log_level_extns * extensions module log 227121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * nfc.nxp_log_level_hal * Hal module log 228121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * nfc.nxp_log_level_dnld * firmware download module log 229121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * nfc.nxp_log_level_tml * TML module log 230121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * nfc.nxp_log_level_nci * NCI transaction log 231121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 232121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Log Level values: 233121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * NXPLOG_LOG_SILENT_LOGLEVEL 0 * No trace to show 234121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * NXPLOG_LOG_ERROR_LOGLEVEL 1 * Show Error trace only 235121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * NXPLOG_LOG_WARN_LOGLEVEL 2 * Show Warning trace and Error trace 236121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * NXPLOG_LOG_DEBUG_LOGLEVEL 3 * Show all traces 237121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 238121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Returns void 239121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * 240121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ******************************************************************************/ 241121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liaovoid phNxpLog_InitializeLogLevel(void) 242121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao{ 243121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao uint8_t level = phNxpLog_SetGlobalLogLevel(); 244121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao phNxpLog_SetHALLogLevel(level); 245121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao phNxpLog_SetExtnsLogLevel(level); 246121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao phNxpLog_SetTmlLogLevel(level); 247121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao phNxpLog_SetDnldLogLevel(level); 248121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao phNxpLog_SetNciTxLogLevel(level); 249121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao 250121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ALOGD ("%s: global =%u, Fwdnld =%u, extns =%u, \ 251121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao hal =%u, tml =%u, ncir =%u, \ 252121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao ncix =%u", \ 253121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao __FUNCTION__, gLog_level.global_log_level, gLog_level.dnld_log_level, 254121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.extns_log_level, gLog_level.hal_log_level, gLog_level.tml_log_level, 255121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao gLog_level.ncir_log_level, gLog_level.ncix_log_level); 256121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao} 257