#ifndef __TEEGRIS_HANDLERS_H__
#define __TEEGRIS_HANDLERS_H__

#include "five_app.h"
#include <tee_internal_api.h>
#include "kernel_cmd.h"

int FiveKernelCmd(unsigned int client_id, struct kernel_cmd *kernel_cmd);

static inline TEE_Result FiveRegisterKernelHandler(void) {
  return TEES_RegisterKernelCmdHandler(FiveKernelCmd);
}

#if !defined(CONFIG_ENABLE_USERSPACE_ACCESS)
static inline TEE_Result FiveEntryPointHandler(uint32_t commandID,
                             uint32_t paramTypes, TEE_Param params[4]) {
  return TEE_ERROR_ACCESS_DENIED;
}
#else
static inline TEE_Result FiveEntryPointHandler(uint32_t commandID,
                             uint32_t paramTypes, TEE_Param params[4]) {
  return FiveCommandHandler(commandID, paramTypes, params);
}
#endif

#endif // __TEEGRIS_HANDLERS_H__
