summaryrefslogtreecommitdiff
path: root/vmsdir.h
diff options
context:
space:
mode:
Diffstat (limited to 'vmsdir.h')
-rw-r--r--vmsdir.h29
1 files changed, 24 insertions, 5 deletions
diff --git a/vmsdir.h b/vmsdir.h
index 4cf1583..5903475 100644
--- a/vmsdir.h
+++ b/vmsdir.h
@@ -1,15 +1,21 @@
/* dirent.h for vms */
+#ifndef VMSDIR_H
+#define VMSDIR_H
+
#include <rms.h>
#define MAXNAMLEN 255
#ifndef __DECC
+#if !defined (__GNUC__) && !defined (__ALPHA)
typedef unsigned long u_long;
typedef unsigned short u_short;
#endif
+#endif
-struct direct {
+struct direct
+{
off_t d_off;
u_long d_fileno;
u_short d_reclen;
@@ -18,8 +24,11 @@ struct direct {
};
#undef DIRSIZ
-#define DIRSIZ(dp) \
- (((sizeof (struct direct) - (MAXNAMLEN+1) + ((dp)->d_namlen+1)) + 3) & ~3)
+#define DIRSIZ(dp) \
+ (((sizeof (struct direct) \
+ - (MAXNAMLEN+1) \
+ + ((dp)->d_namlen+1)) \
+ + 3) & ~3)
#define d_ino d_fileno /* compatability */
@@ -28,15 +37,25 @@ struct direct {
* Definitions for library routines operating on directories.
*/
-typedef struct FAB DIR;
+typedef struct DIR
+{
+ struct direct dir;
+ char d_result[MAXNAMLEN + 1];
+#if defined (__ALPHA) || defined (__DECC)
+ struct FAB fab;
+#else
+ struct fabdef fab;
+#endif
+} DIR;
#ifndef NULL
#define NULL 0
#endif
+
extern DIR *opendir PARAMS (());
extern struct direct *readdir PARAMS ((DIR *dfd));
#define rewinddir(dirp) seekdir((dirp), (long)0)
extern int closedir PARAMS ((DIR *dfd));
extern char *vmsify PARAMS ((char *name, int type));
-/* EOF */
+#endif /* VMSDIR_H */