blob: de608ac99e5d94caa6079a43655425bffb17cf78 [file] [log] [blame]
/* Copyright 2019,2020 NXP
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef NX_LOG_ANDROID_H
#define NX_LOG_ANDROID_H
#include <string.h>
#include <stdio.h>
#include <stdint.h>
#include <stdarg.h>
#include <nxLog.h>
#ifdef ANDROID
#include <inttypes.h>
#include <android/log.h>
#define LOG_TAG "NXPKeymasterDevice"
#if NX_LOG_SHORT_PREFIX
static const char *szLevel[] = {"D", "I", "W", "E"};
#else
static const char *szLevel[] = {"DEBUG", "INFO ", "WARN ", "ERROR"};
#endif
#define NXP_LOG_D(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define NXP_LOG_I(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define NXP_LOG_W(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)
#define NXP_LOG_E(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
void nLog(const char *comp, int level, const char *format, ...)
{
va_list vArgs;
char buffer[256];
size_t size_buff = sizeof(buffer) / sizeof(buffer[0]) - 1;
va_start(vArgs, format);
vsnprintf(buffer, size_buff, format, vArgs);
switch (level) {
case NX_LEVEL_DEBUG:
NXP_LOG_D("%s: %s", comp, buffer);
break;
case NX_LEVEL_INFO:
NXP_LOG_I("%s: %s", comp, buffer);
break;
case NX_LEVEL_WARN:
NXP_LOG_W("%s: %s", comp, buffer);
break;
case NX_LEVEL_ERROR:
NXP_LOG_E("%s: %s", comp, buffer);
break;
}
va_end(vArgs);
}
void nLog_au8(const char *comp, int level, const char *message, const unsigned char *array, size_t array_len)
{
uint32_t i;
char print_buffer[array_len * 3 + 1];
memset(print_buffer, 0, sizeof(print_buffer));
for (i = 0; i < array_len; i++) {
snprintf(&print_buffer[i * 2], 3, "%02X", array[i]);
}
switch (level) {
case NX_LEVEL_DEBUG:
NXP_LOG_D("%s:%s (Len=%zu) %s", comp, message, array_len, print_buffer);
break;
case NX_LEVEL_INFO:
NXP_LOG_I("%s:%s (Len=%zu) %s", comp, message, array_len, print_buffer);
break;
case NX_LEVEL_WARN:
NXP_LOG_W("%s:%s (Len=%zu) %s", comp, message, array_len, print_buffer);
break;
case NX_LEVEL_ERROR:
NXP_LOG_E("%s:%s (Len=%zu) %s", comp, message, array_len, print_buffer);
break;
}
}
/* clang-format on */
#endif /* ANDROID */
#endif /* NX_LOG_ANDROID_H */