]> git.ipfire.org Git - thirdparty/git.git/blob - compat/vcbuild/include/dirent.h
Merge branch 'jc/maint-am-keep' into maint
[thirdparty/git.git] / compat / vcbuild / include / dirent.h
1 /*
2 * DIRENT.H (formerly DIRLIB.H)
3 * This file has no copyright assigned and is placed in the Public Domain.
4 * This file is a part of the mingw-runtime package.
5 *
6 * The mingw-runtime package and its code is distributed in the hope that it
7 * will be useful but WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESSED OR
8 * IMPLIED ARE HEREBY DISCLAIMED. This includes but is not limited to
9 * warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 *
11 * You are free to use this package and its code without limitation.
12 */
13 #ifndef _DIRENT_H_
14 #define _DIRENT_H_
15 #include <io.h>
16
17 #define PATH_MAX 512
18
19 #define __MINGW_NOTHROW
20
21 #ifndef RC_INVOKED
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 struct dirent
28 {
29 long d_ino; /* Always zero. */
30 unsigned short d_reclen; /* Always zero. */
31 unsigned short d_namlen; /* Length of name in d_name. */
32 char d_name[FILENAME_MAX]; /* File name. */
33 };
34
35 /*
36 * This is an internal data structure. Good programmers will not use it
37 * except as an argument to one of the functions below.
38 * dd_stat field is now int (was short in older versions).
39 */
40 typedef struct
41 {
42 /* disk transfer area for this dir */
43 struct _finddata_t dd_dta;
44
45 /* dirent struct to return from dir (NOTE: this makes this thread
46 * safe as long as only one thread uses a particular DIR struct at
47 * a time) */
48 struct dirent dd_dir;
49
50 /* _findnext handle */
51 long dd_handle;
52
53 /*
54 * Status of search:
55 * 0 = not started yet (next entry to read is first entry)
56 * -1 = off the end
57 * positive = 0 based index of next entry
58 */
59 int dd_stat;
60
61 /* given path for dir with search pattern (struct is extended) */
62 char dd_name[PATH_MAX+3];
63 } DIR;
64
65 DIR* __cdecl __MINGW_NOTHROW opendir (const char*);
66 struct dirent* __cdecl __MINGW_NOTHROW readdir (DIR*);
67 int __cdecl __MINGW_NOTHROW closedir (DIR*);
68 void __cdecl __MINGW_NOTHROW rewinddir (DIR*);
69 long __cdecl __MINGW_NOTHROW telldir (DIR*);
70 void __cdecl __MINGW_NOTHROW seekdir (DIR*, long);
71
72
73 /* wide char versions */
74
75 struct _wdirent
76 {
77 long d_ino; /* Always zero. */
78 unsigned short d_reclen; /* Always zero. */
79 unsigned short d_namlen; /* Length of name in d_name. */
80 wchar_t d_name[FILENAME_MAX]; /* File name. */
81 };
82
83 /*
84 * This is an internal data structure. Good programmers will not use it
85 * except as an argument to one of the functions below.
86 */
87 typedef struct
88 {
89 /* disk transfer area for this dir */
90 //struct _wfinddata_t dd_dta;
91
92 /* dirent struct to return from dir (NOTE: this makes this thread
93 * safe as long as only one thread uses a particular DIR struct at
94 * a time) */
95 struct _wdirent dd_dir;
96
97 /* _findnext handle */
98 long dd_handle;
99
100 /*
101 * Status of search:
102 * 0 = not started yet (next entry to read is first entry)
103 * -1 = off the end
104 * positive = 0 based index of next entry
105 */
106 int dd_stat;
107
108 /* given path for dir with search pattern (struct is extended) */
109 wchar_t dd_name[1];
110 } _WDIR;
111
112
113
114 _WDIR* __cdecl __MINGW_NOTHROW _wopendir (const wchar_t*);
115 struct _wdirent* __cdecl __MINGW_NOTHROW _wreaddir (_WDIR*);
116 int __cdecl __MINGW_NOTHROW _wclosedir (_WDIR*);
117 void __cdecl __MINGW_NOTHROW _wrewinddir (_WDIR*);
118 long __cdecl __MINGW_NOTHROW _wtelldir (_WDIR*);
119 void __cdecl __MINGW_NOTHROW _wseekdir (_WDIR*, long);
120
121
122 #ifdef __cplusplus
123 }
124 #endif
125
126 #endif /* Not RC_INVOKED */
127
128 #endif /* Not _DIRENT_H_ */