diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2021-03-02 20:17:07 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2021-06-15 10:42:11 -0300 |
commit | 84f7ce84474c1648ce96884f1c91ca7b97ca3fc2 (patch) | |
tree | 4a19687d260d69a380414d41a592fb261841e5cd /include | |
parent | 47f24c21ee38701ae275aa9e451f70fa3e77478c (diff) | |
download | glibc-84f7ce84474c1648ce96884f1c91ca7b97ca3fc2.tar.gz glibc-84f7ce84474c1648ce96884f1c91ca7b97ca3fc2.tar.xz glibc-84f7ce84474c1648ce96884f1c91ca7b97ca3fc2.zip |
posix: Add glob64 with 64-bit time_t support
The glob might pass a different stat struct for gl_stat and gl_lstat when GLOB_ALTDIRFUNC is used. This requires add a new 64-bit time version that also uses 64-bit time stat functions. Checked on i686-linux-gnu and x86_64-linux-gnu. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/glob.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/glob.h b/include/glob.h index 1d2f78793e..f48c71960d 100644 --- a/include/glob.h +++ b/include/glob.h @@ -2,11 +2,39 @@ #include <posix/glob.h> #ifndef _ISOMAC +# include <sys/types.h> + libc_hidden_proto (glob) libc_hidden_proto (glob64) libc_hidden_proto (globfree) libc_hidden_proto (globfree64) +# if __TIMESIZE == 64 +# define glob64_time64_t glob64_t +# else +# include <sys/stat.h> + +typedef struct + { + size_t gl_pathc; + char **gl_pathv; + size_t gl_offs; + int gl_flags; + + void (*gl_closedir) (void *); + struct dirent64 *(*gl_readdir) (void *); + void *(*gl_opendir) (const char *); + int (*gl_lstat) (const char *__restrict, struct __stat64_t64 *__restrict); + int (*gl_stat) (const char *__restrict, struct __stat64_t64 *__restrict); + } glob64_time64_t; + +extern int __glob64_time64 (const char *pattern, int flags, + int (*errfunc) (const char *, int), + glob64_time64_t *pglob); +void __globfree64_time64 (glob64_time64_t *pglob); +libc_hidden_proto (__globfree64_time64) +# endif + /* Now define the internal interfaces. */ extern int __glob_pattern_p (const char *__pattern, int __quote); extern int __glob64 (const char *__pattern, int __flags, |