|
|
1.1 ! root 1: /* ! 2: * dirent.h ! 3: */ ! 4: ! 5: #ifndef _DIRENT_H ! 6: # define _DIRENT_H ! 7: ! 8: # include <sys/types.h> ! 9: # include <limits.h> ! 10: ! 11: #define MAXNAMLEN 255 /* maximum filename length */ ! 12: ! 13: #ifndef NAME_MAX ! 14: #define NAME_MAX (MAXNAMLEN - 1) ! 15: #endif ! 16: ! 17: struct dirent /* data from getdents()/readdir() */ ! 18: { ! 19: ino_t d_ino; /* inode number of entry */ ! 20: off_t d_off; /* offset of disk directory entry */ ! 21: wchar_t d_reclen; /* length of this record */ ! 22: char d_name[MAXNAMLEN + 1]; ! 23: }; ! 24: ! 25: ! 26: /* The following nonportable ugliness could have been avoided by defining ! 27: * DIRENTSIZ and DIRENTBASESIZ to also have (struct dirent *) arguments. ! 28: * There shouldn't be any problem if you avoid using the DIRENTSIZ() macro. ! 29: */ ! 30: ! 31: #define DIRENTBASESIZ (((struct dirent *)0)->d_name \ ! 32: - (char *)&((struct dirent *)0)->d_ino) ! 33: ! 34: #define DIRENTSIZ(namlen) ((DIRENTBASESIZ + sizeof(long) + (namlen)) \ ! 35: / sizeof(long) * sizeof(long)) ! 36: ! 37: ! 38: ! 39: # ifndef _BOOL_T_DEFINED ! 40: typedef unsigned char bool; ! 41: # define _BOOL_T_DEFINED ! 42: # endif ! 43: ! 44: # define DIRBUF 8192 /* buffer size for fs-indep. dirs */ ! 45: /* must in general be larger than the */ ! 46: /* filesystem buffer size */ ! 47: ! 48: struct _dircontents { ! 49: char *_d_entry; ! 50: struct _dircontents *_d_next; ! 51: }; ! 52: ! 53: typedef struct _dirdesc { ! 54: int dd_id; /* uniquely identify each open directory */ ! 55: long dd_loc; /* where we are in directory entry is this */ ! 56: struct _dircontents *dd_contents; /* pointer to contents of dir */ ! 57: struct _dircontents *dd_cp; /* pointer to current position */ ! 58: } DIR; ! 59: ! 60: ! 61: #if defined (__STDC__) ! 62: # define _PROTO(p) p ! 63: #else ! 64: # define _PROTO(p) () ! 65: # undef const ! 66: # undef volatile ! 67: #endif ! 68: ! 69: /* Functions */ ! 70: ! 71: extern DIR * opendir _PROTO ((const char *)); ! 72: extern struct dirent * readdir _PROTO ((DIR *)); ! 73: extern void rewinddir _PROTO ((DIR *)); ! 74: ! 75: extern int closedir _PROTO ((DIR *)); ! 76: extern void seekdir _PROTO ((DIR *, off_t)); ! 77: extern off_t telldir _PROTO ((DIR *)); ! 78: ! 79: extern int chdir _PROTO ((const char *)); ! 80: extern char * getcwd _PROTO ((char *, size_t)); ! 81: ! 82: extern int mkdir _PROTO ((const char *)); ! 83: ! 84: extern int rmdir _PROTO ((const char *)); ! 85: extern int scandir _PROTO ((char *, ! 86: struct dirent ***, ! 87: int (*)(const void *, const void *), ! 88: int (*)(const void *, const void *))); ! 89: ! 90: extern int _chdrive _PROTO ((int)); ! 91: extern int _getdrive _PROTO ((void)); ! 92: extern char * _getdcwd _PROTO ((int, char *, int)); ! 93: ! 94: extern bool IsHPFSFileSystem _PROTO ((char *)); ! 95: ! 96: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.