am e79201e4: am 4487c605: Merge changes I0ec0fe3e,I9e5fccba
* commit 'e79201e4cb030e9df773ff535d34e12c8b3c8624':
liblog: logprint use <endian.h>
private: Add event payload structures to android_logger.h
diff --git a/include/private/android_logger.h b/include/private/android_logger.h
index cc7ba30..724ca51 100644
--- a/include/private/android_logger.h
+++ b/include/private/android_logger.h
@@ -41,4 +41,46 @@
log_time realtime;
} android_log_header_t;
+/* Event Header Structure to logd */
+typedef struct __attribute__((__packed__)) {
+ int32_t tag; // Little Endian Order
+} android_event_header_t;
+
+/* Event payload EVENT_TYPE_INT */
+typedef struct __attribute__((__packed__)) {
+ int8_t type; // EVENT_TYPE_INT
+ int32_t data; // Little Endian Order
+} android_event_int_t;
+
+/* Event with single EVENT_TYPE_INT */
+typedef struct __attribute__((__packed__)) {
+ android_event_header_t header;
+ android_event_int_t payload;
+} android_log_event_int_t;
+
+/* Event payload EVENT_TYPE_LONG */
+typedef struct __attribute__((__packed__)) {
+ int8_t type; // EVENT_TYPE_LONG
+ int64_t data; // Little Endian Order
+} android_event_long_t;
+
+/* Event with single EVENT_TYPE_LONG */
+typedef struct __attribute__((__packed__)) {
+ android_event_header_t header;
+ android_event_long_t payload;
+} android_log_event_long_t;
+
+/* Event payload EVENT_TYPE_STRING */
+typedef struct __attribute__((__packed__)) {
+ int8_t type; // EVENT_TYPE_STRING;
+ int32_t length; // Little Endian Order
+ char data[];
+} android_event_string_t;
+
+/* Event with single EVENT_TYPE_STRING */
+typedef struct __attribute__((__packed__)) {
+ android_event_header_t header;
+ android_event_string_t payload;
+} android_log_event_string_t;
+
#endif
diff --git a/liblog/logprint.c b/liblog/logprint.c
index 7ba4c8e..8093a4c 100644
--- a/liblog/logprint.c
+++ b/liblog/logprint.c
@@ -416,27 +416,6 @@
}
/*
- * Extract a 4-byte value from a byte stream.
- */
-static inline uint32_t get4LE(const uint8_t* src)
-{
- return src[0] | (src[1] << 8) | (src[2] << 16) | (src[3] << 24);
-}
-
-/*
- * Extract an 8-byte value from a byte stream.
- */
-static inline uint64_t get8LE(const uint8_t* src)
-{
- uint32_t low, high;
-
- 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;
-}
-
-
-/*
* Recursively convert binary log data to printable form.
*
* This needs to be recursive because you can have lists of lists.
@@ -473,7 +452,7 @@
if (eventDataLen < 4)
return -1;
- ival = get4LE(eventData);
+ ival = le32toh(*((int32_t *)eventData));
eventData += 4;
eventDataLen -= 4;
@@ -494,7 +473,7 @@
if (eventDataLen < 8)
return -1;
- lval = get8LE(eventData);
+ lval = le64toh(*((int64_t *)eventData));
eventData += 8;
eventDataLen -= 8;
@@ -515,7 +494,7 @@
if (eventDataLen < 4)
return -1;
- strLen = get4LE(eventData);
+ strLen = le32toh(*((int32_t *)eventData));
eventData += 4;
eventDataLen -= 4;
@@ -630,7 +609,7 @@
inCount = buf->len;
if (inCount < 4)
return -1;
- tagIndex = get4LE(eventData);
+ tagIndex = le32toh(*((int32_t *)eventData));
eventData += 4;
inCount -= 4;