1/* dirent.h for vms */
2
3#ifndef VMSDIR_H
4#define VMSDIR_H
5
6#include <rms.h>
7
8#define	MAXNAMLEN	255
9
10#ifndef __DECC
11#if !defined (__GNUC__) && !defined (__ALPHA)
12typedef unsigned long u_long;
13typedef unsigned short u_short;
14#endif
15#endif
16
17struct direct
18{
19  off_t d_off;
20  u_long d_fileno;
21  u_short d_reclen;
22  u_short d_namlen;
23  char d_name[MAXNAMLEN + 1];
24};
25
26#undef DIRSIZ
27#define DIRSIZ(dp)		\
28  (((sizeof (struct direct)	\
29     - (MAXNAMLEN+1)		\
30     + ((dp)->d_namlen+1))	\
31    + 3) & ~3)
32
33#define d_ino	d_fileno		/* compatability */
34
35
36/*
37 * Definitions for library routines operating on directories.
38 */
39
40typedef struct DIR
41{
42  struct direct dir;
43  char d_result[MAXNAMLEN + 1];
44#if defined (__ALPHA) || defined (__DECC)
45  struct FAB fab;
46#else
47  struct fabdef fab;
48#endif
49} DIR;
50
51#ifndef NULL
52#define NULL 0
53#endif
54
55extern	DIR *opendir PARAMS (());
56extern	struct direct *readdir PARAMS ((DIR *dfd));
57#define rewinddir(dirp)	seekdir((dirp), (long)0)
58extern	int closedir PARAMS ((DIR *dfd));
59extern char *vmsify PARAMS ((char *name, int type));
60
61#endif /* VMSDIR_H */
62