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