V10/cmd/odist/pax/include/dirent.h
/*
* AT&T Bell Laboratories
* directory stream access definitions
*
* #include <sys/types.h>
* #include <dirent.h>
*
* : : generated by mkhdr and genhdr : :
*/
#ifndef __DIRENT_H__
#include <lcldirent.h>
#ifndef __DIRENT_H__
#define __DIRENT_H__
#endif
#define _dir_sys 1 /* #include <sys/dir.h> ok */
#ifndef d_fileno
#define d_fileno d_ino
#endif
#ifndef _lcl_dirent
#ifdef _dir_sys
#include <sys/dir.h>
#else
#undef _dir_rewinddir
#define DIRSIZ 14
struct direct
{
short d_ino;
char d_name[DIRSIZ];
};
#endif
#ifdef _dir_rewinddir
/*
* variable length directory entry format
*/
#define _dir_variable
#ifndef dirent
#define dirent direct
#endif
#else
/*
* fixed length directory entry format
*/
#define _dir_fixed
#ifndef DIRSIZ
#define DIRSIZ 14 /* maximum entry link length */
#endif
#ifndef MAXNAMLEN
#define MAXNAMLEN DIRSIZ /* maximum filename length */
#endif
#ifdef _dir_getdents
struct dirent /* data from local getdents() */
{
long d_ino; /* file number of entry */
long d_off; /* entry seek offset */
unsigned short d_reclen; /* length of this record */
char d_name[1]; /* link name */
};
#else
#ifndef _dir_namlen
#define _dir_namlen 1
#endif
struct dirent /* data from readdir() */
{
long d_fileno; /* file number of entry */
unsigned short d_reclen; /* length of this record */
unsigned short d_namlen; /* strlen(d_name) */
char d_name[1]; /* link name */
};
#endif
typedef struct
{
int dd_fd; /* file descriptor */
int dd_loc; /* offset in block */
int dd_size; /* amount of valid data */
char* dd_buf; /* directory block */
} DIR; /* stream data from opendir() */
extern DIR* opendir();
extern struct dirent* readdir();
extern long telldir();
extern void seekdir();
extern void closedir();
#if !_dir_local
#define rewinddir(dirp) seekdir(dirp,0L)
#endif
#endif
#endif
#if _dir_namlen
#define DIRNAMLEN(d) ((d)->d_namlen)
#else
#define DIRNAMLEN(d) strlen((d)->d_name)
#endif
#endif