home *** CD-ROM | disk | FTP | other *** search
- /*
- <dirent.h> -- definitions for SVR3 directory access routines
-
- last edit: 25-Apr-1987 D A Gwyn
-
- Prerequisite: <sys/types.h>
- */
-
- #ifndef _PAX_DIRENT_H
- #define _PAX_DIRENT_H
-
- #include "config.h"
- #ifdef USG
- #define UFS
- #else
- #ifdef BSD
- #define BFS
- #endif
- #endif
-
- struct dirent { /* data from getdents()/readdir() */
- long d_ino; /* inode number of entry */
- off_t d_off; /* offset of disk directory entry */
- unsigned short d_reclen; /* length of this record */
- char d_name[1]; /* name of file (non-POSIX) */
- };
-
- typedef struct {
- int dd_fd; /* file descriptor */
- int dd_loc; /* offset in block */
- int dd_size; /* amount of valid data */
- char *dd_buf; /* -> directory block */
- } DIR; /* stream data from opendir() */
-
-
- /*
- * The following nonportable ugliness could have been avoided by defining
- * DIRENTSIZ and DIRENTBASESIZ to also have (struct dirent *) arguments.
- */
- #define DIRENTBASESIZ (((struct dirent *)0)->d_name \
- - (char *)&((struct dirent *)0)->d_ino)
- #define DIRENTSIZ( namlen ) ((DIRENTBASESIZ + sizeof(long) + (namlen)) \
- / sizeof(long) * sizeof(long))
-
- #define MAXNAMLEN 512 /* maximum filename length */
-
- #ifndef NAME_MAX
- #define NAME_MAX (MAXNAMLEN - 1) /* DAG -- added for POSIX */
- #endif
-
- #define DIRBUF 8192 /* buffer size for fs-indep. dirs */
- /* must in general be larger than the filesystem buffer size */
-
- #ifdef __STDC__ /* Xn */
- extern DIR *opendir(char *);
- extern struct dirent *readdir(DIR *);
- extern OFFSET telldir(DIR *);
- extern void seekdir(DIR *, OFFSET);
- extern int closedir(DIR *);
- #else /* Xn */
- extern DIR *opendir();
- extern struct dirent *readdir();
- extern OFFSET telldir();
- extern void seekdir();
- extern int closedir();
- #endif /* Xn */
-
- #endif /* _PAX_DIRENT_H */
-