summaryrefslogtreecommitdiffhomepage
path: root/src/os/win32/ngx_files.h
blob: bddfe0d540429c18c10ea9444fc2478f07afbe9f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef _NGX_FILES_H_INCLUDED_
#define _NGX_FILES_H_INCLUDED_


#include <ngx_config.h>


/* INVALID_FILE_ATTRIBUTES specified but never defined at least in VC6SP2 */
#ifndef INVALID_FILE_ATTRIBUTES
#define INVALID_FILE_ATTRIBUTES  0xFFFFFFFF
#endif

typedef HANDLE                      ngx_fd_t;
typedef unsigned __int64            off_t;

typedef BY_HANDLE_FILE_INFORMATION  ngx_file_info_t;


#define ngx_open_file(name, flags)                                          \
            CreateFile(name, flags,                                         \
                       FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,  \
                       NULL, OPEN_EXISTING, 0, NULL)

#define ngx_open_file_n             "CreateFile()"

#define NGX_FILE_RDONLY             GENERIC_READ


int ngx_file_type(char *filename, ngx_file_info_t *fi);
#define ngx_file_type_n          "GetFileAttributes"

#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_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
*/


#define ngx_read_file_n             "ReadFile()"


#endif /* _NGX_FILES_H_INCLUDED_ */