blob: 80664b185f9b7a9f03ff7bed9aaf672090601004 [file] [log] [blame]
/**
* @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 //