Move time related functions to POSIX platform file.
authorsgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 26 Mar 2009 09:28:27 +0000 (09:28 +0000)
committersgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 26 Mar 2009 09:28:27 +0000 (09:28 +0000)
The functions getrusage, gettimeofday and localtime are in POSIX.1-2001.
Review URL: http://codereview.chromium.org/53045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/platform-freebsd.cc
src/platform-linux.cc
src/platform-macos.cc
src/platform-posix.cc

index b6e2558e6fcd5dbc64b32fb31da0c99e60a30092..ee3310be106de6f8ae2fef9d7f76f87390da3b3c 100644 (file)
@@ -83,56 +83,6 @@ void OS::Setup() {
 }
 
 
-int OS::GetUserTime(uint32_t* secs,  uint32_t* usecs) {
-  struct rusage usage;
-
-  if (getrusage(RUSAGE_SELF, &usage) < 0) return -1;
-  *secs = usage.ru_utime.tv_sec;
-  *usecs = usage.ru_utime.tv_usec;
-  return 0;
-}
-
-
-double OS::TimeCurrentMillis() {
-  struct timeval tv;
-  if (gettimeofday(&tv, NULL) < 0) return 0.0;
-  return (static_cast<double>(tv.tv_sec) * 1000) +
-         (static_cast<double>(tv.tv_usec) / 1000);
-}
-
-
-int64_t OS::Ticks() {
-  // FreeBSD's gettimeofday has microsecond resolution.
-  struct timeval tv;
-  if (gettimeofday(&tv, NULL) < 0)
-    return 0;
-  return (static_cast<int64_t>(tv.tv_sec) * 1000000) + tv.tv_usec;
-}
-
-
-char* OS::LocalTimezone(double time) {
-  time_t tv = static_cast<time_t>(floor(time/msPerSecond));
-  struct tm* t = localtime(&tv);
-  return const_cast<char*>(t->tm_zone);
-}
-
-
-double OS::DaylightSavingsOffset(double time) {
-  time_t tv = static_cast<time_t>(floor(time/msPerSecond));
-  struct tm* t = localtime(&tv);
-  return t->tm_isdst > 0 ? 3600 * msPerSecond : 0;
-}
-
-
-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));
-}
-
-
 FILE* OS::FOpen(const char* path, const char* mode) {
   return fopen(path, mode);
 }
index 88b28c572d89c5b6cc765b9c0d3ab897b74e0402..a83466749a2a8a536cad451fdd5d83d350dd1a85 100644 (file)
@@ -81,56 +81,6 @@ void OS::Setup() {
 }
 
 
-int OS::GetUserTime(uint32_t* secs,  uint32_t* usecs) {
-  struct rusage usage;
-
-  if (getrusage(RUSAGE_SELF, &usage) < 0) return -1;
-  *secs = usage.ru_utime.tv_sec;
-  *usecs = usage.ru_utime.tv_usec;
-  return 0;
-}
-
-
-double OS::TimeCurrentMillis() {
-  struct timeval tv;
-  if (gettimeofday(&tv, NULL) < 0) return 0.0;
-  return (static_cast<double>(tv.tv_sec) * 1000) +
-         (static_cast<double>(tv.tv_usec) / 1000);
-}
-
-
-int64_t OS::Ticks() {
-  // Linux's gettimeofday has microsecond resolution.
-  struct timeval tv;
-  if (gettimeofday(&tv, NULL) < 0)
-    return 0;
-  return (static_cast<int64_t>(tv.tv_sec) * 1000000) + tv.tv_usec;
-}
-
-
-char* OS::LocalTimezone(double time) {
-  time_t tv = static_cast<time_t>(floor(time/msPerSecond));
-  struct tm* t = localtime(&tv);
-  return const_cast<char*>(t->tm_zone);
-}
-
-
-double OS::DaylightSavingsOffset(double time) {
-  time_t tv = static_cast<time_t>(floor(time/msPerSecond));
-  struct tm* t = localtime(&tv);
-  return t->tm_isdst > 0 ? 3600 * msPerSecond : 0;
-}
-
-
-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));
-}
-
-
 FILE* OS::FOpen(const char* path, const char* mode) {
   return fopen(path, mode);
 }
index a9a9cdb4575896ce100d1afb93237eb522d01543..0b40e0dfd5283a22e2e19287cdd782fd9b10507f 100644 (file)
@@ -86,56 +86,6 @@ void OS::Setup() {
 }
 
 
