diff options
Diffstat (limited to 'mdk-stage1/dietlibc/lib/__fstat64.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/__fstat64.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/__fstat64.c b/mdk-stage1/dietlibc/lib/__fstat64.c new file mode 100644 index 000000000..6f9fcb2c5 --- /dev/null +++ b/mdk-stage1/dietlibc/lib/__fstat64.c @@ -0,0 +1,25 @@ +#include "dietfeatures.h" + +#ifdef WANT_LARGEFILE_BACKCOMPAT +#include <sys/stat.h> +#ifndef __NO_STAT64 +#include <errno.h> + +extern int __dietlibc_fstat64(int __fd, struct stat64 *__buf); +extern void __stat64_cvt(const struct stat *src,struct stat64 *dest); + +int fstat64(int __fd, struct stat64 *__buf) { + if (__dietlibc_fstat64(__fd,__buf)) { + struct stat temp; +#ifdef WANT_THREAD_SAFE + if (*__errno_location()!=ENOSYS) return -1; +#else + if (errno!=ENOSYS) return -1; +#endif + if (fstat(__fd,&temp)) return -1; + __stat64_cvt(&temp,__buf); + } + return 0; +} +#endif +#endif |