/*
 * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
 */

#include <inttypes.h>

#include "TzwCommon.h"
#include "ta_logger.h"

// Blowfish includes
#if defined(TZ_MODEL_BLOWFISH) /*TZ_MODEL_BLOWFISH*/
    #include <fcntl.h>
    #include <sys/ioctl.h>
    #include <errno.h>
    #include <tee_internal_api.h>
#elif defined(TZ_MODEL_QCOM) /*TZ_MODEL_QCOM*/
// QSEE includes
#elif defined(TZ_MODEL_Kinibi) /*TZ_MODEL_Kinibi*/
    #include <TlApi/TlApiTime.h>
#endif

#if defined(TZ_MODEL_BLOWFISH) /*TZ_MODEL_BLOWFISH*/
uint64_t systemTime(){
    TEE_Time now;
    TEE_GetSystemTime(&now);

    return now.seconds * 1000 + now.millis;
}

#elif defined(TZ_MODEL_QCOM) /*TZ_MODEL_QCOM*/

uint64_t systemTime(){

    return 0;
}

#elif defined(TZ_MODEL_Kinibi) /*TZ_MODEL_Kinibi*/
uint64_t systemTime(){

    timestamp_t now;
    tlApiResult_t ret = tlApiGetSecureTimestamp(&now);

    if(TLAPI_OK != ret){
        LOG_E("Fail to tlApiGetSecureTimestamp(): %d", ret);
    }

    return now / 1000;
}

#endif
