Loading include/log/log.h +8 −0 Original line number Diff line number Diff line Loading @@ -492,6 +492,7 @@ typedef enum { EVENT_TYPE_LONG = 1, EVENT_TYPE_STRING = 2, EVENT_TYPE_LIST = 3, EVENT_TYPE_FLOAT = 4, } AndroidEventLogType; #define sizeof_AndroidEventLogType sizeof(typeof_AndroidEventLogType) #define typeof_AndroidEventLogType unsigned char Loading @@ -510,6 +511,13 @@ typedef enum { sizeof(longBuf)); \ } #endif #ifndef LOG_EVENT_FLOAT #define LOG_EVENT_FLOAT(_tag, _value) { \ float floatBuf = _value; \ (void) android_btWriteLog(_tag, EVENT_TYPE_FLOAT, &floatBuf, \ sizeof(floatBuf)); \ } #endif #ifndef LOG_EVENT_STRING #define LOG_EVENT_STRING(_tag, _value) \ (void) __android_log_bswrite(_tag, _value); Loading liblog/logprint.c +27 −3 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <inttypes.h> #include <sys/param.h> #include <log/logd.h> Loading Loading @@ -432,7 +433,7 @@ static inline uint64_t get8LE(const uint8_t* src) low = src[0] | (src[1] << 8) | (src[2] << 16) | (src[3] << 24); high = src[4] | (src[5] << 8) | (src[6] << 16) | (src[7] << 24); return ((long long) high << 32) | (long long) low; return ((uint64_t) high << 32) | (uint64_t) low; } Loading Loading @@ -490,7 +491,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData, case EVENT_TYPE_LONG: /* 64-bit signed long */ { long long lval; uint64_t lval; if (eventDataLen < 8) return -1; Loading @@ -498,7 +499,30 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData, eventData += 8; eventDataLen -= 8; outCount = snprintf(outBuf, outBufLen, "%lld", lval); outCount = snprintf(outBuf, outBufLen, "%" PRId64, lval); if (outCount < outBufLen) { outBuf += outCount; outBufLen -= outCount; } else { /* halt output */ goto no_room; } } break; case EVENT_TYPE_FLOAT: /* float */ { uint32_t ival; float fval; if (eventDataLen < 4) return -1; ival = get4LE(eventData); fval = *(float*)&ival; eventData += 4; eventDataLen -= 4; outCount = snprintf(outBuf, outBufLen, "%f", fval); if (outCount < outBufLen) { outBuf += outCount; outBufLen -= outCount; Loading logcat/event.logtags +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ # 2: long # 3: string # 4: list # 5: float # # The data unit is a number taken from the following list: # 1: Number of objects Loading Loading
include/log/log.h +8 −0 Original line number Diff line number Diff line Loading @@ -492,6 +492,7 @@ typedef enum { EVENT_TYPE_LONG = 1, EVENT_TYPE_STRING = 2, EVENT_TYPE_LIST = 3, EVENT_TYPE_FLOAT = 4, } AndroidEventLogType; #define sizeof_AndroidEventLogType sizeof(typeof_AndroidEventLogType) #define typeof_AndroidEventLogType unsigned char Loading @@ -510,6 +511,13 @@ typedef enum { sizeof(longBuf)); \ } #endif #ifndef LOG_EVENT_FLOAT #define LOG_EVENT_FLOAT(_tag, _value) { \ float floatBuf = _value; \ (void) android_btWriteLog(_tag, EVENT_TYPE_FLOAT, &floatBuf, \ sizeof(floatBuf)); \ } #endif #ifndef LOG_EVENT_STRING #define LOG_EVENT_STRING(_tag, _value) \ (void) __android_log_bswrite(_tag, _value); Loading
liblog/logprint.c +27 −3 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <inttypes.h> #include <sys/param.h> #include <log/logd.h> Loading Loading @@ -432,7 +433,7 @@ static inline uint64_t get8LE(const uint8_t* src) low = src[0] | (src[1] << 8) | (src[2] << 16) | (src[3] << 24); high = src[4] | (src[5] << 8) | (src[6] << 16) | (src[7] << 24); return ((long long) high << 32) | (long long) low; return ((uint64_t) high << 32) | (uint64_t) low; } Loading Loading @@ -490,7 +491,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData, case EVENT_TYPE_LONG: /* 64-bit signed long */ { long long lval; uint64_t lval; if (eventDataLen < 8) return -1; Loading @@ -498,7 +499,30 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData, eventData += 8; eventDataLen -= 8; outCount = snprintf(outBuf, outBufLen, "%lld", lval); outCount = snprintf(outBuf, outBufLen, "%" PRId64, lval); if (outCount < outBufLen) { outBuf += outCount; outBufLen -= outCount; } else { /* halt output */ goto no_room; } } break; case EVENT_TYPE_FLOAT: /* float */ { uint32_t ival; float fval; if (eventDataLen < 4) return -1; ival = get4LE(eventData); fval = *(float*)&ival; eventData += 4; eventDataLen -= 4; outCount = snprintf(outBuf, outBufLen, "%f", fval); if (outCount < outBufLen) { outBuf += outCount; outBufLen -= outCount; Loading
logcat/event.logtags +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ # 2: long # 3: string # 4: list # 5: float # # The data unit is a number taken from the following list: # 1: Number of objects Loading