cosmetics
[unix-history] / usr / src / sys / ufs / ffs / dir.h
CommitLineData
ad30fb67 1/* dir.h 4.3 82/04/19 */
e4a96d2a 2
ad30fb67
KM
3/* @(#)ndir.h 4.4 3/30/82 */
4
5/*
6 * This sets the "page size" for directories.
7 * Requirements are DEV_BSIZE <= DIRBLKSIZ <= MINBSIZE with
8 * DIRBLKSIZ a power of two.
9 * Dennis Ritchie feels that directory pages should be atomic
10 * operations to the disk, so we use DEV_BSIZE.
11 */
12#define DIRBLKSIZ DEV_BSIZE
13
14/*
15 * This limits the directory name length. Its main constraint
16 * is that it appears twice in the user structure. (u. area)
17 */
18#define MAXNAMLEN 255
19
20struct direct {
21 u_long d_ino;
22 short d_reclen;
23 short d_namlen;
24 char d_name[MAXNAMLEN + 1];
25 /* typically shorter */
e4a96d2a 26};
ad30fb67
KM
27
28struct _dirdesc {
29 int dd_fd;
30 long dd_loc;
31 long dd_size;
32 char dd_buf[DIRBLKSIZ];
33};
34
35/*
36 * useful macros.
37 */
38#undef DIRSIZ
39#define DIRSIZ(dp) \
40 ((sizeof(struct direct) - MAXNAMLEN + (dp)->d_namlen + sizeof(ino_t) - 1) &\
41 ~(sizeof(ino_t) - 1))
42typedef struct _dirdesc DIR;
43#ifndef NULL
44#define NULL 0
45#endif
46
47/*
48 * functions defined on directories
49 */
50extern DIR *opendir();
51extern struct direct *readdir();
52extern long telldir();
53extern void seekdir();
54#define rewinddir(dirp) seekdir((dirp), 0)
55extern void closedir();