home *** CD-ROM | disk | FTP | other *** search
- /* $Id: ndir.h,v 3.0 1991/09/09 20:23:31 davison Trn $
- */
- /* This software is Copyright 1991 by Stan Barber.
- *
- * Permission is hereby granted to copy, reproduce, redistribute or otherwise
- * use this software as long as: there is no monetary profit gained
- * specifically from the use or reproduction of this software, it is not
- * sold, rented, traded or otherwise marketed, and this copyright notice is
- * included prominently in any copy made.
- *
- * The authors make no claims as to the fitness or correctness of this software
- * for any use whatsoever, and it is provided as is. Any use of this software
- * is at the user's own risk.
- */
-
- #ifdef I_NDIR
- #include <ndir.h>
- #else
- #ifdef I_DIRENT
- #include <dirent.h>
- #ifndef direct
- #define direct dirent
- #endif
- #else
- #ifdef I_SYS_NDIR
- #include <sys/ndir.h>
- #else
- #ifdef I_SYS_DIR
- #include <sys/dir.h>
- #else
-
- #ifndef DEV_BSIZE
- #define DEV_BSIZE 512
- #endif
- #define DIRBLKSIZ DEV_BSIZE
- #define MAXNAMLEN 255
-
- struct direct {
- long d_ino; /* inode number of entry */
- short d_reclen; /* length of this record */
- short d_namlen; /* length of string in d_name */
- char d_name[MAXNAMLEN + 1]; /* name must be no longer than this */
- };
-
- /*
- * The DIRSIZ macro gives the minimum record length which will hold
- * the directory entry. This requires the amount of space in struct direct
- * without the d_name field, plus enough space for the name with a terminating
- * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary.
- */
- #undef DIRSIZ
- #define DIRSIZ(dp) ((sizeof (struct direct) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3))
-
- /*
- * Definitions for library routines operating on directories.
- */
- typedef struct _dirdesc {
- int dd_fd;
- long dd_loc;
- long dd_size;
- char dd_buf[DIRBLKSIZ];
- } DIR;
- #ifndef NULL
- #define NULL 0
- #endif
- extern DIR *opendir _((char*));
- extern struct direct *readdir _((DIR*));
- extern long telldir _((DIR*));
- extern void seekdir _((DIR*));
- #define rewinddir(dirp) seekdir((dirp), (long)0)
- extern void closedir _((DIR*));
-
- #endif
- #endif
- #endif
- #endif
-