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