diff src/os/win32/ngx_files.h @ 26:53cb81681040

nginx-0.0.1-2002-12-15-09:25:09 import
author Igor Sysoev <igor@sysoev.ru>
date Sun, 15 Dec 2002 06:25:09 +0000
parents 708f8bb772ec
children a117a7fdf042
line wrap: on
line diff
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -11,6 +11,9 @@
 #endif
 
 typedef HANDLE                      ngx_fd_t;
+#define NGX_INVALID_FILE            INVALID_HANDLE_VALUE
+#define NGX_FILE_ERROR              0
+
 typedef unsigned __int64            off_t;
 
 typedef BY_HANDLE_FILE_INFORMATION  ngx_file_info_t;
@@ -25,33 +28,32 @@ typedef BY_HANDLE_FILE_INFORMATION  ngx_
 
 #define NGX_FILE_RDONLY             GENERIC_READ
 
+#define ngx_close_file              CloseHandle
+#define ngx_close_file_n            "CloseHandle()"
 
 int ngx_file_type(char *filename, ngx_file_info_t *fi);
-#define ngx_file_type_n          "GetFileAttributes"
+#define ngx_file_type_n             "GetFileAttributes"
 
-#define ngx_stat_fd(fd, fi)     GetFileInformationByHandle(fd, fi)
-#define ngx_stat_fd_n           "GetFileInformationByHandle"
+#define ngx_stat_fd(fd, fi)        GetFileInformationByHandle(fd, fi)
+#define ngx_stat_fd_n              "GetFileInformationByHandle"
 
-#define ngx_is_dir(fi)          (fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+#define ngx_is_dir(fi)      (fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+#define ngx_is_file(fi)     !(fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
 
 #define ngx_file_size(fi)                                                   \
-            fi.nFileSizeLow
-
-/*
-#define ngx_file_size(fi)                                                   \
-            ((off_t) fi.nFileSizeHigh << 32 & fi.nFileSizeLow)
-*/
-
-#define ngx_file_mtime(fi)       fi.ftLastWriteTime
-
-/*
-1970 - 1601:
-	116444736000000000
-	19DB1DED53E8000
-*/
+            (((off_t) fi.nFileSizeHigh << 32) | fi.nFileSizeLow)
 
 
-#define ngx_read_file_n             "ReadFile()"
+/* There are 134774 days between 1 Jan 1970 and 1 Jan 1601,
+   11644473600 seconds or 11644473600,000,000,0 100-nanosecond intervals */
+
+#define ngx_file_mtime(fi)                                                  \
+   (time_t) (((((unsigned __int64) fi.ftLastWriteTime.dwHighDateTime << 32) \
+                                 | fi.ftLastWriteTime.dwLowDateTime)        \
+                                          - 116444736000000000) / 10000000)
+
+
+#define ngx_read_file_n            "ReadFile()"
 
 
 #endif /* _NGX_FILES_H_INCLUDED_ */