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