am 4487c605: Merge changes I0ec0fe3e,I9e5fccba
* commit '4487c605eaeea2b85c8511fe915a286c3aaf4da4': liblog: logprint use <endian.h> private: Add event payload structures to android_logger.h
This commit is contained in:
commit
e79201e4cb
2 changed files with 46 additions and 25 deletions
|
|
@ -41,4 +41,46 @@ typedef struct __attribute__((__packed__)) {
|
||||||
log_time realtime;
|
log_time realtime;
|
||||||
} android_log_header_t;
|
} 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
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -415,27 +415,6 @@ int android_log_processLogBuffer(struct logger_entry *buf,
|
||||||
return 0;
|
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.
|
* Recursively convert binary log data to printable form.
|
||||||
*
|
*
|
||||||
|
|
@ -473,7 +452,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData,
|
||||||
|
|
||||||
if (eventDataLen < 4)
|
if (eventDataLen < 4)
|
||||||
return -1;
|
return -1;
|
||||||
ival = get4LE(eventData);
|
ival = le32toh(*((int32_t *)eventData));
|
||||||
eventData += 4;
|
eventData += 4;
|
||||||
eventDataLen -= 4;
|
eventDataLen -= 4;
|
||||||
|
|
||||||
|
|
@ -494,7 +473,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData,
|
||||||
|
|
||||||
if (eventDataLen < 8)
|
if (eventDataLen < 8)
|
||||||
return -1;
|
return -1;
|
||||||
lval = get8LE(eventData);
|
lval = le64toh(*((int64_t *)eventData));
|
||||||
eventData += 8;
|
eventData += 8;
|
||||||
eventDataLen -= 8;
|
eventDataLen -= 8;
|
||||||
|
|
||||||
|
|
@ -515,7 +494,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData,
|
||||||
|
|
||||||
if (eventDataLen < 4)
|
if (eventDataLen < 4)
|
||||||
return -1;
|
return -1;
|
||||||
strLen = get4LE(eventData);
|
strLen = le32toh(*((int32_t *)eventData));
|
||||||
eventData += 4;
|
eventData += 4;
|
||||||
eventDataLen -= 4;
|
eventDataLen -= 4;
|
||||||
|
|
||||||
|
|
@ -630,7 +609,7 @@ int android_log_processBinaryLogBuffer(struct logger_entry *buf,
|
||||||
inCount = buf->len;
|
inCount = buf->len;
|
||||||
if (inCount < 4)
|
if (inCount < 4)
|
||||||
return -1;
|
return -1;
|
||||||
tagIndex = get4LE(eventData);
|
tagIndex = le32toh(*((int32_t *)eventData));
|
||||||
eventData += 4;
|
eventData += 4;
|
||||||
inCount -= 4;
|
inCount -= 4;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue