Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/*
2
	<dirent.h> -- definitions for SVR3 directory access routines
3
 
4
	last edit:	25-Apr-1987	D A Gwyn
5
 
6
	Prerequisite:	<sys/types.h>
7
*/
8
 
9
#ifndef _PAX_DIRENT_H
10
#define _PAX_DIRENT_H
11
 
12
#include "config.h"
13
#ifdef USG
14
#define UFS
15
#else
16
#ifdef BSD
17
#define BFS
18
#endif
19
#endif
20
 
21
struct dirent { 			/* data from getdents()/readdir() */
22
    long		d_ino;		/* inode number of entry */
23
    off_t		d_off;		/* offset of disk directory entry */
24
    unsigned short	d_reclen;	/* length of this record */
25
    char		d_name[1];	/* name of file (non-POSIX) */
26
};
27
 
28
typedef struct {
29
    int		dd_fd;			/* file descriptor */
30
    int		dd_loc;			/* offset in block */
31
    int		dd_size;		/* amount of valid data */
32
    char	*dd_buf;		/* -> directory block */
33
} DIR;					/* stream data from opendir() */
34
 
35
 
36
/* 
37
 * The following nonportable ugliness could have been avoided by defining
38
 * DIRENTSIZ and DIRENTBASESIZ to also have (struct dirent *) arguments. 
39
 */
40
#define	DIRENTBASESIZ		(((struct dirent *)0)->d_name \
41
				- (char *)&((struct dirent *)0)->d_ino)
42
#define	DIRENTSIZ( namlen )	((DIRENTBASESIZ + sizeof(long) + (namlen)) \
43
				/ sizeof(long) * sizeof(long))
44
 
45
#define	MAXNAMLEN 512			/* maximum filename length */
46
 
47
#ifndef NAME_MAX
48
#define	NAME_MAX (MAXNAMLEN - 1)	/* DAG -- added for POSIX */
49
#endif
50
 
51
#define	DIRBUF	 8192			/* buffer size for fs-indep. dirs */
52
		/* must in general be larger than the filesystem buffer size */
53
 
54
extern DIR		*opendir();
55
extern struct dirent	*readdir();
56
extern OFFSET		telldir();
57
extern void		seekdir();
58
extern int		closedir();
59
 
60
#endif /* _PAX_DIRENT_H */