1#ifndef __VSF_LINUX_DIRENT_H__
2#define __VSF_LINUX_DIRENT_H__
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
16#if VSF_LINUX_CFG_WRAPPER == ENABLED
17#define opendir VSF_LINUX_WRAPPER(opendir)
18#define fdopendir VSF_LINUX_WRAPPER(fdopendir)
19#define readdir VSF_LINUX_WRAPPER(readdir)
20#define readdir64 VSF_LINUX_WRAPPER(readdir64)
21#define readdir_r VSF_LINUX_WRAPPER(readdir_r)
22#define readdir64_r VSF_LINUX_WRAPPER(readdir64_r)
23#define rewinddir VSF_LINUX_WRAPPER(rewinddir)
24#define telldir VSF_LINUX_WRAPPER(telldir)
25#define seekdir VSF_LINUX_WRAPPER(seekdir)
26#define closedir VSF_LINUX_WRAPPER(closedir)
27#define scandir VSF_LINUX_WRAPPER(scandir)
28#define alphasort VSF_LINUX_WRAPPER(alphasort)
29#define versionsort VSF_LINUX_WRAPPER(versionsort)
30#define scandir64 VSF_LINUX_WRAPPER(scandir64)
31#define alphasort64 VSF_LINUX_WRAPPER(alphasort64)
32#define versionsort64 VSF_LINUX_WRAPPER(versionsort64)
51#if VSF_LINUX_APPLET_USE_DIRENT == ENABLED
70# ifndef __VSF_APPLET__
75#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_DIRENT_LIB__))\
76 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_DIRENT == ENABLED
78#ifndef VSF_LINUX_APPLET_DIRENT_VPLT
79# if VSF_LINUX_USE_APPLET == ENABLED
80# define VSF_LINUX_APPLET_DIRENT_VPLT \
81 ((vsf_linux_dirent_vplt_t *)(VSF_LINUX_APPLET_VPLT->dirent_vplt))
83# define VSF_LINUX_APPLET_DIRENT_VPLT \
84 ((vsf_linux_dirent_vplt_t *)vsf_vplt((void *)0))
88#define VSF_LINUX_APPLET_DIRENT_ENTRY(__NAME) \
89 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_DIRENT_VPLT, __NAME)
90#define VSF_LINUX_APPLET_DIRENT_IMP(...) \
91 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_DIRENT_VPLT, __VA_ARGS__)
93VSF_LINUX_APPLET_DIRENT_IMP(
opendir,
DIR *,
const char *name) {
95 return VSF_LINUX_APPLET_DIRENT_ENTRY(
opendir)(name);
99 return VSF_LINUX_APPLET_DIRENT_ENTRY(
fdopendir)(fd);
103 return VSF_LINUX_APPLET_DIRENT_ENTRY(
readdir)(dir);
107 return VSF_LINUX_APPLET_DIRENT_ENTRY(
readdir64)(dir);
111 return VSF_LINUX_APPLET_DIRENT_ENTRY(
readdir_r)(dirp, entry, result);
115 return VSF_LINUX_APPLET_DIRENT_ENTRY(
readdir64_r)(dirp, entry, result);
119 VSF_LINUX_APPLET_DIRENT_ENTRY(
rewinddir)(dir);
121VSF_LINUX_APPLET_DIRENT_IMP(
telldir,
long,
DIR *dir) {
123 return VSF_LINUX_APPLET_DIRENT_ENTRY(
telldir)(dir);
125VSF_LINUX_APPLET_DIRENT_IMP(
seekdir,
void,
DIR *dir,
long loc) {
127 VSF_LINUX_APPLET_DIRENT_ENTRY(
seekdir)(dir, loc);
129VSF_LINUX_APPLET_DIRENT_IMP(
closedir,
int,
DIR *dir) {
131 return VSF_LINUX_APPLET_DIRENT_ENTRY(
closedir)(dir);
133VSF_LINUX_APPLET_DIRENT_IMP(
scandir,
int,
const char *dir,
struct dirent ***namelist,
int (*filter)(
const struct dirent *),
int (*compare)(
const struct dirent **,
const struct dirent **)) {
135 return VSF_LINUX_APPLET_DIRENT_ENTRY(
scandir)(dir, namelist, filter, compare);
139 return VSF_LINUX_APPLET_DIRENT_ENTRY(
alphasort)(a, b);
143 return VSF_LINUX_APPLET_DIRENT_ENTRY(
versionsort)(a, b);
159 int (*filter)(
const struct dirent *),
160 int (*compare)(
const struct dirent **,
const struct dirent **));
165 int (*filter)(
const struct dirent64 *),
Definition vsf_linux_fs.h:116
__VSF_VPLT_DECORATOR__ vsf_linux_dirent_vplt_t vsf_linux_dirent_vplt
Definition vsf_linux_fs.c:3945
#define rewinddir
Definition dirent.h:23
#define readdir64_r
Definition dirent.h:22
#define readdir
Definition dirent.h:19
#define scandir64
Definition dirent.h:30
#define readdir64
Definition dirent.h:20
#define alphasort64
Definition dirent.h:31
#define versionsort
Definition dirent.h:29
#define alphasort
Definition dirent.h:28
struct vsf_linux_dirent_vplt_t vsf_linux_dirent_vplt_t
#define scandir
Definition dirent.h:27
#define readdir_r
Definition dirent.h:21
#define fdopendir
Definition dirent.h:18
#define seekdir
Definition dirent.h:25
#define versionsort64
Definition dirent.h:32
#define opendir
Definition dirent.h:17
#define telldir
Definition dirent.h:24
#define closedir
Definition dirent.h:26
unsigned long long ino64_t
Definition types.h:128
long long off64_t
Definition types.h:125
long off_t
Definition types.h:123
unsigned long ino_t
Definition types.h:127
char d_name[256]
Definition dirent.h:47
off64_t d_off
Definition dirent.h:44
unsigned char d_type
Definition dirent.h:46
unsigned short d_reclen
Definition dirent.h:45
ino64_t d_ino
Definition dirent.h:43
unsigned short d_reclen
Definition dirent.h:38
ino_t d_ino
Definition dirent.h:36
unsigned char d_type
Definition dirent.h:39
char d_name[256]
Definition dirent.h:40
off_t d_off
Definition dirent.h:37
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(scandir)
VSF_APPLET_VPLT_ENTRY_MOD_DEF(libdirent)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(alphasort)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(versionsort)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fdopendir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(readdir64_r)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(readdir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(seekdir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(opendir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(closedir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(readdir_r)
vsf_vplt_info_t info
Definition dirent.h:53
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(rewinddir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(telldir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(readdir64)
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165