1 /* Windows version of dirent.h 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc. 4 This file is part of GNU Make. 5 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 terms of the GNU General Public License as published by the Free Software 8 Foundation; either version 2, or (at your option) any later version. 9 10 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY 11 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 12 A PARTICULAR PURPOSE. See the GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License along with 15 GNU Make; see the file COPYING. If not, write to the Free Software 16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ 17 18 #ifndef _DIRENT_H 19 #define _DIRENT_H 20 21 #ifdef __MINGW32__ 22 # include <windows.h> 23 # include_next <dirent.h> 24 #else 25 26 #include <stdlib.h> 27 #include <windows.h> 28 #include <limits.h> 29 #include <sys/types.h> 30 31 #ifndef NAME_MAX 32 #define NAME_MAX 255 33 #endif 34 35 #define __DIRENT_COOKIE 0xfefeabab 36 37 38 struct dirent 39 { 40 ino_t d_ino; /* unused - no equivalent on WINDOWS32 */ 41 char d_name[NAME_MAX+1]; 42 }; 43 44 typedef struct dir_struct { 45 ULONG dir_ulCookie; 46 HANDLE dir_hDirHandle; 47 DWORD dir_nNumFiles; 48 char dir_pDirectoryName[NAME_MAX+1]; 49 struct dirent dir_sdReturn; 50 } DIR; 51 52 DIR *opendir(const char *); 53 struct dirent *readdir(DIR *); 54 void rewinddir(DIR *); 55 void closedir(DIR *); 56 int telldir(DIR *); 57 void seekdir(DIR *, long); 58 59 #endif /* !__MINGW32__ */ 60 #endif 61