#ifndef __TEE_MACROS_H__
#define __TEE_MACROS_H__

#include <stdio.h>
#include "tee_internal_api.h"

#define LOGE(fmt, args...)  do { printf(fmt, ## args); } while (0)
#define LOGI(fmt, args...)  do { printf(fmt, ## args); } while (0)

//=================================================
/**
 * @brief Define macro for checking memory & error
 */
//=================================================
#ifndef CHECK_TEE_ERROR
#define CHECK_TEE_ERROR(expr)           \
    if ((expr) != TEE_SUCCESS) {        \
        LOGE("[ TA_ERROR ] res = 0x%08X at %s line %d\n", expr, __FILE__, __LINE__); \
        goto FUNCTION_EXIT;             \
    }
#endif /* CHECK_TEE_ERROR */

#ifndef CHECK_MALLOC
#define CHECK_MALLOC(expr, res)         \
    if ((expr) == NULL) {               \
        res = TEE_ERROR_OUT_OF_MEMORY;  \
        LOGE("[TA_MALLOC ] Out of Memory at %s line %d:%s\n", __FILE__, __LINE__, #expr); \
        goto FUNCTION_EXIT;             \
    }
#endif /* CHECK_MALLOC */

#endif /* __TEE_MACROS_H__ */
