summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-10-09 10:51:24 +0200
committerClifford Wolf <clifford@clifford.at>2014-10-09 10:51:24 +0200
commitd3405c15bf74b9a61968aa93ccbc61155e05585f (patch)
treeecb863c52712da4e64be22b6598023b3454c319b /kernel
parentccf7b2e342cd4212ca2c2c94735a3f916b7d790f (diff)
No rusage on win32
Diffstat (limited to 'kernel')
-rw-r--r--kernel/driver.cc6
-rw-r--r--kernel/log.h9
2 files changed, 13 insertions, 2 deletions
diff --git a/kernel/driver.cc b/kernel/driver.cc
index f26d9ef8..4210d7ca 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -268,12 +268,16 @@ int main(int argc, char **argv)
delete log_hasher;
log_hasher = nullptr;
+ log_spacer();
+#ifdef WIN32
+ log("End of script. Logfile hash: %s\n", hash.c_str());
+#else
struct rusage ru_buffer;
getrusage(RUSAGE_SELF, &ru_buffer);
- log_spacer();
log("End of script. Logfile hash: %s, CPU: user %.2fs system %.2fs\n", hash.c_str(),
ru_buffer.ru_utime.tv_sec + 1e-6 * ru_buffer.ru_utime.tv_usec,
ru_buffer.ru_stime.tv_sec + 1e-6 * ru_buffer.ru_stime.tv_usec);
+#endif
log("%s\n", yosys_version_str);
int64_t total_ns = 0;
diff --git a/kernel/log.h b/kernel/log.h
index 2177db09..4514c420 100644
--- a/kernel/log.h
+++ b/kernel/log.h
@@ -24,7 +24,10 @@
#include <time.h>
#include <sys/time.h>
-#include <sys/resource.h>
+
+#ifndef WIN32
+# include <sys/resource.h>
+#endif
// from libs/sha1/sha1.h
class SHA1;
@@ -154,6 +157,8 @@ struct PerformanceTimer
t = 1000000000ULL * (int64_t) rusage.ru_utime.tv_sec + (int64_t) rusage.ru_utime.tv_usec * 1000ULL;
t += 1000000000ULL * (int64_t) rusage.ru_stime.tv_sec + (int64_t) rusage.ru_stime.tv_usec * 1000ULL;
return t;
+#elif WIN32
+ return 0;
#else
#error Dont know how to measure per-process CPU time. Need alternative method (times()/clocks()/gettimeofday()?).
#endif
@@ -191,8 +196,10 @@ static inline void log_dump_val_worker(int v) { log("%d", v); }
static inline void log_dump_val_worker(unsigned int v) { log("%u", v); }
static inline void log_dump_val_worker(long int v) { log("%ld", v); }
static inline void log_dump_val_worker(unsigned long int v) { log("%lu", v); }
+#ifndef WIN32
static inline void log_dump_val_worker(long long int v) { log("%lld", v); }
static inline void log_dump_val_worker(unsigned long long int v) { log("%lld", v); }
+#endif
static inline void log_dump_val_worker(char c) { log(c >= 32 && c < 127 ? "'%c'" : "'\\x%02x'", c); }
static inline void log_dump_val_worker(unsigned char c) { log(c >= 32 && c < 127 ? "'%c'" : "'\\x%02x'", c); }
static inline void log_dump_val_worker(bool v) { log("%s", v ? "true" : "false"); }