28#ifndef __DIRENT_H_9DE6B42C_8D0C_4D31_A8EF_8E4C30E6C46A__
29#define __DIRENT_H_9DE6B42C_8D0C_4D31_A8EF_8E4C30E6C46A__
32#pragma message("this dirent.h implementation is for Windows only!")
88#ifndef _DIRENT_HAVE_D_NAMLEN
89#define _DIRENT_HAVE_D_NAMLEN 1
92#ifndef _DIRENT_HAVE_D_RECLEN
93#define _DIRENT_HAVE_D_RECLEN 1
96#ifndef _DIRENT_HAVE_D_OFF
97#define _DIRENT_HAVE_D_OFF 1
100#ifndef _DIRENT_HAVE_D_TYPE
101#define _DIRENT_HAVE_D_TYPE 1
105#define NTFS_MAX_PATH 32768
108#ifndef FSCTL_GET_REPARSE_POINT
109#define FSCTL_GET_REPARSE_POINT 0x900a8
112#ifndef FILE_NAME_NORMALIZED
113#define FILE_NAME_NORMALIZED 0
120typedef struct ino_t {
121 unsigned long long serial;
122 unsigned char fileid[16];
129 unsigned short d_reclen;
130 unsigned char d_namelen;
131 unsigned char d_type;
132 char d_name[NAME_MAX];
145DIR* opendir(
const char* name);
153DIR* _wopendir(
const wchar_t* name);
161DIR* fdopendir(intptr_t fd);
169int closedir(DIR* dirp);
177struct dirent* readdir(DIR* dirp);
187int readdir_r(DIR* dirp,
struct dirent* entry,
struct dirent** result);
194void rewinddir(DIR* dirp);
202void seekdir(DIR* dirp,
long int offset);
210long int telldir(DIR* dirp);
218intptr_t dirfd(DIR* dirp);
229int scandir(
const char* dirp,
struct dirent*** namelist,
int (*filter)(
const struct dirent*),
230 int (*compar)(
const struct dirent**,
const struct dirent**));
236int alphasort(
const void* a,
const void* b);
242int versionsort(
const void* a,
const void* b);