aboutsummaryrefslogtreecommitdiff
path: root/src/os/win32/ngx_files.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/win32/ngx_files.h')
-rw-r--r--src/os/win32/ngx_files.h34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index bddfe0d54..8cd58efc7 100644
--- 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_file_info_t;
#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
+ (((off_t) fi.nFileSizeHigh << 32) | fi.nFileSizeLow)
-/*
-#define ngx_file_size(fi) \
- ((off_t) fi.nFileSizeHigh << 32 & fi.nFileSizeLow)
-*/
-#define ngx_file_mtime(fi) fi.ftLastWriteTime
+/* There are 134774 days between 1 Jan 1970 and 1 Jan 1601,
+ 11644473600 seconds or 11644473600,000,000,0 100-nanosecond intervals */
-/*
-1970 - 1601:
- 116444736000000000
- 19DB1DED53E8000
-*/
+#define ngx_file_mtime(fi) \
+ (time_t) (((((unsigned __int64) fi.ftLastWriteTime.dwHighDateTime << 32) \
+ | fi.ftLastWriteTime.dwLowDateTime) \
+ - 116444736000000000) / 10000000)
-#define ngx_read_file_n "ReadFile()"
+#define ngx_read_file_n "ReadFile()"
#endif /* _NGX_FILES_H_INCLUDED_ */