|
|
1.1 ! root 1: /* Copyright (c) 1982 Regents of the University of California */ ! 2: /* and modified by pjw in 1986 */ ! 3: ! 4: /* ! 5: * this must be a power of 2 and a multiple of all the ones in the system ! 6: */ ! 7: #define DIRBLKSIZ 512 ! 8: ! 9: /* ! 10: * This limits the directory name length. Its main constraint ! 11: * is that it appears twice in the user structure. (u. area) in bsd systems ! 12: */ ! 13: #define MAXNAMLEN 255 ! 14: ! 15: struct direct { ! 16: unsigned long d_ino; ! 17: short d_reclen; ! 18: short d_namlen; ! 19: char d_name[MAXNAMLEN + 1]; ! 20: /* typically shorter */ ! 21: }; ! 22: ! 23: struct _dirdesc { ! 24: int dd_fd; ! 25: long dd_loc; ! 26: long dd_size; ! 27: char dd_buf[DIRBLKSIZ]; ! 28: char dd_type; ! 29: }; ! 30: /* directory types */ ! 31: #define TUNK 0 ! 32: #define TOLD 1 ! 33: #define TCRAY 2 ! 34: #define TBSDSWAP 3 /* bsd style on other-endian */ ! 35: #define TBSD 4 /* bsd style */ ! 36: #define TOLDSWAP 5 /* Old on other-endian, i.e. vax from sun */ ! 37: ! 38: /* ! 39: * useful macros. ! 40: */ ! 41: #undef DIRSIZ ! 42: #define DIRSIZ(dp) \ ! 43: ((sizeof(struct direct) - MAXNAMLEN + (dp)->d_namlen + sizeof(ino_t) - 1) &\ ! 44: ~(sizeof(ino_t) - 1)) ! 45: typedef struct _dirdesc DIR; ! 46: #ifndef NULL ! 47: #define NULL 0 ! 48: #endif ! 49: ! 50: /* ! 51: * functions defined on directories ! 52: */ ! 53: extern DIR *opendir(); ! 54: extern struct direct *readdir(); ! 55: extern long telldir(); ! 56: extern void seekdir(); ! 57: #define rewinddir(dirp) seekdir((dirp), 0) ! 58: extern void closedir();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.