android_logmsg.cpp revision e9df6ba5a8fcccf306a80b1670b423be8fe7746a
1/****************************************************************************** 2 * 3 * Copyright (C) 1999-2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18#include "OverrideLog.h" 19extern "C" 20{ 21 #include "nfc_hal_target.h" 22} 23#include <cutils/log.h> 24 25 26#ifndef BTE_LOG_BUF_SIZE 27 #define BTE_LOG_BUF_SIZE 1024 28#endif 29#define BTE_LOG_MAX_SIZE (BTE_LOG_BUF_SIZE - 12) 30#define MAX_NCI_PACKET_SIZE 259 31#define MAX_LOGCAT_LINE 4096 32static char log_line[MAX_LOGCAT_LINE]; 33static const char* sTable = "0123456789abcdef"; 34 35extern UINT32 ScrProtocolTraceFlag; // = SCR_PROTO_TRACE_ALL; // 0x017F; 36extern "C" 37{ 38 void DispNci (UINT8 *p, UINT16 len, BOOLEAN is_recv); 39 void DispHciCmd (BT_HDR *p_buf); 40 void DispHciEvt (BT_HDR *p_buf); 41} 42 43 44void LogMsg (UINT32 trace_set_mask, const char *fmt_str, ...) 45{ 46 static char buffer [BTE_LOG_BUF_SIZE]; 47 va_list ap; 48 UINT32 trace_type = trace_set_mask & 0x07; //lower 3 bits contain trace type 49 int android_log_type = ANDROID_LOG_INFO; 50 51 va_start (ap, fmt_str); 52 vsnprintf (buffer, BTE_LOG_MAX_SIZE, fmt_str, ap); 53 va_end (ap); 54 if (trace_type == TRACE_TYPE_ERROR) 55 android_log_type = ANDROID_LOG_ERROR; 56 __android_log_write (android_log_type, "NfcNciHal", buffer); 57} 58 59 60void DispNci (UINT8 *data, UINT16 len, BOOLEAN is_recv) 61{ 62 if (!(ScrProtocolTraceFlag & SCR_PROTO_TRACE_NCI)) 63 return; 64 65 char line_buf[(MAX_NCI_PACKET_SIZE*2)+1]; 66 int i,j; 67 68 for(i = 0, j = 0; i < len && j < sizeof(line_buf)-3; i++) 69 { 70 line_buf[j++] = sTable[(*data >> 4) & 0xf]; 71 line_buf[j++] = sTable[*data & 0xf]; 72 data++; 73 } 74 line_buf[j] = '\0'; 75 76 __android_log_write(ANDROID_LOG_DEBUG, (is_recv) ? "BrcmNciR": "BrcmNciX", line_buf); 77} 78 79 80void DispHciCmd (BT_HDR *p_buf) 81{ 82 int i,j; 83 int nBytes = ((BT_HDR_SIZE + p_buf->offset + p_buf->len)*2)+1; 84 UINT8 * data = (UINT8*) p_buf; 85 int data_len = BT_HDR_SIZE + p_buf->offset + p_buf->len; 86 87 if (appl_trace_level < BT_TRACE_LEVEL_DEBUG) 88 return; 89 90 if (nBytes > sizeof(log_line)) 91 return; 92 93 for(i = 0, j = 0; i < data_len && j < sizeof(log_line)-3; i++) 94 { 95 log_line[j++] = sTable[(*data >> 4) & 0xf]; 96 log_line[j++] = sTable[*data & 0xf]; 97 data++; 98 } 99 log_line[j] = '\0'; 100 101 __android_log_write(ANDROID_LOG_DEBUG, "BrcmHciX", log_line); 102} 103 104 105void DispHciEvt (BT_HDR *p_buf) 106{ 107 int i,j; 108 int nBytes = ((BT_HDR_SIZE + p_buf->offset + p_buf->len)*2)+1; 109 UINT8 * data = (UINT8*) p_buf; 110 int data_len = BT_HDR_SIZE + p_buf->offset + p_buf->len; 111 112 if (appl_trace_level < BT_TRACE_LEVEL_DEBUG) 113 return; 114 115 if (nBytes > sizeof(log_line)) 116 return; 117 118 for(i = 0, j = 0; i < data_len && j < sizeof(log_line)-3; i++) 119 { 120 log_line[j++] = sTable[(*data >> 4) & 0xf]; 121 log_line[j++] = sTable[*data & 0xf]; 122 data++; 123 } 124 log_line[j] = '\0'; 125 126 __android_log_write(ANDROID_LOG_DEBUG, "BrcmHciR", log_line); 127} 128