diff options
| author | Meizu OpenSource <patchwork@meizu.com> | 2016-08-15 10:19:42 +0800 |
|---|---|---|
| committer | Meizu OpenSource <patchwork@meizu.com> | 2016-08-15 10:19:42 +0800 |
| commit | d2e1446d81725c351dc73a03b397ce043fb18452 (patch) | |
| tree | 4dbc616b7f92aea39cd697a9084205ddb805e344 /include/linux/xlog.h | |
first commit
Diffstat (limited to 'include/linux/xlog.h')
| -rw-r--r-- | include/linux/xlog.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/include/linux/xlog.h b/include/linux/xlog.h new file mode 100644 index 000000000..2e2f9fd4f --- /dev/null +++ b/include/linux/xlog.h @@ -0,0 +1,72 @@ +#if !defined(_LINUX_XLOG_H) +#define _LINUX_XLOG_H + +#include <linux/linkage.h> + +enum android_log_priority { + ANDROID_LOG_UNKNOWN = 0, + ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */ + ANDROID_LOG_VERBOSE, + ANDROID_LOG_DEBUG, + ANDROID_LOG_INFO, + ANDROID_LOG_WARN, + ANDROID_LOG_ERROR, + ANDROID_LOG_FATAL, + ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */ +}; + +#define LOGGER_ALE_ARGS_MAX 16 + +struct ale_convert { + const char *tag_str; + const char *fmt_ptr; + const char *filename; + int lineno; + + unsigned int hash; + char params[LOGGER_ALE_ARGS_MAX]; +}; + +struct xlog_record { + const char *tag_str; + const char *fmt_str; + int prio; +}; + +#if defined(HAVE_ALE_FEATURE) + +int __xlog_ale_printk(int prio, const struct ale_convert *convert, ...); + +#define xlog_printk(prio, tag, fmt, ...) \ + ({ \ + static const struct ale_convert ____xlogk_ale_rec____ = \ + { tag, fmt, __FILE__, prio, 0, "" }; \ + __xlog_ale_printk(prio, &____xlogk_ale_rec____, \ + ##__VA_ARGS__); \ + }) + +#else /* HAVE_ALE_FEATURE */ + +asmlinkage int __xlog_printk(const struct xlog_record *rec, ...); + +int __xlog_ksystem_printk(const struct xlog_record *rec, ...); +#ifdef CONFIG_HAVE_XLOG_FEATURE +#define xlog_printk(prio, tag, fmt, ...) \ + ({ \ + static const struct xlog_record _xlog_rec = \ + {tag, fmt, prio}; \ + __xlog_printk(&_xlog_rec, ##__VA_ARGS__); \ + }) +#define xlog_ksystem_printk(prio, tag, fmt, ...) \ + ({ \ + static const struct xlog_record _xlog_rec = \ + {tag, fmt, prio}; \ + __xlog_ksystem_printk(&_xlog_rec, ##__VA_ARGS__); \ + }) +#else /* CONFIG_HAVE_XLOG_FEATURE */ +#define xlog_printk(prio, tag, fmt, ...) ((void)0) +#define xlog_ksystem_printk(prio, tag, fmt, ...) ((void)0) +#endif /* CONFIG_HAVE_XLOG_FEATURE */ +#endif /* HAVE_ALE_FEATURE */ + +#endif |
