Merge changes I0ec0fe3e,I9e5fccba

* changes:
  liblog: logprint use <endian.h>
  private: Add event payload structures to android_logger.h
This commit is contained in:
Mark Salyzyn 2015-03-04 21:21:13 +00:00 committed by Gerrit Code Review
commit 4487c605ea
2 changed files with 46 additions and 25 deletions

View file

@ -41,4 +41,46 @@ typedef struct __attribute__((__packed__)) {
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

View file

@ -415,27 +415,6 @@ int android_log_processLogBuffer(struct logger_entry *buf,
return 0;
}
/*
* 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.
*
@ -473,7 +452,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData,
if (eventDataLen < 4)
return -1;
ival = get4LE(eventData);
ival = le32toh(*((int32_t *)eventData));
eventData += 4;
eventDataLen -= 4;
@ -494,7 +473,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData,
if (eventDataLen < 8)
return -1;
lval = get8LE(eventData);
lval = le64toh(*((int64_t *)eventData));
eventData += 8;
eventDataLen -= 8;
@ -515,7 +494,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData,
if (eventDataLen < 4)
return -1;
strLen = get4LE(eventData);
strLen = le32toh(*((int32_t *)eventData));
eventData += 4;
eventDataLen -= 4;
@ -630,7 +609,7 @@ int android_log_processBinaryLogBuffer(struct logger_entry *buf,
inCount = buf->len;
if (inCount < 4)
return -1;
tagIndex = get4LE(eventData);
tagIndex = le32toh(*((int32_t *)eventData));
eventData += 4;
inCount -= 4;