/*
 * =====================================================================================
 *
 *  Filename:  kg_log.h
 *
 *  Description:  KG log
 *
 *  Version:  1.0
 *  Created:  02/27/2020 13:47:00 PM
 *  Revision:  none
 *  Compiler:  gcc
 *
 *  Company:  Samsung Electronics
 *  Copyright (c) 2020 by Samsung Electronics, All rights reserved.
 *
 * =====================================================================================
 */
#ifndef __KG_LOG_H__
#define __KG_LOG_H__

#include <stdio.h>
#include "TZ_Vendor_tl.h"
#include "kg_utils.h"

#define LOG_ENTRY_SIZE  512
#define LOG_MSG_SIZE    (LOG_ENTRY_SIZE - sizeof(uint32_t) - sizeof(uint32_t))
#define TAG "KG_TA : "

char kg_log_msg[LOG_MSG_SIZE];

#define KG_LOG(...)    do {                                     \
        snprintf(kg_log_msg, LOG_MSG_SIZE - 1, TAG __VA_ARGS__); \
        kg_log_msg[LOG_MSG_SIZE - 1] = '\0';                      \
        printf(kg_log_msg);                                        \
        printf("\n");                                                \
} while(0);

#define KG_DUMP(...) kg_dump(__VA_ARGS__)

#define TTY_LOG(args, ...) printf((char *)args "\n", ## __VA_ARGS__)	
#define ERR_LOG(fmt_str, ...)  KG_LOG("ERR TIMA  %s: "fmt_str, __FUNCTION__, ##__VA_ARGS__)
#define WARN_LOG(fmt_str, ...) KG_LOG("WARN TIMA %s: "fmt_str, __FUNCTION__, ##__VA_ARGS__)
#define INFO_LOG(fmt_str, ...) KG_LOG("INFO TIMA %s: "fmt_str, __FUNCTION__, ##__VA_ARGS__)


/**
 * Remove below comment for debugging logs
 */
//#define __DEBUG_KG__

/**
 * Debugging
 */
#ifdef __DEBUG_KG__
#define KG_LOG_DBG(...) KG_LOG(__VA_ARGS__)
#define KG_DUMP_DBG(...) kg_dump(__VA_ARGS__)
#else
#define KG_LOG_DBG(...)
#define KG_DUMP_DBG(...)
#endif

#endif /* __KG_LOG_H__ */
