home *** CD-ROM | disk | FTP | other *** search
- /* H.Dir: Directory handling */
-
- #ifndef __sys_dir_h
- #define __sys_dir_h
-
- #define MAXNAMELEN 10 /* Name must be no longer than this */
-
- struct direct
- {
- long d_ino; /* inode number of entry */
- short d_reclen; /* length of this record */
- short d_namlen; /* length of d_name string */
- char d_name[MAXNAMELEN + 1]; /* directory name */
- };
-
- #define DIRSIZ(dp) \
- ((sizeof (struct direct) - (MAXNAMELEN+1)) \
- + (((dp)->d_namlen+1 + 3) & ~3))
-
- typedef struct
- {
- int dd_pos; /* current directory entry */
- int dd_num; /* number of directory entries */
- char *dd_loc; /* current position in the cache */
- char *dd_cache; /* cache of directory names */
- }
- DIR;
-
- /* K&R equivalent definitions */
-
- #ifdef __STDC__
-
- extern DIR *opendir (char *name);
- extern struct direct *readdir (DIR *dirp);
- extern void closedir (DIR *dirp);
- extern int seekdir (DIR *dirp, int pos);
-
- #else
-
- extern DIR *opendir();
- extern struct direct *readdir();
- extern void closedir();
- extern int seekdir();
-
- #endif
-
- #define telldir(dirp) \
- ((dirp)->dd_pos)
-
- #define rewinddir(dirp) \
- (void)((dirp)->dd_pos = 0, (dirp)->dd_loc = (dirp)->dd_cache)
-
- #endif
-