1/*	$NetBSD: dirent.h,v 1.1.1.3 2010/12/12 15:21:26 adam Exp $	*/
2
3/* Generic dirent.h */
4/* OpenLDAP: pkg/ldap/include/ac/dirent.h,v 1.14.2.7 2010/04/13 20:22:51 kurt Exp */
5/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
6 *
7 * Copyright 1998-2010 The OpenLDAP Foundation.
8 * All rights reserved.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted only as authorized by the OpenLDAP
12 * Public License.
13 *
14 * A copy of this license is available in file LICENSE in the
15 * top-level directory of the distribution or, alternatively, at
16 * <http://www.OpenLDAP.org/license.html>.
17 */
18
19#ifndef _AC_DIRENT_H
20#define _AC_DIRENT_H
21
22#ifdef HAVE_DIRENT_H
23# include <dirent.h>
24# define NAMLEN(dirent) strlen((dirent)->d_name)
25#elif defined(_MSC_VER)
26#include <windows.h>
27#ifndef MAX_PATH
28#define MAX_PATH	260
29#endif
30struct dirent {
31	char *d_name;
32};
33typedef struct DIR {
34	HANDLE dir;
35	struct dirent data;
36	int first;
37	char buf[MAX_PATH+1];
38} DIR;
39DIR *opendir(const char *name);
40struct dirent *readdir(DIR *dir);
41int closedir(DIR *dir);
42#else
43# define dirent direct
44# define NAMLEN(dirent) (dirent)->d_namlen
45# ifdef HAVE_SYS_NDIR_H
46#  include <sys/ndir.h>
47# endif
48# ifdef HAVE_SYS_DIR_H
49#  include <sys/dir.h>
50# endif
51# ifdef HAVE_NDIR_H
52#  include <ndir.h>
53# endif
54#endif
55
56#endif /* _AC_DIRENT_H */
57