/* ** Distributed under the terms of the Haiku License. */ #ifndef _FSSH_DIRENT_H #define _FSSH_DIRENT_H #include "fssh_defs.h" typedef struct fssh_dirent { fssh_dev_t d_dev; /* device */ fssh_dev_t d_pdev; /* parent device (only for queries) */ fssh_ino_t d_ino; /* inode number */ fssh_ino_t d_pino; /* parent inode (only for queries) */ unsigned short d_reclen; /* length of this record, not the name */ char d_name[1]; /* name of the entry (null byte terminated) */ } fssh_dirent_t; typedef struct { int fd; struct fssh_dirent ent; } fssh_DIR; #ifdef __cplusplus extern "C" { #endif fssh_DIR *fssh_opendir(const char *dirname); struct fssh_dirent *fssh_readdir(fssh_DIR *dir); int fssh_readdir_r(fssh_DIR *dir, struct fssh_dirent *entry, struct fssh_dirent **_result); int fssh_closedir(fssh_DIR *dir); void fssh_rewinddir(fssh_DIR *dir); void fssh_seekdir(fssh_DIR *dir, long int loc); long int fssh_telldir(fssh_DIR *); #ifdef __cplusplus } #endif #endif /* _FSSH_DIRENT_H */