diff --git a/vs2008/port/gettimeofday.cpp b/vs2008/port/gettimeofday.cpp index 18375440bd..5f2b3bb16e 100644 --- a/vs2008/port/gettimeofday.cpp +++ b/vs2008/port/gettimeofday.cpp @@ -1,62 +1,31 @@ -/* - * gettimeofday.c - * Win32 gettimeofday() replacement - * - * $PostgreSQL: pgsql/src/port/gettimeofday.c,v 1.9 2006/03/04 04:44:07 momjian Exp $ - * - * Copyright (c) 2003 SRA, Inc. - * Copyright (c) 2003 SKC, Inc. - * - * Permission to use, copy, modify, and distribute this software and - * its documentation for any purpose, without fee, and without a - * written agreement is hereby granted, provided that the above - * copyright notice and this paragraph and the following two - * paragraphs appear in all copies. - * - * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, - * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING - * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS - * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS - * IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, - * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - */ +/////////////////////////////////////////////////////////////////////// +// File: gettimeofday.cpp +// Description: Implementation of gettimeofday based on leptonica +// Author: tomp2010, zdenop +// Created: Tue Feb 21 21:38:00 CET 2012 +// +// (C) Copyright 2012, Google Inc. +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/////////////////////////////////////////////////////////////////////// -#ifdef _WIN32 -#include // timeval is defined in here. -#endif +#include "gettimeofday.h" -/* FILETIME of Jan 1 1970 00:00:00. */ -static const unsigned __int64 epoch = 11644473600000000Ui64; - -struct timezone { - int tz_minuteswest; /* minutes W of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; - -/* - * timezone information is stored outside the kernel so tzp isn't used anymore. - * - * Note: this function is not for Win32 high precision timing purpose. See - * elapsed_time(). - */ -int -gettimeofday(struct timeval * tp, struct timezone * tzp) { - FILETIME file_time; - SYSTEMTIME system_time; - ULARGE_INTEGER ularge; - - GetSystemTime(&system_time); - SystemTimeToFileTime(&system_time, &file_time); - ularge.LowPart = file_time.dwLowDateTime; - ularge.HighPart = file_time.dwHighDateTime; - - tp->tv_sec = (long)((ularge.QuadPart - epoch) / 10000000L); - tp->tv_usec = (long)(system_time.wMilliseconds * 1000); +int gettimeofday(struct timeval *tp, struct timezone *tzp) { + l_int32 sec, usec; + if (tp == NULL) + return -1; + l_getCurrentTime(&sec, &usec); + tp->tv_sec = sec; + tp->tv_usec = usec; return 0; } diff --git a/vs2008/port/gettimeofday.h b/vs2008/port/gettimeofday.h index 81a498a6b5..86683fa44e 100644 --- a/vs2008/port/gettimeofday.h +++ b/vs2008/port/gettimeofday.h @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////// // File: gettimeofday.h -// Description: Header file for gettimeofday.c (source postgresql.org) -// Author: zdenop -// Created: Fri Nov 19 21:05:06 CET 2010 +// Description: Header file for gettimeofday.cpp +// Author: tomp2010, zdenop +// Created: Tue Feb 21 21:38:00 CET 2012 // -// (C) Copyright 2010, Google Inc. +// (C) Copyright 2012, Google Inc. // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at @@ -20,12 +20,11 @@ #ifndef VS2008_PORT_GETTIMEOFDAY_H_ #define VS2008_PORT_GETTIMEOFDAY_H_ +#include #ifdef _WIN32 #include // timeval is defined in here. #endif -typedef struct timezone tz; - int gettimeofday(struct timeval * tp, struct timezone * tzp); #endif // VS2008_PORT_GETTIMEOFDAY_H_ diff --git a/vs2008/port/strtok_r.h b/vs2008/port/strtok_r.h index 01b33d9e0f..15cec6aae0 100644 --- a/vs2008/port/strtok_r.h +++ b/vs2008/port/strtok_r.h @@ -19,9 +19,9 @@ // /////////////////////////////////////////////////////////////////////// -#ifndef VS2008_PORT_GETTIMEOFDAY_H_ -#define VS2008_PORT_GETTIMEOFDAY_H_ +#ifndef VS2008_PORT_STRTOK_R_H_ +#define VS2008_PORT_STRTOK_R_H_ char *strtok_r(char *s1, const char *s2, char **lasts); -#endif // VS2008_PORT_GETTIMEOFDAY_H_ +#endif // VS2008_PORT_STRTOK_R_H_