summaryrefslogtreecommitdiffstats
path: root/init/util.h
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-03-27 23:20:44 -0700
committerElliott Hughes <enh@google.com>2015-03-28 00:25:22 -0700
commitda40c00137f75543a69972f1be506e2d14a41845 (patch)
treed24df4f9a94411205786227c26cd2a1a664420bc /init/util.h
parente29744d94df787fa83307572d90a954b1592f69b (diff)
downloadsystem_core-da40c00137f75543a69972f1be506e2d14a41845.zip
system_core-da40c00137f75543a69972f1be506e2d14a41845.tar.gz
system_core-da40c00137f75543a69972f1be506e2d14a41845.tar.bz2
Log more timing information from init.
Also make important events in init's life NOTICE rather than INFO, and ensure that NOTICE events actually make it to the kernel log. Also fix the logging so that if you have a printf format string error, the compiler now catches it. Also give messages from init, ueventd, and watchdogd distinct tags. (Previously they'd all call themselves "init", and dmesg doesn't include pids, so you couldn't untangle them.) Also include the tag in SELinux messages. Bug: 19544788 Change-Id: Ica6daea065bfdb80155c52c0b06f346a7df208fe
Diffstat (limited to 'init/util.h')
-rw-r--r--init/util.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/init/util.h b/init/util.h
index e0b3c69..8fec7a8 100644
--- a/init/util.h
+++ b/init/util.h
@@ -33,7 +33,22 @@ int create_socket(const char *name, int type, mode_t perm,
bool read_file(const char* path, std::string* content);
int write_file(const char* path, const char* content);
-time_t gettime(void);
+time_t gettime();
+uint64_t gettime_ns();
+
+class Timer {
+ public:
+ Timer() : t0(gettime_ns()) {
+ }
+
+ double duration() {
+ return static_cast<double>(gettime_ns() - t0) / 1000000000.0;
+ }
+
+ private:
+ uint64_t t0;
+};
+
unsigned int decode_uid(const char *s);
int mkdir_recursive(const char *pathname, mode_t mode);