From 70961aee1823481caac6e00a40cf1f2bdbf7ffb5 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Wed, 3 Mar 2021 09:00:13 -0300 Subject: io: Add fts64 with 64-bit time_t support Similar to glob, fts routines passes a stat pointer that might differ of size and layout when 64-bit time API is used. Checked on i686-linux-gnu and x86_64-linux-gnu. Reviewed-by: Lukasz Majewski Reviewed-by: Carlos O'Donell Tested-by: Carlos O'Donell --- include/fts.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'include/fts.h') diff --git a/include/fts.h b/include/fts.h index 145dce6779..ea36a9b9be 100644 --- a/include/fts.h +++ b/include/fts.h @@ -1 +1,52 @@ +#ifndef _FTS_H #include + +#ifndef _ISOMAC +# if __TIMESIZE != 64 +# include + +typedef struct +{ + struct _ftsent64_time64 *fts_cur; + struct _ftsent64_time64 *fts_child; + struct _ftsent64_time64 **fts_array; + dev_t fts_dev; + char *fts_path; + int fts_rfd; + int fts_pathlen; + int fts_nitems; + int (*fts_compar) (const void *, const void *); + int fts_options; +} FTS64_TIME64; + +typedef struct _ftsent64_time64 +{ + struct _ftsent64_time64 *fts_cycle; + struct _ftsent64_time64 *fts_parent; + struct _ftsent64_time64 *fts_link; + long fts_number; + void *fts_pointer; + char *fts_accpath; + char *fts_path; + int fts_errno; + int fts_symfd; + unsigned short fts_pathlen; + unsigned short fts_namelen; + + ino64_t fts_ino; + dev_t fts_dev; + nlink_t fts_nlink; + + short fts_level; + unsigned short fts_info; + unsigned short fts_flags; + unsigned short fts_instr; + + struct __stat64_t64 *fts_statp; + char fts_name[1]; +} FSTENT64_TIME64; + +# endif +#endif + +#endif /* _FTS_H */ -- cgit v1.2.3