12#ifndef __XF_UTILS_LOG_H__
13#define __XF_UTILS_LOG_H__
18#include "../xf_common/xf_common.h"
35#define XF_LOG_NONE (0)
36#define XF_LOG_USER (1)
37#define XF_LOG_ERROR (2)
38#define XF_LOG_WARN (3)
39#define XF_LOG_INFO (4)
40#define XF_LOG_DEBUG (5)
41#define XF_LOG_VERBOSE (6)
43#if XF_LOG_DUMP_IS_ENABLE
45#define XF_DUMP_HEAD_BIT (0)
46#define XF_DUMP_ASCII_BIT (1)
47#define XF_DUMP_ESCAPE_BIT (2)
48#define XF_DUMP_TAIL_BIT (3)
50#define XF_DUMP_BIT(nr) BIT(nr)
52#define XF_DUMP_TABLE (XF_DUMP_BIT(XF_DUMP_HEAD_BIT) | XF_DUMP_BIT(XF_DUMP_TAIL_BIT))
55#define XF_DUMP_FLAG_HEX_ONLY (XF_DUMP_TABLE)
57#define XF_DUMP_FLAG_HEX_ASCII (XF_DUMP_BIT(XF_DUMP_ASCII_BIT) | XF_DUMP_TABLE)
59#define XF_DUMP_FLAG_HEX_ASCII_ESCAPE (XF_DUMP_FLAG_HEX_ASCII | XF_DUMP_BIT(XF_DUMP_ESCAPE_BIT))
67#if XF_LOG_DUMP_IS_ENABLE
83#if XF_LOG_LEVEL >= XF_LOG_USER
92# define XF_LOGU(tag, format, ...) xf_log_level(XF_LOG_USER, tag, format, ##__VA_ARGS__)
94# define XF_LOGU(tag, format, ...) (void)(tag)
97#if XF_LOG_LEVEL >= XF_LOG_ERROR
106# define XF_LOGE(tag, format, ...) xf_log_level(XF_LOG_ERROR, tag, format, ##__VA_ARGS__)
108# define XF_LOGE(tag, format, ...) (void)(tag)
111#if XF_LOG_LEVEL >= XF_LOG_WARN
120# define XF_LOGW(tag, format, ...) xf_log_level(XF_LOG_WARN, tag, format, ##__VA_ARGS__)
122# define XF_LOGW(tag, format, ...) (void)(tag)
125#if XF_LOG_LEVEL >= XF_LOG_INFO
134# define XF_LOGI(tag, format, ...) xf_log_level(XF_LOG_INFO, tag, format, ##__VA_ARGS__)
136# define XF_LOGI(tag, format, ...) (void)(tag)
139#if XF_LOG_LEVEL >= XF_LOG_DEBUG
148# define XF_LOGD(tag, format, ...) xf_log_level(XF_LOG_DEBUG, tag, format, ##__VA_ARGS__)
150# define XF_LOGD(tag, format, ...) (void)(tag)
153#if XF_LOG_LEVEL >= XF_LOG_VERBOSE
162# define XF_LOGV(tag, format, ...) xf_log_level(XF_LOG_VERBOSE, tag, format, ##__VA_ARGS__)
164# define XF_LOGV(tag, format, ...) (void)(tag)
167#if XF_LOG_DUMP_IS_ENABLE
175#define XF_LOG_BUFFER_HEX(buffer, buffer_len) \
176 xf_dump_mem(buffer, buffer_len, XF_DUMP_FLAG_HEX_ONLY)
185#define XF_LOG_BUFFER_HEXDUMP(buffer, buffer_len) \
186 xf_dump_mem(buffer, buffer_len, XF_DUMP_FLAG_HEX_ASCII)
195#define XF_LOG_BUFFER_HEXDUMP_ESCAPE(buffer, buffer_len) \
196 xf_dump_mem(buffer, buffer_len, XF_DUMP_FLAG_HEX_ASCII_ESCAPE)
200#define XF_LOG_BUFFER_HEX(buffer, buffer_len)
201#define XF_LOG_BUFFER_HEXDUMP(buffer, buffer_len)
202#define XF_LOG_BUFFER_HEXDUMP_ESCAPE(buffer, buffer_len)
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
xf_err_t xf_dump_mem(void *addr, size_t size, uint8_t flags_mask)
输出内存信息。