Pristine Ack-5.5
[Ack-5.5.git] / lang / cem / libcc.ansi / headers / sys / dirent.h
1 /*
2         <sys/dirent.h> -- file system independent directory entry (SVR3)
3
4         last edit:      25-Apr-1987     D A Gwyn
5
6         prerequisite:   <sys/types.h>
7 */
8 /* $Id: dirent.h,v 1.3 1994/06/24 11:41:52 ceriel Exp $ */
9
10 #if     !defined(_SYS_DIRENT_H)
11 #define _SYS_DIRENT_H
12
13 struct dirent                           /* data from getdents()/readdir() */
14         {
15         long            d_ino;          /* inode number of entry */
16         off_t           d_off;          /* offset of disk directory entry */
17         unsigned short  d_reclen;       /* length of this record */
18         char            d_name[1];      /* name of file */      /* non-POSIX */
19         };
20
21 /* The following nonportable ugliness could have been avoided by defining
22    DIRENTSIZ and DIRENTBASESIZ to also have (struct dirent *) arguments. */
23 #define DIRENTBASESIZ           (((struct dirent *)0)->d_name \
24                                 - (char *)&((struct dirent *)0)->d_ino)
25 #define DIRENTSIZ( namlen )     ((DIRENTBASESIZ + sizeof(long) + (namlen)) \
26                                 / sizeof(long) * sizeof(long))
27
28 /* DAG -- the following was moved from <dirent.h>, which was the wrong place */
29 #define MAXNAMLEN       512             /* maximum filename length */
30
31 #if     !defined(NAME_MAX)
32 #define NAME_MAX        (MAXNAMLEN - 1) /* DAG -- added for POSIX */
33 #endif
34
35 #endif  /* _SYS_DIRENT_H */