/*
 * Copyright (C) 2020, Samsung Electronics Co., Ltd.
 *
 * TUI LL common functions for all drivers
 */

#include "tuill_drv.h"
#include "tuill_log.h"
#include "tee_tui_low_api.h"

void init_drv_ctx(void);

TEE_Result TA_CreateEntryPoint(void)
{
    openlog(log_tag, LOG_PID, 0);
    TUILL_CALL_TRACE();
    init_drv_ctx();
    return TEE_SUCCESS;
}

TEE_Result TA_OpenSessionEntryPoint(uint32_t paramTypes, TEE_Param params[4], void **sessionContext)
{
    (void)paramTypes;
    (void)params;
    (void)sessionContext;

    TUILL_CALL_TRACE();

    int ret = register_driver();
    if (ret) {
        syslog(LOG_ERR, "register_driver() failed, ret = %d\n", ret);
        return TEE_ERROR_GENERIC;
    }

    return TEE_SUCCESS;
}

void TA_CloseSessionEntryPoint(void *sessionContext)
{
    (void)sessionContext;

    TUILL_CALL_TRACE();
    unregister_driver();
}

void TA_DestroyEntryPoint(void)
{
    TUILL_CALL_TRACE();

}

TEE_Result TA_InvokeCommandEntryPoint(void *sessionContext,
                                      uint32_t commandID,
                                      uint32_t paramTypes,
                                      TEE_Param params[4])
{
    (void)sessionContext;
    (void)paramTypes;
    (void)params;

    TUILL_CALL_TRACE();
    switch (commandID) {
    default:
        break;
    }

    return TEE_SUCCESS;
}
