/**
* @file ax_api.h
* @author NXP Semiconductors
* @version 1.0
* @par License
*
* Copyright 2016,2020 NXP
* SPDX-License-Identifier: Apache-2.0
*
* @par Description
* This file is the communication specific Host API of the A70CM/CI and A71CH secure module.
* It also customizes the Generic Ax library for this specific product instance
* @par History
* 1.0   27-march-2014 : Initial version
*        7-may-2017   : Unified version for A70CM, CI and A71CH
*
*****************************************************************************/
#ifndef _AX_API_
#define _AX_API_

#if defined(SSS_USE_FTR_FILE)
#include "fsl_sss_ftr.h"
#else
#include "fsl_sss_ftr_default.h"
#endif

#include "sm_types.h"
#include "ax_common.h"
#if (SSS_HAVE_A71CH || SSS_HAVE_A71CH_SIM)
#include "a71ch_api.h"
#include "ax_scp.h"
#elif (SSS_HAVE_A71CL || SSS_HAVE_SE050_L)
#include "a71cl_api.h"
#include "ax_scp.h"
#elif defined TGT_A70CI
#include "a70ci_api.h"
#elif defined TGT_A70CM
#include "a70cm_api.h"
#elif defined TGT_NONE
#include "ax_common_a71ch.h"
#include "a71ch_api.h"
/* Nothing specific to do */
#elif SSS_HAVE_APPLET_SE05X_IOT
#if AX_EMBEDDED
#include "ax_scp.h"
#endif
#include "a71ch_api.h"
#include "ax_common_a71ch.h"
#elif (SSS_HAVE_MBEDTLS || SSS_HAVE_OPENSSL || SSS_HAVE_HOSCRYPTO_USER)
/* Nothing specific to do */
#else
#error "Define TGT_X (the secure module target, either TGT_A71CH, TGT_A70CI or TGT_A70CM) as a preprocessor constant"
#endif

#include <sm_api.h>

#ifdef __cplusplus
extern "C" {
#endif

/// @cond Dummy definition
typedef enum SST_Item
{
    SST_DUMMY        = 0xFFFF
} SST_Item_t;
/// @endcond

#if (SSS_HAVE_A71CH || SSS_HAVE_A71CL || SSS_HAVE_A71CH_SIM || SSS_HAVE_SE050_L)
U16 SM_ResumeConnection(SmCommState_t *commState, Scp03SessionState_t *scp03State);
#endif

#if defined(TGT_A71CH)
#if defined(IPC)
U16 SM_LockChannel(void);
U16 SM_UnlockChannel(void);

#define SM_LOCK_CHANNEL() SM_LockChannel()
#define SM_UNLOCK_CHANNEL() SM_UnlockChannel()
#else
#define SM_LOCK_CHANNEL()
#define SM_UNLOCK_CHANNEL()
#endif // TGT_A71CH
#endif // IPC

#ifdef __cplusplus
}
#endif
#endif //_AX_API_
