53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
/* @(#)ndir.h 1.7 10/7/87 */
|
|
#if defined(HP9K5)
|
|
/* He should have included it instead of this, but prevent confusion */
|
|
#include <ndir.h>
|
|
#else /* other */
|
|
#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.
|
|
*/
|
|
|
|
#ifdef DIRSIZ
|
|
#undef DIRSIZ
|
|
#endif /* 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;
|
|
#ifdef COH386
|
|
#undef NULL
|
|
#endif
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
extern DIR *opendir();
|
|
extern struct direct *readdir();
|
|
extern void closedir();
|
|
|
|
#define rewinddir(dirp) seekdir((dirp), (long)0)
|
|
#endif /* other */
|