/* SPDX-License-Identifier: Apache-2.0 */

#ifndef _LIBMCTP_LOG_H
#define _LIBMCTP_LOG_H

/* libmctp-internal logging */
#ifndef pr_fmt
#define pr_fmt
#endif

#if defined(MCTP_LOG_STDERR)

#include <stdio.h>

#define MCTP_LOG_ERR		0
#define MCTP_LOG_WARNING	0
#define MCTP_LOG_NOTICE		0
#define MCTP_LOG_INFO		0
#define MCTP_LOG_DEBUG		0

#define mctp_prlog(x, fmt, ...) fprintf(stderr, fmt "\n", ##__VA_ARGS__)

#elif defined(MCTP_LOG_SYSLOG)

#include <syslog.h>

#define MCTP_LOG_ERR		LOG_ERR
#define MCTP_LOG_WARNING	LOG_WARNING
#define MCTP_LOG_NOTICE		LOG_NOTICE
#define MCTP_LOG_INFO		LOG_INFO
#define MCTP_LOG_DEBUG		LOG_DEBUG

#define mctp_prlog(x, fmt, ...) syslog(x, fmt, ##__VA_ARGS__)

#elif defined(MCTP_LOG_CUSTOM)

extern void mctp_prlog(int level, const char *fmt, ...)
	__attribute__((format(printf, 2, 3)));


#else
#error No log implementation found
#endif

#define mctp_prerr(fmt, ...)  mctp_prlog(MCTP_LOG_ERR, fmt, ##__VA_ARGS__)
#define mctp_prwarn(fmt, ...) mctp_prlog(MCTP_LOG_WARNING, fmt, ##__VA_ARGS__)
#define mctp_prinfo(fmt, ...) mctp_prlog(MCTP_LOG_INFO, fmt, ##__VA_ARGS__)
#define mctp_prdebug(fmt, ...)  mctp_prlog(MCTP_LOG_DEBUG, fmt, ##__VA_ARGS__)


#endif /* _LIBMCTP_LOG_H */
