diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2003-11-11 18:13:43 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2003-11-11 18:13:43 +0000 |
| commit | 27c30f9919ed695ab718c3365a445d47a14fd80f (patch) | |
| tree | b8bd50e2fcecf477f1bb05d61fc7626c06a4442b /src/os/win32 | |
| parent | d59a047a7070dc6af13b2e35c097efccc8ce38d0 (diff) | |
| download | nginx-27c30f9919ed695ab718c3365a445d47a14fd80f.tar.gz nginx-27c30f9919ed695ab718c3365a445d47a14fd80f.tar.bz2 | |
nginx-0.0.1-2003-11-11-21:13:43 import
Diffstat (limited to '')
| -rw-r--r-- | src/os/win32/ngx_files.h | 4 | ||||
| -rw-r--r-- | src/os/win32/ngx_time.c | 29 | ||||
| -rw-r--r-- | src/os/win32/ngx_time.h | 18 |
3 files changed, 44 insertions, 7 deletions
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h index a29e333cc..0565eafa6 100644 --- a/src/os/win32/ngx_files.h +++ b/src/os/win32/ngx_files.h @@ -69,8 +69,8 @@ int ngx_file_type(char *filename, ngx_file_info_t *fi); #define ngx_file_uniq(fi) (*(ngx_file_uniq_t *) &fi.nFileIndexHigh) -/* There are 134774 days between 1 Jan 1970 and 1 Jan 1601, - 11644473600 seconds or 11644473600,000,000,0 100-nanosecond intervals */ + +/* 116444736000000000 is commented in src/os/win32/ngx_time.c */ #define ngx_file_mtime(fi) \ (time_t) (((((unsigned __int64) fi.ftLastWriteTime.dwHighDateTime << 32) \ diff --git a/src/os/win32/ngx_time.c b/src/os/win32/ngx_time.c new file mode 100644 index 000000000..8497c538d --- /dev/null +++ b/src/os/win32/ngx_time.c @@ -0,0 +1,29 @@ + +#include <ngx_config.h> +#include <ngx_core.h> + + +void ngx_gettimeofday(struct timeval *tp) +{ + uint64_t intervals; + FILETIME ft; + + GetSystemTimeAsFileTime(&ft); + + /* + * A file time is a 64-bit value that represents the number + * of 100-nanosecond intervals that have elapsed since + * 12:00 A.M. January 1, 1601 (UTC). + * + * Between January 1, 1970 (Epoch) and January 1, 1601 there are + * 134744 days, + * 11644473600 seconds or + * 11644473600,000,000,0 100-nanosecond intervals. + */ + + intervals = ((uint64_t) ft.dwHighDateTime << 32) | ft.dwLowDateTime; + intervals -= 116444736000000000; + + tp->tv_sec = intervals / 10000000; + tp->tv_usec = (intervals % 10000000) / 10; +} diff --git a/src/os/win32/ngx_time.h b/src/os/win32/ngx_time.h index 4cd84e564..36f8918fa 100644 --- a/src/os/win32/ngx_time.h +++ b/src/os/win32/ngx_time.h @@ -6,8 +6,10 @@ #include <ngx_core.h> -typedef unsigned int ngx_msec_t; -#define NGX_MAX_MSEC ~0 +typedef uint64_t ngx_epoch_msec_t; + +typedef u_int ngx_msec_t; +#define NGX_MAX_MSEC (ngx_msec_t) -1 typedef SYSTEMTIME ngx_tm_t; @@ -23,10 +25,16 @@ typedef FILETIME ngx_mtime_t; #define ngx_msleep Sleep #define ngx_localtime GetLocalTime -#define ngx_msec GetTickCount -/* STUB */ -#define ngx_time() time(NULL) + +struct timeval { + long tv_sec; + long tv_usec; +}; + + +void ngx_gettimeofday(struct timeval *tp); + #endif /* _NGX_TIME_H_INCLUDED_ */ |
