| /* 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 */ |