summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libcruft
diff options
context:
space:
mode:
authorGwenolé Beauchesne <gbeauchesne@mandriva.org>2003-02-20 16:47:39 +0000
committerGwenolé Beauchesne <gbeauchesne@mandriva.org>2003-02-20 16:47:39 +0000
commita5a39243b3a51c0187a108d325948155d0aa4fc0 (patch)
treef060b709384d7ea1bb3e6ce231d4d0c434d3b4ed /mdk-stage1/dietlibc/libcruft
parent7cbf0dbf5c98d10023125b06b5d4b737c246aacc (diff)
downloaddrakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.tar
drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.tar.gz
drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.tar.bz2
drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.tar.xz
drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.zip
Merge with dietlibc 0.22-1mdk
Diffstat (limited to 'mdk-stage1/dietlibc/libcruft')
-rw-r--r--mdk-stage1/dietlibc/libcruft/alphasort64.c6
-rw-r--r--mdk-stage1/dietlibc/libcruft/scandir64.c47
-rw-r--r--mdk-stage1/dietlibc/libcruft/sysconf.c3
3 files changed, 56 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libcruft/alphasort64.c b/mdk-stage1/dietlibc/libcruft/alphasort64.c
new file mode 100644
index 000000000..520086352
--- /dev/null
+++ b/mdk-stage1/dietlibc/libcruft/alphasort64.c
@@ -0,0 +1,6 @@
+#include <dirent.h>
+#include <string.h>
+
+int alphasort64(const struct dirent64 **a, const struct dirent64 **b) {
+ return strcmp((*a)->d_name,(*b)->d_name);
+}
diff --git a/mdk-stage1/dietlibc/libcruft/scandir64.c b/mdk-stage1/dietlibc/libcruft/scandir64.c
new file mode 100644
index 000000000..c1bdc3415
--- /dev/null
+++ b/mdk-stage1/dietlibc/libcruft/scandir64.c
@@ -0,0 +1,47 @@
+#include <stdlib.h>
+#include <dirent.h>
+#include <string.h>
+
+int scandir64(const char *dir, struct dirent64 ***namelist,
+ int (*select)(const struct dirent64 *),
+ int (*compar)(const struct dirent64 **, const struct dirent64 **)) {
+ DIR* d;
+ struct dirent64 *D;
+ int num=0;
+ if (!(d=opendir(dir)))
+ return -1;
+ *namelist=0;
+ while ((D=readdir64(d))) {
+ if (select==0 || select(D)) {
+ struct dirent64 **tmp;
+ ++num;
+/* printf("realloc %p,%d -> ",*namelist,num*sizeof(struct dirent**)); */
+ if (!(tmp=realloc(*namelist,num*sizeof(struct dirent64**))) ||
+ !(tmp[num-1]=malloc(sizeof(struct dirent64)))) {
+ int i;
+ for (i=0; i<num-1; ++i) free(tmp[i]);
+ free(*namelist);
+ closedir(d);
+ return -1;
+ }
+ memccpy(tmp[num-1]->d_name,D->d_name,0,NAME_MAX);
+ *namelist=tmp;
+/* printf("%p; tmp[num-1(%d)]=%p\n",*namelist,num-1,tmp[num-1]); */
+ }
+ }
+ closedir(d);
+#if 0
+ {
+ int i;
+ puts("pre-qsort:\n");
+ for (i=0; i<num-1; ++i) {
+ puts((*namelist)[i]->d_name);
+ }
+ puts("post-qsort:\n");
+ }
+#endif
+// qsort(&(*namelist)[0],num,sizeof(struct dirent*),(int (*)(const void*,const void*))(compar));
+ if (compar)
+ qsort(*namelist,num,sizeof(struct dirent64*),(int (*)(const void*,const void*))(compar));
+ return num;
+}
diff --git a/mdk-stage1/dietlibc/libcruft/sysconf.c b/mdk-stage1/dietlibc/libcruft/sysconf.c
index 8e36ec4e9..e9c15cb66 100644
--- a/mdk-stage1/dietlibc/libcruft/sysconf.c
+++ b/mdk-stage1/dietlibc/libcruft/sysconf.c
@@ -32,6 +32,9 @@ long sysconf(int name)
case _SC_ARG_MAX:
return ARG_MAX;
+ case _SC_NGROUPS_MAX:
+ return NGROUPS_MAX;
+
case _SC_NPROCESSORS_ONLN:
return __sc_nr_cpus();