/*
 * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
 *
 */

#ifndef TZWCOMMON_H
#define TZWCOMMON_H

#if defined(TZ_MODEL_BLOWFISH) /*TZ_MODEL_BLOWFISH*/
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    #include <tee_internal_api.h>
    #include <tees_secure_object.h>

   // Definition from gpTypes.h
    #define TEE_ALG_SHA1_DIGEST_LENGTH (160 / 8)
    #define TEE_ALG_SHA256_DIGEST_LENGTH (256 / 8)

#elif defined(TZ_MODEL_QCOM) /* TZ_MODEL_QCOM*/
    #include <gpTypes.h>
    #include <qsee_hmac.h>
    #include <qsee_message.h>
    #include <qsee_timer.h>

    #define DECLARE_TRUSTED_APPLICATION_MAIN_STACK(...)
    #define DECLARE_TRUSTED_APPLICATION_MAIN_HEAP(...)

#elif defined(TZ_MODEL_Kinibi) /* TZ_MODEL_Kinibi*/
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>

    #include <tlStd.h>
    #include <mcUuid.h>
    #include <TlApi/TlApiMcSystem.h>
    #include <tee_internal_api.h>

   // Definition from gpTypes.h
    #define TEE_ALG_SHA1_DIGEST_LENGTH (160 / 8)
    #define TEE_ALG_SHA256_DIGEST_LENGTH (256 / 8)
#endif

#if defined(__cplusplus)
#define EXTERNC extern "C"
#else
#define EXTERNC
#endif  // defined(__cplusplus)

#ifndef IN
    #define IN
#endif

#ifndef OUT
    #define OUT
#endif

#endif // TZWCOMMON_H
