1a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner/* dirent.h for vms
2a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerCopyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
3a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner2006 Free Software Foundation, Inc.
4a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerThis file is part of GNU Make.
5a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
6a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerGNU Make is free software; you can redistribute it and/or modify it under the
7a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerterms of the GNU General Public License as published by the Free Software
8a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerFoundation; either version 2, or (at your option) any later version.
9a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
10a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerGNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
11a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerA PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
14a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerYou should have received a copy of the GNU General Public License along with
15a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerGNU Make; see the file COPYING.  If not, write to the Free Software
16a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
17a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
18a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#ifndef VMSDIR_H
19a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define VMSDIR_H
20a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
21a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#include <rms.h>
22a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
23a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define	MAXNAMLEN	255
24a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
25a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#ifndef __DECC
26a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#if !defined (__GNUC__) && !defined (__ALPHA)
27a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnertypedef unsigned long u_long;
28a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnertypedef unsigned short u_short;
29a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#endif
30a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#endif
31a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
32a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerstruct direct
33a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner{
34a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  off_t d_off;
35a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  u_long d_fileno;
36a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  u_short d_reclen;
37a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  u_short d_namlen;
38a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  char d_name[MAXNAMLEN + 1];
39a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner};
40a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
41a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#undef DIRSIZ
42a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define DIRSIZ(dp)		\
43a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  (((sizeof (struct direct)	\
44a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner     - (MAXNAMLEN+1)		\
45a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner     + ((dp)->d_namlen+1))	\
46a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner    + 3) & ~3)
47a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
48a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define d_ino	d_fileno		/* compatability */
49a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
50a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
51a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner/*
52a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner * Definitions for library routines operating on directories.
53a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner */
54a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
55a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnertypedef struct DIR
56a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner{
57a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  struct direct dir;
58a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  char d_result[MAXNAMLEN + 1];
59a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#if defined (__ALPHA) || defined (__DECC)
60a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  struct FAB fab;
61a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#else
62a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner  struct fabdef fab;
63a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#endif
64a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner} DIR;
65a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
66a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#ifndef NULL
67a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define NULL 0
68a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#endif
69a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
70a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerextern	DIR *opendir PARAMS (());
71a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerextern	struct direct *readdir PARAMS ((DIR *dfd));
72a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define rewinddir(dirp)	seekdir((dirp), (long)0)
73a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerextern	int closedir PARAMS ((DIR *dfd));
74a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerextern char *vmsify PARAMS ((char *name, int type));
75a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner
76a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#endif /* VMSDIR_H */
77