diff options
author | Mark Salyzyn <salyzyn@google.com> | 2014-02-26 09:50:16 -0800 |
---|---|---|
committer | Mark Salyzyn <salyzyn@google.com> | 2014-02-26 09:52:35 -0800 |
commit | 0175b0747a1f55329109e84c9a1322dcb95e2848 (patch) | |
tree | a48dd103279c3efc313028a09fb4570d212e624d /include | |
parent | 9b986497e7f19a7fde9e35eb73d765f4a09dee07 (diff) | |
download | system_core-0175b0747a1f55329109e84c9a1322dcb95e2848.zip system_core-0175b0747a1f55329109e84c9a1322dcb95e2848.tar.gz system_core-0175b0747a1f55329109e84c9a1322dcb95e2848.tar.bz2 |
logd: initial checkin.
* Create a new userspace log daemon for handling logging messages.
Original-Change-Id: I75267df16359684490121e6c31cca48614d79856
Signed-off-by: Nick Kralevich <nnk@google.com>
* Merge conflicts
* rename new syslog daemon to logd to prevent confusion with bionic syslog
* replace racy getGroups call with KISS call to client->getGid()
* Timestamps are filed at logging source
* insert entries into list in timestamp order
* Added LogTimeEntry tail filtration handling
* Added region locking around LogWriter list
* separate threads for each writer
* /dev/socket/logd* permissions
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
(cherry picked from commit 3e76e0a49760c4970b7cda6153e51026af98e4f3)
Author: Nick Kralevich <nnk@google.com>
Change-Id: Ice88b1412d8f9daa7f9119b2b5aaf684a5e28098
Diffstat (limited to 'include')
-rw-r--r-- | include/log/log_read.h | 6 | ||||
-rw-r--r-- | include/log/logger.h | 22 | ||||
-rw-r--r-- | include/private/android_filesystem_config.h | 2 |
3 files changed, 22 insertions, 8 deletions
diff --git a/include/log/log_read.h b/include/log/log_read.h index 861c192..2601622 100644 --- a/include/log/log_read.h +++ b/include/log/log_read.h @@ -23,12 +23,12 @@ #ifdef __cplusplus struct log_time : public timespec { public: - log_time(timespec &T) + log_time(const timespec &T) { tv_sec = T.tv_sec; tv_nsec = T.tv_nsec; } - log_time(void) + log_time() { } log_time(clockid_t id) @@ -67,7 +67,7 @@ public: { return !(*this > T); } - uint64_t nsec(void) const + uint64_t nsec() const { return static_cast<uint64_t>(tv_sec) * NS_PER_SEC + tv_nsec; } diff --git a/include/log/logger.h b/include/log/logger.h index 966397a..6414d84 100644 --- a/include/log/logger.h +++ b/include/log/logger.h @@ -35,7 +35,7 @@ struct logger_entry { /* * The userspace structure for version 2 of the logger_entry ABI. * This structure is returned to userspace if ioctl(LOGGER_SET_VERSION) - * is called with version==2 + * is called with version==2; or used with the user space log daemon. */ struct logger_entry_v2 { uint16_t len; /* length of the payload */ @@ -48,6 +48,17 @@ struct logger_entry_v2 { char msg[0]; /* the entry's payload */ }; +struct logger_entry_v3 { + uint16_t len; /* length of the payload */ + uint16_t hdr_size; /* sizeof(struct logger_entry_v2) */ + int32_t pid; /* generating process's pid */ + int32_t tid; /* generating process's tid */ + int32_t sec; /* seconds since Epoch */ + int32_t nsec; /* nanoseconds */ + uint32_t lid; /* log id of the payload */ + char msg[0]; /* the entry's payload */ +}; + /* * The maximum size of the log entry payload that can be * written to the kernel logger driver. An attempt to write @@ -69,6 +80,7 @@ struct log_msg { union { unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1]; struct logger_entry_v2 entry; + struct logger_entry_v3 entry_v3; struct logger_entry_v2 entry_v2; struct logger_entry entry_v1; struct { @@ -106,21 +118,21 @@ struct log_msg { { return !(*this > T); } - uint64_t nsec(void) const + uint64_t nsec() const { return static_cast<uint64_t>(entry.sec) * NS_PER_SEC + entry.nsec; } /* packet methods */ - log_id_t id(void) + log_id_t id() { return extra.id; } - char *msg(void) + char *msg() { return entry.hdr_size ? (char *) buf + entry.hdr_size : entry_v1.msg; } - unsigned int len(void) + unsigned int len() { return (entry.hdr_size ? entry.hdr_size : sizeof(entry_v1)) + entry.len; } diff --git a/include/private/android_filesystem_config.h b/include/private/android_filesystem_config.h index 0ed0d78..9c26baf 100644 --- a/include/private/android_filesystem_config.h +++ b/include/private/android_filesystem_config.h @@ -76,6 +76,7 @@ #define AID_SDCARD_PICS 1033 /* external storage photos access */ #define AID_SDCARD_AV 1034 /* external storage audio/video access */ #define AID_SDCARD_ALL 1035 /* access all users external storage */ +#define AID_LOGD 1036 /* log daemon */ #define AID_SHELL 2000 /* adb and debug shell user */ #define AID_CACHE 2001 /* cache access */ @@ -151,6 +152,7 @@ static const struct android_id_info android_ids[] = { { "sdcard_pics", AID_SDCARD_PICS, }, { "sdcard_av", AID_SDCARD_AV, }, { "sdcard_all", AID_SDCARD_ALL, }, + { "logd", AID_LOGD, }, { "shell", AID_SHELL, }, { "cache", AID_CACHE, }, |