diff options
Diffstat (limited to 'src/platform-openbsd.cc')
-rw-r--r-- | src/platform-openbsd.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/platform-openbsd.cc b/src/platform-openbsd.cc index 6d273047..62e60044 100644 --- a/src/platform-openbsd.cc +++ b/src/platform-openbsd.cc @@ -94,6 +94,24 @@ int OS::ActivationFrameAlignment() { } +const char* OS::LocalTimezone(double time) { + if (isnan(time)) return ""; + time_t tv = static_cast<time_t>(floor(time/msPerSecond)); + struct tm* t = localtime(&tv); + if (NULL == t) return ""; + return t->tm_zone; +} + + +double OS::LocalTimeOffset() { + time_t tv = time(NULL); + struct tm* t = localtime(&tv); + // tm_gmtoff includes any daylight savings offset, so subtract it. + return static_cast<double>(t->tm_gmtoff * msPerSecond - + (t->tm_isdst > 0 ? 3600 * msPerSecond : 0)); +} + + // We keep the lowest and highest addresses mapped as a quick way of // determining that pointers are outside the heap (used mostly in assertions // and verification). The estimate is conservative, ie, not all addresses in |