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
This commit is contained in:
Tom Cherry 2019-10-16 15:45:24 -07:00
parent 32e7325c44
commit 5e81aa2cf5
4 changed files with 4 additions and 26 deletions

View file

@ -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`,

View file

@ -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.
*/

View file

@ -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;

View file

@ -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))];