Mercurial > hg > nginx-quic
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_ */