217 lines
9.0 KiB
C
217 lines
9.0 KiB
C
/**************************************************************************************
|
|
* Copyright (c) 2016-2017, ARM Limited or its affiliates. All rights reserved *
|
|
* *
|
|
* This file and the related binary are licensed under the following license: *
|
|
* *
|
|
* ARM Object Code and Header Files License, v1.0 Redistribution. *
|
|
* *
|
|
* Redistribution and use of object code, header files, and documentation, without *
|
|
* modification, are permitted provided that the following conditions are met: *
|
|
* *
|
|
* 1) Redistributions must reproduce the above copyright notice and the *
|
|
* following disclaimer in the documentation and/or other materials *
|
|
* provided with the distribution. *
|
|
* *
|
|
* 2) Unless to the extent explicitly permitted by law, no reverse *
|
|
* engineering, decompilation, or disassembly of is permitted. *
|
|
* *
|
|
* 3) Redistribution and use is permitted solely for the purpose of *
|
|
* developing or executing applications that are targeted for use *
|
|
* on an ARM-based product. *
|
|
* *
|
|
* DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
|
|
* CONTRIBUTORS "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT *
|
|
* NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, *
|
|
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE *
|
|
* COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED *
|
|
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
|
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
|
|
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
|
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
|
|
**************************************************************************************/
|
|
|
|
|
|
#ifndef _SSI_PAL_LOG_H_
|
|
#define _SSI_PAL_LOG_H_
|
|
|
|
#include "ssi_pal_types.h"
|
|
|
|
|
|
/*!
|
|
@file
|
|
@brief This file contains the PAL layer log definitions, by default the log is disabled.
|
|
@defgroup ssi_pal_log CryptoCell PAL logging APIs and definitions
|
|
@{
|
|
@ingroup ssi_pal
|
|
|
|
*/
|
|
|
|
/* PAL log levels (to be used in SASI_PAL_logLevel) */
|
|
/*! PAL log level - disabled. */
|
|
#define SASI_PAL_LOG_LEVEL_NULL -1 /*!< \internal Disable logging */
|
|
/*! PAL log level - error. */
|
|
#define SASI_PAL_LOG_LEVEL_ERR 0
|
|
/*! PAL log level - warning. */
|
|
#define SASI_PAL_LOG_LEVEL_WARN 1
|
|
/*! PAL log level - info. */
|
|
#define SASI_PAL_LOG_LEVEL_INFO 2
|
|
/*! PAL log level - debug. */
|
|
#define SASI_PAL_LOG_LEVEL_DEBUG 3
|
|
/*! PAL log level - trace. */
|
|
#define SASI_PAL_LOG_LEVEL_TRACE 4
|
|
/*! PAL log level - data. */
|
|
#define SASI_PAL_LOG_LEVEL_DATA 5
|
|
|
|
#ifndef SASI_PAL_LOG_CUR_COMPONENT
|
|
/* Setting default component mask in case caller did not define */
|
|
/* (a mask that is always on for every log mask value but full masking) */
|
|
/*! Default log debugged component.*/
|
|
#define SASI_PAL_LOG_CUR_COMPONENT 0xFFFFFFFF
|
|
#endif
|
|
#ifndef SASI_PAL_LOG_CUR_COMPONENT_NAME
|
|
/*! Default log component name.*/
|
|
#define SASI_PAL_LOG_CUR_COMPONENT_NAME "Dx"
|
|
#endif
|
|
|
|
/* Select compile time log level (default if not explicitly specified by caller) */
|
|
#ifndef SASI_PAL_MAX_LOG_LEVEL /* Can be overriden by external definition of this constant */
|
|
#ifdef DEBUG
|
|
/*! Default debug log level (when debug is set to on).*/
|
|
#define SASI_PAL_MAX_LOG_LEVEL SASI_PAL_LOG_LEVEL_ERR /*SASI_PAL_LOG_LEVEL_DEBUG*/
|
|
#else /* Disable logging */
|
|
/*! Default debug log level (when debug is set to off).*/
|
|
#define SASI_PAL_MAX_LOG_LEVEL SASI_PAL_LOG_LEVEL_NULL
|
|
#endif
|
|
#endif /*SASI_PAL_MAX_LOG_LEVEL*/
|
|
/*! Evaluate SASI_PAL_MAX_LOG_LEVEL in case provided by caller */
|
|
#define __SASI_PAL_LOG_LEVEL_EVAL(level) level
|
|
/*! Maximal log level defintion.*/
|
|
#define _SASI_PAL_MAX_LOG_LEVEL __SASI_PAL_LOG_LEVEL_EVAL(SASI_PAL_MAX_LOG_LEVEL)
|
|
|
|
#ifdef ARM_DSM //not support ARM DSM log feature
|
|
/*! Log init function. */
|
|
#define SaSi_PalLogInit() do {} while (0)
|
|
/*! Log set level function - sets the level of logging in case of debug. */
|
|
#define SaSi_PalLogLevelSet(setLevel) do {} while (0)
|
|
/*! Log set mask function - sets the component masking in case of debug. */
|
|
#define SaSi_PalLogMaskSet(setMask) do {} while (0)
|
|
/*! Log log funtion based on various platform */
|
|
#define SaSi_PalLogPlatsampan(level, msg) do {} while (0)
|
|
|
|
#else
|
|
#if _SASI_PAL_MAX_LOG_LEVEL > SASI_PAL_LOG_LEVEL_NULL
|
|
/*! Log init function. */
|
|
void SaSi_PalLogInit(void);
|
|
/*! Log set level function - sets the level of logging in case of debug. */
|
|
void SaSi_PalLogLevelSet(int setLevel);
|
|
/*! Log set mask function - sets the component masking in case of debug. */
|
|
void SaSi_PalLogMaskSet(uint32_t setMask);
|
|
/*! Log log funtion based on various platform */
|
|
void SaSi_PalLogPlat(uint32_t level, const char *msg);
|
|
|
|
/*! Global variable for log level */
|
|
extern int SaSi_PAL_logLevel;
|
|
/*! Global variable for log mask */
|
|
extern uint32_t SaSi_PAL_logMask;
|
|
#else /* No log */
|
|
/*! Log init function. */
|
|
#define SaSi_PalLogInit() do {} while (0)
|
|
/*! Log set level function - sets the level of logging in case of debug. */
|
|
#define SaSi_PalLogLevelSet(setLevel) do {} while (0)
|
|
/*! Log set mask function - sets the component masking in case of debug. */
|
|
#define SaSi_PalLogMaskSet(setMask) do {} while (0)
|
|
/*! Log log funtion based on various platform */
|
|
#define SaSi_PalLogPlat(level, msg) do {} while (0)
|
|
|
|
#endif
|
|
#endif
|
|
|
|
/*! Filter logging based on logMask and dispatch to platform specific logging mechanism */
|
|
#define _SASI_PAL_LOG(level, msg) \
|
|
if (SaSi_PAL_logMask & SASI_PAL_LOG_CUR_COMPONENT) \
|
|
SaSi_PalLogPlat(SASI_PAL_LOG_LEVEL_ ## level, msg )
|
|
|
|
#if (_SASI_PAL_MAX_LOG_LEVEL >= SASI_PAL_LOG_LEVEL_ERR)
|
|
|
|
/*! Log messages according to log level.*/
|
|
#define SASI_PAL_LOG_ERR(msg) \
|
|
_SASI_PAL_LOG(ERR, msg)
|
|
#else
|
|
/*! Log messages according to log level.*/
|
|
#define SASI_PAL_LOG_ERR( ... ) do {} while (0)
|
|
#endif
|
|
|
|
#if (_SASI_PAL_MAX_LOG_LEVEL >= SASI_PAL_LOG_LEVEL_WARN)
|
|
/*! Log messages according to log level.*/
|
|
#define SASI_PAL_LOG_WARN(msg) \
|
|
if (SaSi_PAL_logLevel >= SASI_PAL_LOG_LEVEL_WARN) \
|
|
_SASI_PAL_LOG(WARN, msg)
|
|
#else
|
|
/*! Log messages according to log level.*/
|
|
#define SASI_PAL_LOG_WARN( ... ) do {} while (0)
|
|
#endif
|
|
|
|
#if (_SASI_PAL_MAX_LOG_LEVEL >= SASI_PAL_LOG_LEVEL_INFO)
|
|
/*! Log messages according to log level.*/
|
|
#define SASI_PAL_LOG_INFO(msg) \
|
|
if (SaSi_PAL_logLevel >= SASI_PAL_LOG_LEVEL_INFO) \
|
|
_SASI_PAL_LOG(INFO, msg)
|
|
#else
|
|
/*! Log messages according to log level.*/
|
|
#define SASI_PAL_LOG_INFO( ... ) do {} while (0)
|
|
#endif
|
|
|
|
#if (_SASI_PAL_MAX_LOG_LEVEL >= SASI_PAL_LOG_LEVEL_DEBUG)
|
|
/*! Log messages according to log level.*/
|
|
#define SASI_PAL_LOG_DEBUG(msg) \
|
|
if (SaSi_PAL_logLevel >= SASI_PAL_LOG_LEVEL_DEBUG) \
|
|
_SASI_PAL_LOG(DEBUG, msg)
|
|
|
|
/*! Log message buffer.*/
|
|
#define SASI_PAL_LOG_DUMP_BUF(msg, buf, size) \
|
|
do { \
|
|
int i; \
|
|
uint8_t *pData = (uint8_t*)buf; \
|
|
\
|
|
PRINTF("%s (%d):\n", msg, size); \
|
|
for (i = 0; i < size; i++) { \
|
|
PRINTF("0x%02X ", pData[i]); \
|
|
if ((i & 0xF) == 0xF) { \
|
|
PRINTF("\n"); \
|
|
} \
|
|
} \
|
|
PRINTF("\n"); \
|
|
} while (0)
|
|
#else
|
|
/*! Log debug messages.*/
|
|
#define SASI_PAL_LOG_DEBUG( ... ) do {} while (0)
|
|
/*! Log debug buffer.*/
|
|
#define SASI_PAL_LOG_DUMP_BUF(msg, buf, size) do {} while (0)
|
|
#endif
|
|
|
|
#if (_SASI_PAL_MAX_LOG_LEVEL >= SASI_PAL_LOG_LEVEL_TRACE)
|
|
/*! Log debug trace.*/
|
|
#define SASI_PAL_LOG_TRACE(msg) \
|
|
if (SaSi_PAL_logLevel >= SASI_PAL_LOG_LEVEL_TRACE) \
|
|
_SASI_PAL_LOG(TRACE, format, msg)
|
|
#else
|
|
/*! Log debug trace.*/
|
|
#define SASI_PAL_LOG_TRACE(...) do {} while (0)
|
|
#endif
|
|
|
|
#if (_SASI_PAL_MAX_LOG_LEVEL >= SASI_PAL_LOG_LEVEL_TRACE)
|
|
/*! Log debug data.*/
|
|
#define SASI_PAL_LOG_DATA(msg) \
|
|
if (SaSi_PAL_logLevel >= SASI_PAL_LOG_LEVEL_TRACE) \
|
|
_SASI_PAL_LOG(DATA, format, msg)
|
|
#else
|
|
/*! Log debug data.*/
|
|
#define SASI_PAL_LOG_DATA( ...) do {} while (0)
|
|
#endif
|
|
/**
|
|
@}
|
|
*/
|
|
#endif /*_SSI_PAL_LOG_H_*/
|