1 /* 2 * Copyright 2002-2008, Haiku Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _DIRENT_H 6 #define _DIRENT_H 7 8 9 #include <sys/types.h> 10 11 12 typedef struct dirent { 13 dev_t d_dev; /* device */ 14 dev_t d_pdev; /* parent device (only for queries) */ 15 ino_t d_ino; /* inode number */ 16 ino_t d_pino; /* parent inode (only for queries) */ 17 unsigned short d_reclen; /* length of this record, not the name */ 18 char d_name[1]; /* name of the entry (null byte terminated) */ 19 } dirent_t; 20 21 typedef struct __DIR DIR; 22 23 #ifndef MAXNAMLEN 24 # ifdef NAME_MAX 25 # define MAXNAMLEN NAME_MAX 26 # else 27 # define MAXNAMLEN 256 28 # endif 29 #endif 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 DIR *opendir(const char *dirname); 36 struct dirent *readdir(DIR *dir); 37 int readdir_r(DIR *dir, struct dirent *entry, struct dirent **_result); 38 int closedir(DIR *dir); 39 void rewinddir(DIR *dir); 40 void seekdir(DIR *dir, long int loc); 41 long int telldir(DIR *); 42 43 /* Non-POSIX extension to get the FD out of the private DIR */ 44 int dirfd(const DIR *dir); 45 46 #ifdef __cplusplus 47 } 48 #endif 49 50 #endif /* _DIRENT_H */ 51