|  | /* | 
|  | * DIRENT.H (formerly DIRLIB.H) | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER within the package. | 
|  | * | 
|  | */ | 
|  |  | 
|  | #ifndef _DIRENT_H_ | 
|  | #define _DIRENT_H_ | 
|  |  | 
|  | /* All the headers include this file. */ | 
|  | #include <crtdefs.h> | 
|  |  | 
|  | #include <io.h> | 
|  |  | 
|  | #ifndef RC_INVOKED | 
|  |  | 
|  | #pragma pack(push,_CRT_PACKING) | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | struct dirent | 
|  | { | 
|  | long		d_ino;		/* Always zero. */ | 
|  | unsigned short	d_reclen;	/* Always zero. */ | 
|  | unsigned short	d_namlen;	/* Length of name in d_name. */ | 
|  | char		d_name[260]; /* [FILENAME_MAX] */ /* File name. */ | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * This is an internal data structure. Good programmers will not use it | 
|  | * except as an argument to one of the functions below. | 
|  | * dd_stat field is now int (was short in older versions). | 
|  | */ | 
|  | typedef struct | 
|  | { | 
|  | /* disk transfer area for this dir */ | 
|  | struct _finddata_t	dd_dta; | 
|  |  | 
|  | /* dirent struct to return from dir (NOTE: this makes this thread | 
|  | * safe as long as only one thread uses a particular DIR struct at | 
|  | * a time) */ | 
|  | struct dirent		dd_dir; | 
|  |  | 
|  | /* _findnext handle */ | 
|  | intptr_t		dd_handle; | 
|  |  | 
|  | /* | 
|  | * Status of search: | 
|  | *   0 = not started yet (next entry to read is first entry) | 
|  | *  -1 = off the end | 
|  | *   positive = 0 based index of next entry | 
|  | */ | 
|  | int			dd_stat; | 
|  |  | 
|  | /* given path for dir with search pattern (struct is extended) */ | 
|  | char			dd_name[1]; | 
|  | } DIR; | 
|  |  | 
|  | DIR* __cdecl __MINGW_NOTHROW opendir (const char*); | 
|  | struct dirent* __cdecl __MINGW_NOTHROW readdir (DIR*); | 
|  | int __cdecl __MINGW_NOTHROW closedir (DIR*); | 
|  | void __cdecl __MINGW_NOTHROW rewinddir (DIR*); | 
|  | long __cdecl __MINGW_NOTHROW telldir (DIR*); | 
|  | void __cdecl __MINGW_NOTHROW seekdir (DIR*, long); | 
|  |  | 
|  |  | 
|  | /* wide char versions */ | 
|  |  | 
|  | struct _wdirent | 
|  | { | 
|  | long		d_ino;		/* Always zero. */ | 
|  | unsigned short	d_reclen;	/* Always zero. */ | 
|  | unsigned short	d_namlen;	/* Length of name in d_name. */ | 
|  | wchar_t		d_name[260]; /* [FILENAME_MAX] */ /* File name. */ | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * This is an internal data structure. Good programmers will not use it | 
|  | * except as an argument to one of the functions below. | 
|  | */ | 
|  | typedef struct | 
|  | { | 
|  | /* disk transfer area for this dir */ | 
|  | struct _wfinddata_t	dd_dta; | 
|  |  | 
|  | /* dirent struct to return from dir (NOTE: this makes this thread | 
|  | * safe as long as only one thread uses a particular DIR struct at | 
|  | * a time) */ | 
|  | struct _wdirent		dd_dir; | 
|  |  | 
|  | /* _findnext handle */ | 
|  | intptr_t		dd_handle; | 
|  |  | 
|  | /* | 
|  | * Status of search: | 
|  | *   0 = not started yet (next entry to read is first entry) | 
|  | *  -1 = off the end | 
|  | *   positive = 0 based index of next entry | 
|  | */ | 
|  | int			dd_stat; | 
|  |  | 
|  | /* given path for dir with search pattern (struct is extended) */ | 
|  | wchar_t			dd_name[1]; | 
|  | } _WDIR; | 
|  |  | 
|  | _WDIR* __cdecl __MINGW_NOTHROW _wopendir (const wchar_t*); | 
|  | struct _wdirent* __cdecl __MINGW_NOTHROW _wreaddir (_WDIR*); | 
|  | int __cdecl __MINGW_NOTHROW _wclosedir (_WDIR*); | 
|  | void __cdecl __MINGW_NOTHROW _wrewinddir (_WDIR*); | 
|  | long __cdecl __MINGW_NOTHROW _wtelldir (_WDIR*); | 
|  | void __cdecl __MINGW_NOTHROW _wseekdir (_WDIR*, long); | 
|  |  | 
|  |  | 
|  | #ifdef	__cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #endif	/* Not RC_INVOKED */ | 
|  |  | 
|  | #endif	/* Not _DIRENT_H_ */ | 
|  |  |