Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/goo/vms_dirent.h
blob: 13e21a072e3f542dd06eaf39e5d2d22ed89d6908 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*	@(#)dirent.h 1.7 89/06/25 SMI 	*/

/*
 * Filesystem-independent directory information.
 */

#ifndef	__dirent_h
#define	__dirent_h

#ifdef __cplusplus
extern "C" {
#endif

/* Make sure we don't get the V7 RTL dirent functions. These are broken. */

#ifndef __CRTL_VER
#   define __CRTL_VER __VMS_VER
#endif
#if __CRTL_VER >= 70000000
#include <dirent.h>
#endif

#include <types.h>

#define opendir   goo_opendir
#define readdir   goo_readdir
#define closedir  goo_closedir
#define seekdir   goo_seekdir
#define telldir   goo_telldir
#define rewinddir goo_rewindir
#define DIR       GOO_DIR

#ifndef	_POSIX_SOURCE
#define	d_ino	d_fileno	/* compatability */
#ifndef	NULL
#define	NULL	0
#endif
#endif	/* !_POSIX_SOURCE */

/*
 * Definitions for library routines operating on directories.
 */
typedef	struct __dirdesc {
	unsigned long dd_fd;	/* file descriptor */
	long	dd_loc;		/* buf offset of entry from last readddir() */
	long	dd_size;	/* amount of valid data in buffer */
	long	dd_bsize;	/* amount of entries read at a time */
	long	dd_off;		/* Current offset in dir (for telldir) */
	char	*dd_buf;	/* directory data buffer */
} DIR;

#include "vms_sys_dirent.h"

extern	DIR *opendir(char *dirname);
extern	struct dirent *readdir(DIR *dirp);
extern	void closedir(DIR *dirp);
#ifndef	_POSIX_SOURCE
extern	void seekdir(DIR *dirp, int loc);
extern	long telldir(DIR *dirp);
#endif	/* POSIX_SOURCE */
extern	void rewinddir(DIR *dirp);

#ifdef __cplusplus
}
#endif

#endif	/* !__dirent_h */