Merge changes I0ec0fe3e,I9e5fccba
* changes: liblog: logprint use <endian.h> private: Add event payload structures to android_logger.h
This commit is contained in:
commit
4487c605ea
2 changed files with 46 additions and 25 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue