Initial import from FreeBSD RELENG_4:
[dragonfly.git] / gnu / usr.bin / man / man / ndir.h
1 /*
2         <dir.h> -- definitions for 4.2BSD-compatible directory access
3
4         last edit:      09-Jul-1983     D A Gwyn
5 */
6
7 #ifdef VMS
8 #ifndef FAB$C_BID
9 #include <fab.h>
10 #endif
11 #ifndef NAM$C_BID
12 #include <nam.h>
13 #endif
14 #ifndef RMS$_SUC
15 #include <rmsdef.h>
16 #endif
17 #include "dir.h"
18 #endif /* VMS */
19
20 #define DIRBLKSIZ       512             /* size of directory block */
21 #ifdef VMS
22 #define MAXNAMLEN       (DIR$S_NAME + 7) /* 80 plus room for version #.  */
23 #define MAXFULLSPEC     NAM$C_MAXRSS /* Maximum full spec */
24 #else
25 #define MAXNAMLEN       15              /* maximum filename length */
26 #endif /* VMS */
27         /* NOTE:  MAXNAMLEN must be one less than a multiple of 4 */
28
29 struct direct                           /* data from readdir() */
30         {
31         long            d_ino;          /* inode number of entry */
32         unsigned short  d_reclen;       /* length of this record */
33         unsigned short  d_namlen;       /* length of string in d_name */
34         char            d_name[MAXNAMLEN+1];    /* name of file */
35         };
36
37 typedef struct
38         {
39         int     dd_fd;                  /* file descriptor */
40         int     dd_loc;                 /* offset in block */
41         int     dd_size;                /* amount of valid data */
42         char    dd_buf[DIRBLKSIZ];      /* directory block */
43         }       DIR;                    /* stream data from opendir() */
44
45 extern DIR              *opendir();
46 extern struct direct    *readdir();
47 extern long             telldir();
48 extern void             seekdir();
49 extern void             closedir();
50
51 #define rewinddir( dirp )       seekdir( dirp, 0L )