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

Commit 07e07aa4 authored by Jeff Brown's avatar Jeff Brown Committed by Gerrit Code Review
Browse files

Merge "Add float support to binary event log."

parents f0d24737 44193d9e
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -492,6 +492,7 @@ typedef enum {
    EVENT_TYPE_LONG     = 1,
    EVENT_TYPE_STRING   = 2,
    EVENT_TYPE_LIST     = 3,
    EVENT_TYPE_FLOAT    = 4,
} AndroidEventLogType;
#define sizeof_AndroidEventLogType sizeof(typeof_AndroidEventLogType)
#define typeof_AndroidEventLogType unsigned char
@@ -510,6 +511,13 @@ typedef enum {
            sizeof(longBuf));                                               \
    }
#endif
#ifndef LOG_EVENT_FLOAT
#define LOG_EVENT_FLOAT(_tag, _value) {                                     \
        float floatBuf = _value;                                            \
        (void) android_btWriteLog(_tag, EVENT_TYPE_FLOAT, &floatBuf,        \
            sizeof(floatBuf));                                              \
    }
#endif
#ifndef LOG_EVENT_STRING
#define LOG_EVENT_STRING(_tag, _value)                                      \
        (void) __android_log_bswrite(_tag, _value);
+27 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include <sys/param.h>

#include <log/logd.h>
@@ -432,7 +433,7 @@ static inline uint64_t get8LE(const uint8_t* src)

    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;
    return ((uint64_t) high << 32) | (uint64_t) low;
}


@@ -490,7 +491,7 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData,
    case EVENT_TYPE_LONG:
        /* 64-bit signed long */
        {
            long long lval;
            uint64_t lval;

            if (eventDataLen < 8)
                return -1;
@@ -498,7 +499,30 @@ static int android_log_printBinaryEvent(const unsigned char** pEventData,
            eventData += 8;
            eventDataLen -= 8;

            outCount = snprintf(outBuf, outBufLen, "%lld", lval);
            outCount = snprintf(outBuf, outBufLen, "%" PRId64, lval);
            if (outCount < outBufLen) {
                outBuf += outCount;
                outBufLen -= outCount;
            } else {
                /* halt output */
                goto no_room;
            }
        }
        break;
    case EVENT_TYPE_FLOAT:
        /* float */
        {
            uint32_t ival;
            float fval;

            if (eventDataLen < 4)
                return -1;
            ival = get4LE(eventData);
            fval = *(float*)&ival;
            eventData += 4;
            eventDataLen -= 4;

            outCount = snprintf(outBuf, outBufLen, "%f", fval);
            if (outCount < outBufLen) {
                outBuf += outCount;
                outBufLen -= outCount;
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
# 2: long
# 3: string
# 4: list
# 5: float
#
# The data unit is a number taken from the following list:
# 1: Number of objects