1/* dirent.h for vms 2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 32006 Free Software Foundation, Inc. 4This file is part of GNU Make. 5 6GNU Make is free software; you can redistribute it and/or modify it under the 7terms of the GNU General Public License as published by the Free Software 8Foundation; either version 2, or (at your option) any later version. 9 10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY 11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 12A PARTICULAR PURPOSE. See the GNU General Public License for more details. 13 14You should have received a copy of the GNU General Public License along with 15GNU Make; see the file COPYING. If not, write to the Free Software 16Foundation, 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) 27typedef unsigned long u_long; 28typedef unsigned short u_short; 29#endif 30#endif 31 32struct 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 55typedef 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 70extern DIR *opendir PARAMS (()); 71extern struct direct *readdir PARAMS ((DIR *dfd)); 72#define rewinddir(dirp) seekdir((dirp), (long)0) 73extern int closedir PARAMS ((DIR *dfd)); 74extern char *vmsify PARAMS ((char *name, int type)); 75 76#endif /* VMSDIR_H */ 77