aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/cutils/alelog.h59
-rw-r--r--include/cutils/xlog.h185
2 files changed, 244 insertions, 0 deletions
diff --git a/include/cutils/alelog.h b/include/cutils/alelog.h
new file mode 100644
index 0000000..294c7a9
--- /dev/null
+++ b/include/cutils/alelog.h
@@ -0,0 +1,59 @@
+#if !defined(__ALE_H__)
+#define __ALE_H__
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#define LOGGER_ALE_MASK 0xf0
+
+#define LOGGER_ALE_MSG_RAW 0x00
+#define LOGGER_ALE_MSG_K 0x10
+#define LOGGER_ALE_MSG_N 0x20
+#define LOGGER_ALE_MSG_J 0x30
+#define LOGGER_ALE_XMSG_K 0x40
+#define LOGGER_ALE_XMSG_N 0x50
+#define LOGGER_ALE_XMSG_J 0x60
+
+#define LOGGER_ALE_MSG_SIZE 768
+
+#define LOGGER_ALE_ARGS_MAX 16
+struct ale_convert {
+ const char *tag_str;
+ const char *fmt_ptr;
+ const char *file;
+ int lineno;
+ unsigned int hash;
+ char params[LOGGER_ALE_ARGS_MAX];
+};
+
+int ale_log_output_binary(int prio, const char *tag, const void *payload, size_t len);
+
+int ale_log_output(int bufid, int prio, const struct ale_convert *convert, ...);
+
+#define ale_log_print(bufid, prio, tag, fmt, ...) \
+ ({ \
+ if (__builtin_constant_p(tag) && __builtin_constant_p(fmt)) { \
+ static const struct ale_convert ____ale_rec____ = \
+ { \
+ __builtin_constant_p(tag) ? tag : NULL, \
+ __builtin_constant_p(fmt) ? fmt : NULL, \
+ __FILE__, \
+ __builtin_constant_p(prio) ? prio : 0, \
+ 0, \
+ "" }; \
+ ale_log_output(bufid, prio, &____ale_rec____, ##__VA_ARGS__); \
+ } \
+ else { \
+ struct ale_convert ale = \
+ {tag, fmt, NULL, \
+ 0, 0, ""}; \
+ ale_log_output(bufid, prio, &ale, ##__VA_ARGS__); \
+ } \
+ })
+
+#if defined(__cplusplus)
+};
+#endif
+
+#endif
diff --git a/include/cutils/xlog.h b/include/cutils/xlog.h
new file mode 100644
index 0000000..a8089b7
--- /dev/null
+++ b/include/cutils/xlog.h
@@ -0,0 +1,185 @@
+#if !defined(_XLOG_H)
+#define _XLOG_H
+
+#include <cutils/log.h>
+#include <cutils/alelog.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int xlogf_java_tag_is_on(const char *name, int level);
+int xlogf_native_tag_is_on(const char *name, int level);
+
+int xlogf_java_xtag_is_on(const char *name, int level);
+int xlogf_native_xtag_is_on(const char *name, int level);
+
+#ifndef XLOG_TAG
+#define XLOG_TAG NULL
+#endif
+
+#ifndef SXLOGV
+#define SXLOGV(...) ((void)SXLOG_PRI(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGD
+#define SXLOGD(...) ((void)SXLOG_PRI(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGI
+#define SXLOGI(...) ((void)SXLOG_PRI(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGW
+#define SXLOGW(...) ((void)SXLOG_PRI(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGE
+#define SXLOGE(...) ((void)SXLOG_PRI(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGF
+#define SXLOGF(...) ((void)SXLOG_PRI(ANDROID_LOG_FATAL, LOG_TAG, __VA_ARGS__))
+#endif
+#if LOG_NDEBUG
+#define SXLOG_ASSERT(cond, ...) \
+ ( (CONDITION(cond)) \
+ ? ((void)SXLOGF(LOG_TAG, __VA_ARGS__)) \
+ : (void)0 )
+#else
+#define SXLOG_ASSERT(cond, ...) ((void)0)
+#endif
+
+#define SXLOG_ALWAYS_ASSERT(cond,...) \
+ ( (CONDITION(cond)) \
+ ? ((void)SXLOGF(LOG_TAG, __VA_ARGS__)) \
+ : (void)0 )
+
+#ifndef XLOGV
+#define XLOGV(...) ((void)XLOG_PRI(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGD
+#define XLOGD(...) ((void)XLOG_PRI(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGI
+#define XLOGI(...) ((void)XLOG_PRI(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGW
+#define XLOGW(...) ((void)XLOG_PRI(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGE
+#define XLOGE(...) ((void)XLOG_PRI(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGF
+#define XLOGF(...) ((void)XLOG_PRI(ANDROID_LOG_FATAL, LOG_TAG, __VA_ARGS__))
+#endif
+
+#if LOG_NDEBUG
+#define XLOG_ASSERT(cond, ...) \
+ (!(cond) \
+ ? ((void)XLOGF(__VA_ARGS__)) \
+ : (void)0)
+#else
+#define XLOG_ASSERT(cond, ...) ((void)0)
+#endif
+
+#define XLOG_ALWAY_ASSERT(cond, ...) \
+ (!(cond) \
+ ? ((void)XLOGF(__VA_ARGS__)) \
+ : (void)0)
+
+
+#ifndef SXLOGV2
+#define SXLOGV2(...) ((void)SXLOG_PRI(ANDROID_LOG_VERBOSE, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGD2
+#define SXLOGD2(...) ((void)SXLOG_PRI(ANDROID_LOG_DEBUG, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGI2
+#define SXLOGI2(...) ((void)SXLOG_PRI(ANDROID_LOG_INFO, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGW2
+#define SXLOGW2(...) ((void)SXLOG_PRI(ANDROID_LOG_WARN, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGE2
+#define SXLOGE2(...) ((void)SXLOG_PRI(ANDROID_LOG_ERROR, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef SXLOGF2
+#define SXLOGF2(...) ((void)SXLOG_PRI(ANDROID_LOG_FATAL, XLOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef XLOGV2
+#define XLOGV2(...) ((void)XLOG_PRI(ANDROID_LOG_VERBOSE, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGD2
+#define XLOGD2(...) ((void)XLOG_PRI(ANDROID_LOG_DEBUG, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGI2
+#define XLOGI2(...) ((void)XLOG_PRI(ANDROID_LOG_INFO, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGW2
+#define XLOGW2(...) ((void)XLOG_PRI(ANDROID_LOG_WARN, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGE2
+#define XLOGE2(...) ((void)XLOG_PRI(ANDROID_LOG_ERROR, XLOG_TAG, __VA_ARGS__))
+#endif
+#ifndef XLOGF2
+#define XLOGF2(...) ((void)XLOG_PRI(ANDROID_LOG_FATAL, XLOG_TAG, __VA_ARGS__))
+#endif
+
+struct xlog_record {
+ const char *tag_str;
+ const char *fmt_str;
+ int prio;
+};
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+int __xlog_buf_printf(int bufid, const struct xlog_record *rec, ...);
+
+#if defined(__cplusplus)
+}
+#endif
+
+#if !defined(HAVE_ALE_FEATURE)
+
+#define xlog_buf_printf(bufid, prio, tag, fmt, ...) \
+ ({ \
+ static const struct xlog_record _xlog_rec = \
+ {tag, fmt, prio}; \
+ __xlog_buf_printf(bufid, &_xlog_rec, ##__VA_ARGS__); \
+ })
+
+#else
+
+#define xlog_buf_printf(bufid, prio, tag, fmt, ...) \
+ ({ \
+ static const struct ale_convert ____xlog_ale_rec____ = \
+ { tag, fmt, __FILE__, prio, 0, "" }; \
+ ale_log_output(bufid, prio, &____xlog_ale_rec____, \
+ ##__VA_ARGS__); \
+ })
+
+#endif
+
+#ifdef HAVE_XLOG_FEATURE
+#define XLOG_PRI(priority, tag, ...) \
+ xlog_buf_printf(LOG_ID_MAIN, priority, tag, __VA_ARGS__)
+
+#define SXLOG_PRI(priority, tag, ...) \
+ xlog_buf_printf(LOG_ID_MAIN, priority, tag, __VA_ARGS__)
+
+#define xlog_printf(priority, tag, ...) \
+ xlog_buf_printf(LOG_ID_MAIN, priority, tag, __VA_ARGS__)
+
+#define sxlog_printf(priority, tag, ...) \
+ xlog_buf_printf(LOG_ID_SYSTEM, priority, tag, __VA_ARGS__)
+#else //HAVE_XLOG_FEATURE
+#define XLOG_PRI(priority, tag, ...) ((void)0)
+#define SXLOG_PRI(priority, tag, ...) ((void)0)
+#define xlog_printf(priority, tag, ...) ((void)0)
+#define sxlog_printf(priority, tag, ...) ((void)0)
+#endif //HAVE_XLOG_FEATURE
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif