#include "entry.h"
#include "pa_tz_api.h"
#include "config.h"
#include "driver_log.h"


#if defined(VERSION_NAME) && defined(VERSION_SUFFIX)
#define VERSION_STRING (VERSION_NAME VERSION_SUFFIX)
#else
#error "Please, define VERSION_NAME and VERSION_SUFFIX"
#endif

static const char kVersionString[] = VERSION_STRING;

/**
 * @brief Always print driver version to log
 */
static void PrintVersion(void);


TEE_Result Entry() {
  PrintVersion();
  TEES_LogSetLevel(TEES_LOG_LEVEL_INFO);

  LOG_V("Start loading config from kernel\n");

  PaTzResult result = ConfigInit();
  if (result != PA_TZ_SUCCESS) {
    LOG_E("Can not initialize PA driver\n");
    return TEE_ERROR_BAD_PARAMETERS;
  }

  return TEE_SUCCESS;
}

static void PrintVersion(void) {
  TEES_Log(TEES_LOG_LEVEL_INFO, __FUNCTION__, __LINE__, PLATFORM_LOG_TAG, "Version: %s\n", kVersionString);
}
