(root)/
make-4.4/
src/
vmsdir.h
       1  /* dirent.h for vms
       2  Copyright (C) 1996-2022 Free Software Foundation, Inc.
       3  This file is part of GNU Make.
       4  
       5  GNU Make is free software; you can redistribute it and/or modify it under the
       6  terms of the GNU General Public License as published by the Free Software
       7  Foundation; either version 3 of the License, or (at your option) any later
       8  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  this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  #ifndef VMSDIR_H
      18  #define VMSDIR_H
      19  
      20  #include <rms.h>
      21  
      22  #define	MAXNAMLEN	255
      23  
      24  #ifndef __DECC
      25  #if !defined (__GNUC__) && !defined (__ALPHA)
      26  typedef unsigned long u_long;
      27  typedef unsigned short u_short;
      28  #endif
      29  #endif
      30  
      31  struct direct
      32  {
      33    off_t d_off;
      34    u_long d_fileno;
      35    u_short d_reclen;
      36    u_short d_namlen;
      37    char d_name[MAXNAMLEN + 1];
      38  };
      39  
      40  #undef DIRSIZ
      41  #define DIRSIZ(dp)		\
      42    (((sizeof (struct direct)	\
      43       - (MAXNAMLEN+1)		\
      44       + ((dp)->d_namlen+1))	\
      45      + 3) & ~3)
      46  
      47  #define d_ino	d_fileno		/* compatibility */
      48  
      49  
      50  /*
      51   * Definitions for library routines operating on directories.
      52   */
      53  
      54  typedef struct DIR
      55  {
      56    struct direct dir;
      57    char d_result[MAXNAMLEN + 1];
      58  #if defined (__ALPHA) || defined (__DECC)
      59    struct FAB fab;
      60  #else
      61    struct fabdef fab;
      62  #endif
      63  } DIR;
      64  
      65  #ifndef NULL
      66  #define NULL 0
      67  #endif
      68  
      69  #define rewinddir(dirp)	seekdir((dirp), (long)0)
      70  
      71  DIR *opendir ();
      72  struct direct *readdir (DIR *dfd);
      73  int closedir (DIR *dfd);
      74  const char *vmsify (const char *name, int type);
      75  
      76  #endif /* VMSDIR_H */