/** | |
* @file tst_sm_util.h | |
* @author NXP Semiconductors | |
* @version 1.0 | |
* @par LICENSE | |
* | |
* Copyright 2016 NXP | |
* SPDX-License-Identifier: Apache-2.0 | |
* | |
* @par Description | |
* This file provides the interface to utility functions used by the example programs, not | |
* the actual Host Library. | |
* @par HISTORY | |
* 1.0 06-aug-2013 : Initial version | |
* | |
*/ | |
#ifndef _TST_SM_UTIL_H_ | |
#define _TST_SM_UTIL_H_ | |
#include "sm_types.h" | |
#include "sm_printf.h" | |
#if !defined(TGT_A71CH) && !defined(TGT_A71CL) | |
#include "ax_api.h" | |
#endif | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
#define AX_UTIL_OK 0 //!< Integer return status value to indicate succesfull execution | |
#define AX_UTIL_ERROR 1 //!< Integer return status value to indicate execution failure | |
/// @cond | |
#define SM_KEEP_STATE 0xFE | |
/// @endcond | |
// ByteArray print style | |
#define AX_COMPACT_16 0x0010 //!< Resulting style: 001122AA.. 16 eq. HEX Values | |
#define AX_COMPACT_32 0x0020 //!< Resulting style: 001122AA.. 32 eq. HEX Values | |
#define AX_COMPACT_LINE 0x00F0 //!< Resulting style: 001122AA.... HEX Values. No line breaks. | |
#define AX_HEX_16 0x0110 //!< Resulting style: 0x00 0x11 0x22 0xAA.. 16 eq. HEX Values | |
#define AX_HEX_32 0x0120 //!< Resulting style: 0x00 0x11 0x22 0xAA.. 32 eq. HEX Values | |
#define AX_COLON_16 0x0210 //!< Resulting style: 00:11:22:AA.. 16 eq. HEX Values | |
#define AX_COLON_32 0x0220 //!< Resulting style: 00:11:22:AA.. 32 eq. HEX Values | |
#define AX_CARRAY_16 0x0310 //!< Resulting style: 0x00, 0x11, 0x22, 0xAA, .. 16 eq. HEX Values | |
#define AX_CARRAY_32 0x0320 //!< Resulting style: 0x00, 0x11, 0x22, 0xAA, .. 32 eq. HEX Values | |
#if !defined(TGT_A71CH) && !defined(TGT_A71CL) | |
/// @cond | |
typedef struct { | |
SST_Item_t item; | |
U16 sw; | |
} ItemSw_t; | |
/// @endcond | |
#endif | |
#define AX_CHECK_SW(A,B,C) axCheckSw(A,B,C,__FILE__,__LINE__) //!< Macro allowing to invoke ::axCheckSw without explicitly specifying source file name and line number as parameters | |
#define AX_CHECK_U8(A,B,C) axCheckU8(A,B,C,__FILE__,__LINE__) //!< Macro allowing to invoke ::axCheckU8 without explicitly specifying source file name and line number as parameters | |
#define AX_CHECK_U16(A,B,C) axCheckU16(A,B,C,__FILE__,__LINE__) //!< Macro allowing to invoke ::axCheckU16 without explicitly specifying source file name and line number as parameters | |
#if defined(TGT_A71CH) || defined (TGT_A71CL) | |
#define AX_COMPARE_BYTE_ARRAY(A,B,C,D,E,F,G) \ | |
axCompareByteArray(A,B,C,D,E,F,G,__FILE__,__LINE__) //!< Macro allowing to invoke ::axCompareByteArray without explicitly specifying source file name and line number as parameters | |
#endif | |
int axPrintByteArray(const char *pName, const U8 *pData, U16 dataLength, U16 style); | |
#if defined(TGT_A71CH) || defined (TGT_A71CL) | |
U8 axCompareByteArray(const char *aName, const U8 *pA, U16 aLen, const char *bName, const U8 *pB, U16 bLen, U16 style, char *szFilename, int lineNr); | |
#else | |
U8 axCompareByteArray(const char *aName, const U8 *pA, U16 aLen, const char *bName, const U8 *pB, U16 bLen, U16 style); | |
#endif | |
int axConvertHexString2ByteArray(U8 *byteArray, const char *string, int nOffset, int nByte); | |
int axConvertByteArray2HexString(char *string, int stringBufSize, const U8 *byteArray, int nByte, U16 style); | |
U8 axCheckSw(U16 sw, U16 expectedSw, char *msg, char *szFilename, int lineNr); | |
U8 axCheckU8(U8 in, U8 expected, char *msg, char *szFilename, int lineNr); | |
U8 axCheckU16(U16 in, U16 expected, char *msg, char *szFilename, int lineNr); | |
U16 axZeroSignExtend(U8* pStore, U16 actualLength, U16 expectedLength); | |
#if !defined(TGT_A71CH) && !defined(TGT_A71CL) | |
int convertString2ByteArray(U8 *byteArray, const char *string, int nOffset, int nByte); | |
U8 checkBytestring(U8 *pA, U16 aLength, U8 * pB, U16 bLength, char *msg); | |
void printBytestring (const char *pName, const U8 *pData, U16 dataLength); | |
int compareBytestrings(U8 *pA, U16 aLength, U8 * pB, U16 bLength); | |
U8 checkErr(U16 err, U16 expectedErr, char *msg); | |
U8 checkU8(U8 in, U8 expected, char *msg); | |
U8 checkU16(U16 in, U16 expected, char *msg); | |
#ifndef TGT_A70CM | |
U8 setUser(U8 targetUser); | |
#endif | |
#if defined(TGT_A70CI) || defined(TGT_A70CM) | |
char* getLifecycleStateName(U16 state); | |
#else | |
char* getLifecycleStateName(U8 state); | |
#endif | |
char* GetAuthenticationStateName(U16 state); | |
char *getItemName(SST_Item_t item); | |
char *getUserName(U8 user); | |
#endif // TGT_A71CH | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif // |