Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4487c605 authored by Mark Salyzyn's avatar Mark Salyzyn Committed by Gerrit Code Review
Browse files

Merge changes I0ec0fe3e,I9e5fccba

* changes:
  liblog: logprint use <endian.h>
  private: Add event payload structures to android_logger.h
parents 8ee42f9c 66bfc5cc
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
@@ -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
+4 −25
Original line number Diff line number Diff line
@@ -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;