summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/readdir64.c
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2004-07-15 06:27:30 +0000
committerMystery Man <unknown@mandriva.org>2004-07-15 06:27:30 +0000
commit9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2 (patch)
treeb5ddf2e127d03e3a0f8fbf0caded464da2ed447c /mdk-stage1/dietlibc/lib/readdir64.c
parent416a326f1fc775511cf1eac2c04cca2a69d9961a (diff)
downloaddrakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.tar
drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.tar.gz
drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.tar.bz2
drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.tar.xz
drakx-backup-do-not-use-9a047aaee6ce50ac6f4ed6f51f590764c4a8c4c2.zip
This commit was manufactured by cvs2svn to create tag 'V10_54mdk'.V10_54mdk
Diffstat (limited to 'mdk-stage1/dietlibc/lib/readdir64.c')
-rw-r--r--mdk-stage1/dietlibc/lib/readdir64.c62
1 files changed, 0 insertions, 62 deletions
diff --git a/mdk-stage1/dietlibc/lib/readdir64.c b/mdk-stage1/dietlibc/lib/readdir64.c
deleted file mode 100644
index b9b0aafcc..000000000
--- a/mdk-stage1/dietlibc/lib/readdir64.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "dietfeatures.h"
-#include "dietdirent.h"
-#include <unistd.h>
-#include <dirent.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include "syscalls.h"
-
-#ifndef __NR_getdents64
-#define WANT_LARGEFILE_BACKCOMPAT
-#endif
-
-#ifndef WANT_LARGEFILE_BACKCOMPAT
-struct dirent64* readdir64(DIR *d) {
- if (!d->num || (d->cur += ((struct dirent64*)(d->buf+d->cur))->d_reclen)>=d->num) {
- int res=getdents64(d->fd,(struct dirent64*)d->buf, sizeof (d->buf)-1);
- if (res<=0) return 0;
- d->num=res; d->cur=0;
- }
- return (struct dirent64*)(d->buf+d->cur);
-}
-#else
-struct dirent64* readdir64(DIR *d) {
-#ifdef __NR_getdents64
- static int trygetdents64=1;
-#endif
- struct dirent* o;
- static struct dirent64 d64;
-again:
-#ifdef __NR_getdents64
- if (!trygetdents64) {
-#endif
- if (!d->num || (d->cur += ((struct dirent*)(d->buf+d->cur))->d_reclen)>=d->num) {
- int res=getdents(d->fd,(struct dirent*)d->buf, sizeof (d->buf)-1);
- if (res<=0) return 0;
- d->num=res; d->cur=0;
- }
- o=(struct dirent*)(d->buf+d->cur);
- d64.d_ino=o->d_ino;
- d64.d_off=o->d_off;
- d64.d_reclen=o->d_reclen;
- strcpy(d64.d_name,o->d_name);
- d64.d_type=0; /* is this correct? */
- return &d64;
-#ifdef __NR_getdents64
- }
- if (!d->num || (d->cur += ((struct dirent64*)(d->buf+d->cur))->d_reclen)>=d->num) {
- int res=getdents64(d->fd,(struct dirent64*)d->buf,sizeof (d->buf));
- if (res<=0) {
- if (errno==ENOSYS) {
- trygetdents64=0;
- goto again;
- }
- return 0;
- }
- d->num=res; d->cur=0;
- }
- return (struct dirent64*)(d->buf+d->cur);
-#endif
-}
-#endif