-int OS::GetUserTime(uint32_t* secs,  uint32_t* usecs) {
-  struct rusage usage;
-
-  if (getrusage(RUSAGE_SELF, &usage) < 0) return -1;
-  *secs = usage.ru_utime.tv_sec;
-  *usecs = usage.ru_utime.tv_usec;
-  return 0;
-}
-
-
-double OS::TimeCurrentMillis() {
-  struct timeval tv;
-  if (gettimeofday(&tv, NULL) < 0) return 0.0;
-  return (static_cast<double>(tv.tv_sec) * 1000) +
-         (static_cast<double>(tv.tv_usec) / 1000);
-}
-
-
-int64_t OS::Ticks() {
-  // Mac OS's gettimeofday has microsecond resolution.
-  struct timeval tv;
-  if (gettimeofday(&tv, NULL) < 0)
-    return 0;
-  return (static_cast<int64_t>(tv.tv_sec) * 1000000) + tv.tv_usec;
-}
-
-
-char* OS::LocalTimezone(double time) {
-  time_t tv = static_cast<time_t>(floor(time/msPerSecond));
-  struct tm* t = localtime(&tv);
-  return const_cast<char*>(t->tm_zone);
-}
-
-
-double OS::DaylightSavingsOffset(double time) {
-  time_t tv = static_cast<time_t>(floor(time/msPerSecond));
-  struct tm* t = localtime(&tv);
-  return t->tm_isdst > 0 ? 3600 * msPerSecond : 0;
-}
-
-
-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));
-}
-
-
 FILE* OS::FOpen(const char* path, const char* mode) {
   return fopen(path, mode);
 }
index 6f7131582ca86d3e2b698d2240dce78144170acf..87087e4a585a104ed8ff57ed446b010d85193136 100644 (file)
 
 #include <unistd.h>
 #include <errno.h>
+#include <time.h>
 
 #include <sys/socket.h>
+#include <sys/resource.h>\r
+#include <sys/time.h>\r
 #include <sys/types.h>
 
 #include <arpa/inet.h>
 namespace v8 { namespace internal {
 
 
+// ----------------------------------------------------------------------------
+// POSIX date/time support.
+//
+
+int OS::GetUserTime(uint32_t* secs,  uint32_t* usecs) {\r
+  struct rusage usage;\r
+\r
+  if (getrusage(RUSAGE_SELF, &usage) < 0) return -1;\r
+  *secs = usage.ru_utime.tv_sec;\r
+  *usecs = usage.ru_utime.tv_usec;\r
+  return 0;\r
+}\r
+\r
+\r
+double OS::TimeCurrentMillis() {\r
+  struct timeval tv;\r
+  if (gettimeofday(&tv, NULL) < 0) return 0.0;\r
+  return (static_cast<double>(tv.tv_sec) * 1000) +\r
+         (static_cast<double>(tv.tv_usec) / 1000);\r
+}\r
+\r
+\r
+int64_t OS::Ticks() {\r
+  // gettimeofday has microsecond resolution.\r
+  struct timeval tv;\r
+  if (gettimeofday(&tv, NULL) < 0)\r
+    return 0;\r
+  return (static_cast<int64_t>(tv.tv_sec) * 1000000) + tv.tv_usec;\r
+}\r
+\r
+\r
+char* OS::LocalTimezone(double time) {\r
+  time_t tv = static_cast<time_t>(floor(time/msPerSecond));\r
+  struct tm* t = localtime(&tv);\r
+  return const_cast<char*>(t->tm_zone);\r
+}\r
+\r
+\r
+double OS::DaylightSavingsOffset(double time) {\r
+  time_t tv = static_cast<time_t>(floor(time/msPerSecond));\r
+  struct tm* t = localtime(&tv);\r
+  return t->tm_isdst > 0 ? 3600 * msPerSecond : 0;\r
+}\r
+\r
+\r
+double OS::LocalTimeOffset() {\r
+  time_t tv = time(NULL);\r
+  struct tm* t = localtime(&tv);\r
+  // tm_gmtoff includes any daylight savings offset, so subtract it.\r
+  return static_cast<double>(t->tm_gmtoff * msPerSecond -\r
+                             (t->tm_isdst > 0 ? 3600 * msPerSecond : 0));\r
+}\r
+\r
+\r
 // ----------------------------------------------------------------------------
 // POSIX socket support.
 //