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

Commit 5e81aa2c authored by Tom Cherry's avatar Tom Cherry
Browse files

liblog: fixup log_id_t

1) We don't need two copies of log_id_t
2) We don't need misleading sizeof_log_id_t or typeof_log_id_t macros
3) logd should use android_log_header_t explicitly for its recv buffer
   size
4) Following on from b/129272512, we're settling that returning
   LOG_ID_MAX is an acceptable return value from
   android_name_to_log_id().

Bug: 129272512
Test: build, liblog, logcat unit tests
Change-Id: I67fb964a4a0ae9cb6e1514ca110e47e00dfcfa9a
parent 32e7325c
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -124,8 +124,6 @@ int __android_log_vprint(int prio, const char* tag, const char* fmt, va_list ap)
void __android_log_assert(const char* cond, const char* tag, const char* fmt, ...)
    __attribute__((__noreturn__)) __attribute__((__format__(printf, 3, 4)));

#ifndef log_id_t_defined
#define log_id_t_defined
/**
 * Identifies a specific log buffer for __android_log_buf_write()
 * and __android_log_buf_print().
@@ -152,7 +150,6 @@ typedef enum log_id {

  LOG_ID_MAX
} log_id_t;
#endif

/**
 * Writes the constant string `text` to the log buffer `id`,
+2 −20
Original line number Diff line number Diff line
@@ -16,30 +16,12 @@

#pragma once

#include <android/log.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef log_id_t_defined
#define log_id_t_defined
typedef enum log_id {
  LOG_ID_MIN = 0,

  LOG_ID_MAIN = 0,
  LOG_ID_RADIO = 1,
  LOG_ID_EVENTS = 2,
  LOG_ID_SYSTEM = 3,
  LOG_ID_CRASH = 4,
  LOG_ID_STATS = 5,
  LOG_ID_SECURITY = 6,
  LOG_ID_KERNEL = 7, /* place last, third-parties can not use it */

  LOG_ID_MAX
} log_id_t;
#endif
#define sizeof_log_id_t sizeof(typeof_log_id_t)
#define typeof_log_id_t unsigned char

/*
 * Send a simple string to the log.
 */
+1 −1
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ typedef struct __attribute__((__packed__)) {

/* Header Structure to logd, and second header for pstore */
typedef struct __attribute__((__packed__)) {
  typeof_log_id_t id;
  uint8_t id;
  uint16_t tid;
  log_time realtime;
} android_log_header_t;
+1 −2
Original line number Diff line number Diff line
@@ -41,8 +41,7 @@ bool LogListener::onDataAvailable(SocketClient* cli) {
    }

    // + 1 to ensure null terminator if MAX_PAYLOAD buffer is received
    char buffer[sizeof_log_id_t + sizeof(uint16_t) + sizeof(log_time) +
                LOGGER_ENTRY_MAX_PAYLOAD + 1];
    char buffer[sizeof(android_log_header_t) + LOGGER_ENTRY_MAX_PAYLOAD + 1];
    struct iovec iov = { buffer, sizeof(buffer) - 1 };

    alignas(4) char control[CMSG_SPACE(sizeof(struct ucred))];