|  | @@ -0,0 +1,75 @@
 | 
	
		
			
				|  |  | +/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
 | 
	
		
			
				|  |  | +This file is part of the GNU C Library.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The GNU C Library is free software; you can redistribute it and/or
 | 
	
		
			
				|  |  | +modify it under the terms of the GNU Library General Public License as
 | 
	
		
			
				|  |  | +published by the Free Software Foundation; either version 2 of the
 | 
	
		
			
				|  |  | +License, or (at your option) any later version.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The GNU C Library is distributed in the hope that it will be useful,
 | 
	
		
			
				|  |  | +but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
	
		
			
				|  |  | +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
	
		
			
				|  |  | +Library General Public License for more details.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +You should have received a copy of the GNU Library General Public
 | 
	
		
			
				|  |  | +License along with the GNU C Library; see the file COPYING.LIB.  If
 | 
	
		
			
				|  |  | +not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
 | 
	
		
			
				|  |  | +Cambridge, MA 02139, USA.  */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/*
 | 
	
		
			
				|  |  | + *	POSIX Standard: 5.1.2 Directory Operations	<dirent.h>
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#ifndef	_DIRSTREAM_H
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#define	_DIRSTREAM_H	1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#include <sys/types.h>
 | 
	
		
			
				|  |  | +#include <dirent.h>
 | 
	
		
			
				|  |  | +#ifdef _POSIX_THREADS
 | 
	
		
			
				|  |  | +#include <pthread.h>
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* For now, syscall readdir () only supports one entry at a time. It
 | 
	
		
			
				|  |  | + * will be changed in the future.
 | 
	
		
			
				|  |  | +#define NUMENT		3
 | 
	
		
			
				|  |  | +*/
 | 
	
		
			
				|  |  | +#ifndef NUMENT
 | 
	
		
			
				|  |  | +#define NUMENT		1
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#define SINGLE_READDIR	11
 | 
	
		
			
				|  |  | +#define MULTI_READDIR	12
 | 
	
		
			
				|  |  | +#define NEW_READDIR	13
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* Directory stream type.  */
 | 
	
		
			
				|  |  | +struct __dirstream {
 | 
	
		
			
				|  |  | +  /* file descriptor */
 | 
	
		
			
				|  |  | +  int dd_fd;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /* offset of the next dir entry in buffer */
 | 
	
		
			
				|  |  | +  off_t dd_nextloc;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /* bytes of valid entries in buffer */
 | 
	
		
			
				|  |  | +  size_t dd_size;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /* -> directory buffer */
 | 
	
		
			
				|  |  | +  struct dirent *dd_buf;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /* offset of the next dir entry in directory. */
 | 
	
		
			
				|  |  | +  off_t dd_nextoff;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /* total size of buffer */
 | 
	
		
			
				|  |  | +  size_t dd_max;
 | 
	
		
			
				|  |  | + 
 | 
	
		
			
				|  |  | +  enum {unknown, have_getdents, no_getdents} dd_getdents;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /* lock */
 | 
	
		
			
				|  |  | +#ifdef _POSIX_THREADS
 | 
	
		
			
				|  |  | +  pthread_mutex_t *dd_lock;
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +  void *dd_lock;
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +};				/* stream data from opendir() */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#endif /* dirent.h  */
 |