Loading liblog/include/log/log_time.h +6 −10 Original line number Diff line number Diff line Loading @@ -42,23 +42,19 @@ extern "C" { */ struct log_time { public: uint32_t tv_sec; /* good to Feb 5 2106 */ uint32_t tv_nsec; uint32_t tv_sec = 0; /* good to Feb 5 2106 */ uint32_t tv_nsec = 0; static const uint32_t tv_sec_max = 0xFFFFFFFFUL; static const uint32_t tv_nsec_max = 999999999UL; static const timespec EPOCH; log_time(const timespec& T) : tv_sec(static_cast<uint32_t>(T.tv_sec)), tv_nsec(static_cast<uint32_t>(T.tv_nsec)) { } log_time() {} explicit log_time(const timespec& T) : tv_sec(static_cast<uint32_t>(T.tv_sec)), tv_nsec(static_cast<uint32_t>(T.tv_nsec)) {} explicit log_time(uint32_t sec, uint32_t nsec = 0) : tv_sec(sec), tv_nsec(nsec) { } #define __struct_log_time_private_defined static const timespec EPOCH; log_time() { } #ifdef __linux__ explicit log_time(clockid_t id) { timespec T; Loading liblog/log_time.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -137,7 +137,7 @@ LIBLOG_ABI_PRIVATE char* log_time::strptime(const char* s, const char* format) { LIBLOG_ABI_PRIVATE log_time log_time::operator-=(const timespec& T) { // No concept of negative time, clamp to EPOCH if (*this <= T) { return *this = EPOCH; return *this = log_time(EPOCH); } if (this->tv_nsec < (unsigned long int)T.tv_nsec) { Loading Loading @@ -165,7 +165,7 @@ LIBLOG_ABI_PRIVATE log_time log_time::operator+=(const timespec& T) { LIBLOG_ABI_PRIVATE log_time log_time::operator-=(const log_time& T) { // No concept of negative time, clamp to EPOCH if (*this <= T) { return *this = EPOCH; return *this = log_time(EPOCH); } if (this->tv_nsec < T.tv_nsec) { Loading logd/LogAudit.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -300,7 +300,7 @@ int LogAudit::logPrint(const char* fmt, ...) { return 0; } log_time now; log_time now(log_time::EPOCH); static const char audit_str[] = " audit("; char* timeptr = strstr(str, audit_str); Loading logd/LogBuffer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -399,7 +399,7 @@ void LogBuffer::log(LogBufferElement* elem) { ((*it)->getLogId() != LOG_ID_KERNEL))) { mLogElements.push_back(elem); } else { log_time end = log_time::EPOCH; log_time end(log_time::EPOCH); bool end_set = false; bool end_always = false; Loading logd/LogKlog.cpp +17 −19 Original line number Diff line number Diff line Loading @@ -197,9 +197,8 @@ char* android::log_strntok_r(char* s, ssize_t& len, char*& last, // NOTREACHED } log_time LogKlog::correction = (log_time(CLOCK_REALTIME) < log_time(CLOCK_MONOTONIC)) ? log_time::EPOCH log_time LogKlog::correction = (log_time(CLOCK_REALTIME) < log_time(CLOCK_MONOTONIC)) ? log_time(log_time::EPOCH) : (log_time(CLOCK_REALTIME) - log_time(CLOCK_MONOTONIC)); LogKlog::LogKlog(LogBuffer* buf, LogReader* reader, int fdWrite, int fdRead, Loading Loading @@ -268,7 +267,7 @@ void LogKlog::calculateCorrection(const log_time& monotonic, static const char real_format[] = "%Y-%m-%d %H:%M:%S.%09q UTC"; if (len < (ssize_t)(strlen(real_format) + 5)) return; log_time real; log_time real(log_time::EPOCH); const char* ep = real.strptime(real_string, real_format); if (!ep || (ep > &real_string[len]) || (real > log_time(CLOCK_REALTIME))) { return; Loading @@ -282,20 +281,20 @@ void LogKlog::calculateCorrection(const log_time& monotonic, tm.tm_isdst = -1; localtime_r(&now, &tm); if ((tm.tm_gmtoff < 0) && ((-tm.tm_gmtoff) > (long)real.tv_sec)) { real = log_time::EPOCH; real = log_time(log_time::EPOCH); } else { real.tv_sec += tm.tm_gmtoff; } if (monotonic > real) { correction = log_time::EPOCH; correction = log_time(log_time::EPOCH); } else { correction = real - monotonic; } } void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, bool reverse) { if (len <= 0) return; log_time LogKlog::sniffTime(const char*& buf, ssize_t len, bool reverse) { log_time now(log_time::EPOCH); if (len <= 0) return now; const char* cp = nullptr; if ((len > 10) && (*buf == '[')) { Loading @@ -310,7 +309,7 @@ void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, } buf = cp; if (isMonotonic()) return; if (isMonotonic()) return now; const char* b; if (((b = android::strnstr(cp, len, suspendStr))) && Loading @@ -329,11 +328,11 @@ void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, // trigger a check for ntp-induced or hardware clock drift. log_time real(CLOCK_REALTIME); log_time mono(CLOCK_MONOTONIC); correction = (real < mono) ? log_time::EPOCH : (real - mono); correction = (real < mono) ? log_time(log_time::EPOCH) : (real - mono); } else if (((b = android::strnstr(cp, len, suspendedStr))) && (((b += strlen(suspendStr)) - cp) < len)) { len -= b - cp; log_time real; log_time real(log_time::EPOCH); char* endp; real.tv_sec = strtol(b, &endp, 10); if ((*endp == '.') && ((endp - b) < len)) { Loading @@ -345,7 +344,7 @@ void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, } if (reverse) { if (real > correction) { correction = log_time::EPOCH; correction = log_time(log_time::EPOCH); } else { correction -= real; } Loading @@ -363,6 +362,7 @@ void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, now = log_time(CLOCK_REALTIME); } } return now; } pid_t LogKlog::sniffPid(const char*& buf, ssize_t len) { Loading Loading @@ -451,8 +451,7 @@ void LogKlog::synchronize(const char* buf, ssize_t len) { } parseKernelPrio(cp, len - (cp - buf)); log_time now; sniffTime(now, cp, len - (cp - buf), true); log_time now = sniffTime(cp, len - (cp - buf), true); const char* suspended = android::strnstr(buf, len, suspendedStr); if (!suspended || (suspended > cp)) { Loading @@ -468,7 +467,7 @@ void LogKlog::synchronize(const char* buf, ssize_t len) { } parseKernelPrio(cp, len - (cp - buf)); sniffTime(now, cp, len - (cp - buf), true); sniffTime(cp, len - (cp - buf), true); } // Convert kernel log priority number into an Android Logger priority number Loading Loading @@ -548,8 +547,7 @@ int LogKlog::log(const char* buf, ssize_t len) { const char* p = buf; int pri = parseKernelPrio(p, len); log_time now; sniffTime(now, p, len - (p - buf), false); log_time now = sniffTime(p, len - (p - buf), false); // sniff for start marker const char* start = android::strnstr(p, len - (p - buf), klogdStr); Loading Loading
liblog/include/log/log_time.h +6 −10 Original line number Diff line number Diff line Loading @@ -42,23 +42,19 @@ extern "C" { */ struct log_time { public: uint32_t tv_sec; /* good to Feb 5 2106 */ uint32_t tv_nsec; uint32_t tv_sec = 0; /* good to Feb 5 2106 */ uint32_t tv_nsec = 0; static const uint32_t tv_sec_max = 0xFFFFFFFFUL; static const uint32_t tv_nsec_max = 999999999UL; static const timespec EPOCH; log_time(const timespec& T) : tv_sec(static_cast<uint32_t>(T.tv_sec)), tv_nsec(static_cast<uint32_t>(T.tv_nsec)) { } log_time() {} explicit log_time(const timespec& T) : tv_sec(static_cast<uint32_t>(T.tv_sec)), tv_nsec(static_cast<uint32_t>(T.tv_nsec)) {} explicit log_time(uint32_t sec, uint32_t nsec = 0) : tv_sec(sec), tv_nsec(nsec) { } #define __struct_log_time_private_defined static const timespec EPOCH; log_time() { } #ifdef __linux__ explicit log_time(clockid_t id) { timespec T; Loading
liblog/log_time.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -137,7 +137,7 @@ LIBLOG_ABI_PRIVATE char* log_time::strptime(const char* s, const char* format) { LIBLOG_ABI_PRIVATE log_time log_time::operator-=(const timespec& T) { // No concept of negative time, clamp to EPOCH if (*this <= T) { return *this = EPOCH; return *this = log_time(EPOCH); } if (this->tv_nsec < (unsigned long int)T.tv_nsec) { Loading Loading @@ -165,7 +165,7 @@ LIBLOG_ABI_PRIVATE log_time log_time::operator+=(const timespec& T) { LIBLOG_ABI_PRIVATE log_time log_time::operator-=(const log_time& T) { // No concept of negative time, clamp to EPOCH if (*this <= T) { return *this = EPOCH; return *this = log_time(EPOCH); } if (this->tv_nsec < T.tv_nsec) { Loading
logd/LogAudit.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -300,7 +300,7 @@ int LogAudit::logPrint(const char* fmt, ...) { return 0; } log_time now; log_time now(log_time::EPOCH); static const char audit_str[] = " audit("; char* timeptr = strstr(str, audit_str); Loading
logd/LogBuffer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -399,7 +399,7 @@ void LogBuffer::log(LogBufferElement* elem) { ((*it)->getLogId() != LOG_ID_KERNEL))) { mLogElements.push_back(elem); } else { log_time end = log_time::EPOCH; log_time end(log_time::EPOCH); bool end_set = false; bool end_always = false; Loading
logd/LogKlog.cpp +17 −19 Original line number Diff line number Diff line Loading @@ -197,9 +197,8 @@ char* android::log_strntok_r(char* s, ssize_t& len, char*& last, // NOTREACHED } log_time LogKlog::correction = (log_time(CLOCK_REALTIME) < log_time(CLOCK_MONOTONIC)) ? log_time::EPOCH log_time LogKlog::correction = (log_time(CLOCK_REALTIME) < log_time(CLOCK_MONOTONIC)) ? log_time(log_time::EPOCH) : (log_time(CLOCK_REALTIME) - log_time(CLOCK_MONOTONIC)); LogKlog::LogKlog(LogBuffer* buf, LogReader* reader, int fdWrite, int fdRead, Loading Loading @@ -268,7 +267,7 @@ void LogKlog::calculateCorrection(const log_time& monotonic, static const char real_format[] = "%Y-%m-%d %H:%M:%S.%09q UTC"; if (len < (ssize_t)(strlen(real_format) + 5)) return; log_time real; log_time real(log_time::EPOCH); const char* ep = real.strptime(real_string, real_format); if (!ep || (ep > &real_string[len]) || (real > log_time(CLOCK_REALTIME))) { return; Loading @@ -282,20 +281,20 @@ void LogKlog::calculateCorrection(const log_time& monotonic, tm.tm_isdst = -1; localtime_r(&now, &tm); if ((tm.tm_gmtoff < 0) && ((-tm.tm_gmtoff) > (long)real.tv_sec)) { real = log_time::EPOCH; real = log_time(log_time::EPOCH); } else { real.tv_sec += tm.tm_gmtoff; } if (monotonic > real) { correction = log_time::EPOCH; correction = log_time(log_time::EPOCH); } else { correction = real - monotonic; } } void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, bool reverse) { if (len <= 0) return; log_time LogKlog::sniffTime(const char*& buf, ssize_t len, bool reverse) { log_time now(log_time::EPOCH); if (len <= 0) return now; const char* cp = nullptr; if ((len > 10) && (*buf == '[')) { Loading @@ -310,7 +309,7 @@ void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, } buf = cp; if (isMonotonic()) return; if (isMonotonic()) return now; const char* b; if (((b = android::strnstr(cp, len, suspendStr))) && Loading @@ -329,11 +328,11 @@ void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, // trigger a check for ntp-induced or hardware clock drift. log_time real(CLOCK_REALTIME); log_time mono(CLOCK_MONOTONIC); correction = (real < mono) ? log_time::EPOCH : (real - mono); correction = (real < mono) ? log_time(log_time::EPOCH) : (real - mono); } else if (((b = android::strnstr(cp, len, suspendedStr))) && (((b += strlen(suspendStr)) - cp) < len)) { len -= b - cp; log_time real; log_time real(log_time::EPOCH); char* endp; real.tv_sec = strtol(b, &endp, 10); if ((*endp == '.') && ((endp - b) < len)) { Loading @@ -345,7 +344,7 @@ void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, } if (reverse) { if (real > correction) { correction = log_time::EPOCH; correction = log_time(log_time::EPOCH); } else { correction -= real; } Loading @@ -363,6 +362,7 @@ void LogKlog::sniffTime(log_time& now, const char*& buf, ssize_t len, now = log_time(CLOCK_REALTIME); } } return now; } pid_t LogKlog::sniffPid(const char*& buf, ssize_t len) { Loading Loading @@ -451,8 +451,7 @@ void LogKlog::synchronize(const char* buf, ssize_t len) { } parseKernelPrio(cp, len - (cp - buf)); log_time now; sniffTime(now, cp, len - (cp - buf), true); log_time now = sniffTime(cp, len - (cp - buf), true); const char* suspended = android::strnstr(buf, len, suspendedStr); if (!suspended || (suspended > cp)) { Loading @@ -468,7 +467,7 @@ void LogKlog::synchronize(const char* buf, ssize_t len) { } parseKernelPrio(cp, len - (cp - buf)); sniffTime(now, cp, len - (cp - buf), true); sniffTime(cp, len - (cp - buf), true); } // Convert kernel log priority number into an Android Logger priority number Loading Loading @@ -548,8 +547,7 @@ int LogKlog::log(const char* buf, ssize_t len) { const char* p = buf; int pri = parseKernelPrio(p, len); log_time now; sniffTime(now, p, len - (p - buf), false); log_time now = sniffTime(p, len - (p - buf), false); // sniff for start marker const char* start = android::strnstr(p, len - (p - buf), klogdStr); Loading